当前位置: 首页 > 工具软件 > sqlmap > 使用案例 >

SQLMAP

金嘉
2023-12-01

SQLmap简介:

sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试神器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。

支持的数据库:MySQL,Oracle, PostgreSQL, SQL Server, Microsoft Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MAXDB

sqlmap五种不同的注入模式:

UNION query SQL injection(可联合查询注入)

uError-based SQL injection(报错型注入)

uBoolean-based blind SQL injection(布尔型注入)

uTime-based blind SQL injection(基于时间延迟注入)

uStacked queries SQL injection(可多语句查询注入)

SQLMAP入门

这里可以看我另一篇博客

SQL注入流程_xiaomengxin70的博客-CSDN博客_sql注入流程

SQLMAP进阶

--level 5:探测等级

探测等级随着等级的变高探测的东西会更更多,不加命令默认探测等级为1,最高为5,。并且随着探测等级越来越高,所需要花费的时间会更多

--level 共有五个等级,sqlmap使用的payload可以在xml/payloads.xml中看到,自己也可以根据相应的格式添加自己的payload。

level>=2的时候就会测试HTTP Cookie。

level>=3的时候就会测试HTTP User-Agent/Referer头。

level=5 的时候会测试HTTP Host

为了保证全面性建议使用更高的探测等级进行他探测

--i-dba:

当前用户是否为管理权限

--roles:

列出数据库管理员角色 用于查看数据库用户的角色,如果当前用户有权限读取包含所有用户的表,该命令会列举出每个用户的角色,也可以用-U参数指定想看哪个用户的角色。(注意:该命令只适用于当前数据库是Oracle的时候)

--referer:

SQLMAP可以在请求中伪造http中的referer(Referer  的正确英语拼法是referrer 。由于早期HTTP规范的拼写错误,为了保持向后兼容就将错就错了。其它网络技术的规范企图修正此问题,使用正确拼法,所以目前拼法不统一。还有它第一个字母是大写。),当探测等级设定为3或以上时,会尝试对referer注入。可以用referer命令来欺骗。

--sql-shell:

运行自定义sql语句(我在这条命令时没太搞懂其含义)

--os-cmd,--os-shell:

运行任意操作系统命令 在数据库为mysql,postgresSQL,mincrosoft sql server

并且当前用户有权限使用特定的函数。如果数据库为以上三个,上传一个二进制库,包含用户自定义的函数sys_exec()和sys_eval(),那么创建的两个函数就可以执行系统命令。

使用该命令可以模拟一个真是的shell,当不能执行多语句时,仍可以使用into outfile写目录,创建一个web后门。要想执行改参数,则需要数据库管理员权限(这里我认为是渗透其目标数据库,留下后门,或者留下其他东西)

(原理,往服务器上写入了两个php,其中一个给提供了文件上传的页面,可以通过这个上传页面上传脚本文件到当前目录下。另外一个则是返回了可以执行系统命令的命令行,命令行也可以在网页url中通过对cmd参数传参执行系统命令)

--fiel-read:从数据库服务器中读取文件

当时用以上说的三个数据库时可以读取文件是文本或者二进制文件

--file-write --file-dest:上传文件到数据库

在以上三个数据库时,当前用户有权限使用特定的函数,上传的文件可以是文本也可以是二进制文件。

file-write  从本地写入
file-dest  写入目标路径

写入文件至站点目录


sqlmap.py -u "http://www.xx.com/aa.aspx?id=123" --file-write=本地文件路径 --file-dest 网站路径(写入路径)+"/写入的文件名",sqlmap.py -u "http://www.xx.com/aa.aspx?id=123" --file-write=F:/a.aspx --file-dest D:/虚拟目录/Front/cx.aspx,D:/虚拟目录/Front   为网站的物理路径,写入成功后,即可通过浏览器访问,若为一句话木马则可使用中国菜刀进行连接。(注:网站路径必须为网站的真实物理路径(即绝对路径。也就是从盘符开始的路径),否则无法写入数据。)

具体可以看SQLMAP渗透笔记之file参数的使用_Birdman-one的博客-CSDN博客_sqlmap--file-dest

(这里只是引用,如果侵权可联系我删除)

 类似资料:

相关阅读

相关文章

相关问答