撸撸看mysql注入检测payload

之前制作的一个sql检测小工具在使用的时候发现发送请求略多,因此考虑是否可以针对数据库简化payload,使工具跑得快一点,于是就有了下文,测试发现使用xor sleep(5)结合sqlmap的<where>属性,可以做一个通用性较高的payload。 

我们常见的注入点: 
Select型: 
select * from users where user_id in(1,2,3,[4]) and [first_name] like '%[t]%' and second_name=[’b’] group by [first_name] order by [1] [desc] limit [1]

insert型: 
insert into users values (‘1’,[2]’,’3’)

delete型: 
delete from users where id = [‘0’] 

update型: 
update users set first_name = ['admin1'] where user_id=[1]

常见的注入点大致有这些。 

我们使用的payload是: 
Xor sleep(5) 

这里我们先了解一下sqlmap配置中的<where>字段: 
撸撸看mysql注入检测payload_第1张图片  
其中1和3是我们要使用的字段,1表示直接在原始值后面添加payload,例如我们原始值为1,使用之后可能就变成了1 xor sleep(5)了,3表示直接替换原始值,如我们的原始值为1,使用之后就变成了xor sleep(5)了。 

使用xor的好处就在于不管前面的判断是否为真,都会执行我们的sleep,sleep一旦执行一般就会存在sql注入。 
之前sqlmap中大部分均为and 和or类型的注入,但是两者会有个问题,例如 
Select *  from users where 3<2 and sleep(5) 
此处如果user_id=1不存在,就不会执行sleep(5) 

Select * from users where 3>2 or sleep(5)[注意这里没有写成user_id=1的形式] 
此处由于3>2恒真,后面的sleep(5)没有执行 
使用sleep在insert,update和delete会效果好点。毕竟很多没有回显的。 

我们举例来看: 
1:select中的order by 类型注入[desc位置的] 
撸撸看mysql注入检测payload_第2张图片  

结果检测: 
撸撸看mysql注入检测payload_第3张图片  

使用了我们where的3,replace 
撸撸看mysql注入检测payload_第4张图片  

2:select 中的search类型注入 
撸撸看mysql注入检测payload_第5张图片  

结果: 
撸撸看mysql注入检测payload_第6张图片  

3:insert型注入 
撸撸看mysql注入检测payload_第7张图片  
结果: 
撸撸看mysql注入检测payload_第8张图片  

4:update型注入 
撸撸看mysql注入检测payload_第9张图片  

运行语句: 
撸撸看mysql注入检测payload_第10张图片  

执行结果: 
撸撸看mysql注入检测payload_第11张图片  

5:delete型注入 
撸撸看mysql注入检测payload_第12张图片  

执行结果: 
撸撸看mysql注入检测payload_第13张图片  

运行结果: 
撸撸看mysql注入检测payload_第14张图片  


ps.看起来还行,其实使用sleep检测一开始是拒绝的,前不久公司网站还被某白帽子睡挂了,而且sleep的执行还跟mysql自身的一些特性有关系,但不得不说,貌似使用它检测效果比其他的payload要好.= =

你可能感兴趣的:(撸撸看mysql注入检测payload)