您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
sqlmap的高级应用
发布时间:2019-08-15 20:43:00编辑:雪饮阅读()
之前曾了解过手动注入,但手动注入毕竟太麻烦,那么可以使用一些工具吗?其实可以使用sqlmap进行更方便的注入,这次就介绍下使用sqlmap注入的使用
python环境安装
环境要求python2.7,安装过程就不多加赘述了。
使用sqlmap注入dvwa的low级别
抓包准备
注意:需要jdk1.8,并且burp-loader-keygen.jar与burpsuite_pro_v1.7.32.jar同目录
安装完成jdk1.8后打开burp-loader-keygen.jar复制license点击run将license内容粘贴到新的弹窗中即可。
点击next后在新的弹窗中选择手动激活
然后将再次出现的新窗口中的request 粘贴到最初的activation request中,最初界面中activation response生成后再次复制到最新界面中的response中
然后再点next则激活完成,继续next
启动burp
先将数据包拦截功能关闭,off即是关闭
代理
打开火狐浏览器,设置代理将请求目标不是localhost或127.0.0.1的数据让127.0.0.1:8080给代理(即转发到burp抓包工具)
抓包
然后用局域网ip形式访问dvwa项目,并将默认的安全级别设置为low后重新退出到登陆界面然后启动抓包的数据拦截,然后点击登录后在抓包工具中就拦截到了数据,我们拷贝该数据包
获取cookie及注入点
得到数据包后,我们在数据包中取得cookie数据
然后在sql注入处随便填写一个可用id,提交后复制地址栏
然后将复制的地址栏路径中的ip地址换成127.0.0.1并结合上面获取的cookie数据及sqlmap路径则组成用于在cmd中的sqlmap的dvwa的low级别注入命令如:
sqlmap使用-注入测试
通过抓包得到cookie后用sqlmap进行注入测试,可初步获取得被测试项目的基本信息后端开发语言、后端web服务器、数据库服务器及操作系统等。
sqlmap使用-获取注入点所用的数据库服务器中的所有数据库
当上一步的注入测试ok后,只需要在上一步命令的基础上追加参数dbs即可获取得所测试注入点所用的数据库服务器中的所有数据库,如
sqlmap使用-post注入
实现一个最普通的post方式与数据库交互的示例
前端:
后端:
post注入-简单表单注入
直接指定表单所在页面路径及追加forms参数即可,中间的交互可以一路回车即可
但是这个的效果也比较有限,检测能力比较薄弱
post注入-使用抓包数据
像在dvwa中的get注入一样,先用burp抓包,但这次抓包的数据直接另存为到sqlmap脚本所在目录而不是像上面get注入一样单独提取cookie,至于是否单独提取cookie这里就不多加赘述了,我们都多大人了哈,这点东东就靠各位脑补哈。
然后用sqlmap的-r参数指定数据包所存放的文件,-p参数指定你要重点检测的参数名,如下面的示例就和上面的对dvwa的get形式注入一样的可以获取到后端开发语言、web服务器、数据库等。
sqlmap使用-清理测试缓存
对于同一条sqlmap测试命令多次测试的时候容易产生缓存,至于缓存有什么用,大家都是大神了,自己脑补,如果需要清理,则删除sqlmap所在目录中的output目录中对应缓存目录即可,output目录中缓存目录命名是以每个注入测试发起请求的目的主机名来命名的。
sqlmap使用-获取系统shell
在上面注入命令基础上添加--os-shell即可如:
sqlmap.py -u "http://192.168.2.247/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=d98if49ce5th1cbor0p1mukt37; security=low" --dbs --os-shell
但是这个成功几率不大
据说得满足以下条件:
网站数据库必须是MSSQL或MySQL,对于ACCESS数据库无效。
当前用户必须具有数据库管理员的操作权限。
目标站点:DVWA中的low级别SQL Injection。
如果你能知道对方操作系统一个对于当前注入环境来说的一个可写的目录路径。
关键字词:sqlmap,sql注入
上一篇:medium级别SQL注入分析