1.sqlmap 有什么用?
当给 sqlmap 这么一个 url (http://127.0.0.1/sqlmap/mysql/get_int.php?id=1) 的时候,它会:1)判断可注入的参数2)判断可以用那种 SQL 注入技术来注入 3)识别出哪种数据库4)根据用户选择,读取哪些数据
2、 sqlmap 五种不同的注入模式
1)基于布尔的盲注,即可以根据返回页面判断条件真假的注入。2)基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。4)联合查询注入,可以使用 union 的情况下的注入。5)堆查询注入,可以同时执行多条语句的执行时的注入
3、新版的sqlmap下载
额,GitHub自己动手找一下吧。哈哈哈哈啊哈哈哈
4、-v 参数是干什么用的?
共有七个等级,默认为 1:0)只显示 python 错误以及严重的信息。1)同时显示基本信息和警告信息。(默认)2)同时显示 debug 信息。3)同时显示注入的 payload。 有些测试也是需要高等级才启动的,一般是 3 级或是 3级以上,例如,cookie 注入,referer 注入等4)同时显示 HTTP 请求。5)同时显示 HTTP 响应头。6)同时显示 HTTP 响应页面。
5、 sqlmap 的使用方法
1. 用 level1 检测数据库类型
sqlmap -u http:
//x.x.x.x/post.php?id=1
2. 指定数据库为 mysql,级别为 3(共 5 级,级别越高,检测越全面
sqlmap
-u
"http://x.x.x.x/post.php?id=1"
--dbms mysql --level
3
/
3. 当 get 的数据被过滤时,就要想到 cookie 注入了
sqlmap
-u
"http://www.x.x.x.x.com/shownews.asp"
--cookie
"id=11"
--level
2
(只有
level
达到
2
才会检测
cooki
e
)
4. 前面走过了,get 和 cookie,还有一种传参的方法是 post。 --data 此参数是把数据以 POST 方式提交,sqlmap 会像检测 GET 参数一样检测 POST 的参 数。
python sqlmap.py -u "http://www.x.x.x.x.com/vuln.php" --data= "id=1"
5. 上面这种 post 方法比较快捷,还有一种 post 方法有助于绕过前端验证。需要用 burp 或别
的抓包工具抓一下,保存到本地加载
sqlmap -r " 存文件的路径 " -p "username"
指定
username
参数(就是你认为的注入点参数)
此外还有一种自动获取表单的方法
sqlmap -u "http://www.xxx.com/vuln.php" --form
6. 当网站有防火墙,对请求速度做了限制的时候
sqlmap -u "http://xxxx/post.php?id=1" --delay= 10
--delay=DELAY
在每个
HTTP
请求之间的延迟时间,单位为秒
7. 设置 HTTP User-Agent 头
参数:--user-agent,--random-agent
默认情况下 sqlmap 的 HTTP 请求头中 User-Agent 值是:
sqlmap /1.0-dev-xxxxxxx (http:/ /sqlmap.org)
可以使用 --user-anget 参数来修改,同时也可以使用 --random-agnet 参数来随机的
从./txt/user-agents.txt 中获取。
当 --level 参数设定为 3 或者 3 以上的时候,会尝试对 User-Angent 进行注入。
6、
常用参数介绍
6.1、设定延迟注入的时间
参数:--time-sec当使用继续时间的盲注时,时刻使用 --time-sec 参数设定延时时间,默认是 5 秒。
6.2、获取表中数据个数
参数:--count有时候用户只想获取表中的数据个数而不是具体的内容,那么就可以使用这个参数。
6.3、当前用户是否为管理用
参数:--is-dba判断当前的用户是否为管理,是的话会返回 True。
6.4、列数据库管理用户
参数:--users当前用户有权限读取包含所有用户的表的权限时,就可以列出所有管理用户。
6.5、列出并破解数据库用户的 hash
参数:--passwords当前用户有权限读取包含用户密码的彪的权限时,sqlmap 会现列举出用户,然后列出 hash,并尝试破解。
6.6、列出数据库管理员权限
参数:--privileges当前用户有权限读取包含所有用户的表的权限时,很可能列举出每个用户的权限,sqlmap 将会告诉你哪个是数据库的超级管理员。也可以用 - U 参数指定你想看哪个用户的权限。
6.7、测试注入类型
参数:--technique这个参数可以指定 sqlmap 使用的探测技术,默认情况下会测试所有的方式。
6.8、按默认配置
参数:--batch从不询问用户输入,使用所有默认配置。
6.9、添加前后缀
参数:--prefix,--suffix在有些环境中,需要在注入的 payload 的前面或者后面加一些字符,来保证 payload 的正常执 行。
6.10、检测防火墙
Sqlmap 用来探测 WAF 的命令如下:python sqlmap.py -u “http://www.victim.org/ex.php?id=1” --identify-waf
要修改动态参数