可能是一种检测SQLMAP扫描的方式

MayIKissYou | 2014-09-16 16:30

最近在写识别网络扫描的规则,SQLMAP扫描制作规则的时候,发现了一点东西,分享给大家,可能是检测SQLMAP注入扫描的一种方式。

使用sqlmap扫描的时候发现每次扫描的第二个包内容如下:

http://127.0.0.1?id=1..]"')[.]"

注意后面的那串字符,我又多试了几次,发现每次发送的还不一样,但是长度都是10个字符。

于是就跑去看了看sqlmap的源码:

发现在checks.py的文件里面有一个函数名称为heuristicCheckSqlInjection()

里面有段代码:

while '\'' not in randStr:
    randStr = randomStr(length=10, alphabet=HEURISTIC_CHECK_ALPHABET)

然后我们去查看randomStr,此函数在common.py下,相关代码如下:

def randomStr(length=4, lowercase=False, alphabet=None):
    """
    Returns random string value with provided number of characters

    >>> random.seed(0)
    >>> randomStr(6)
    'RNvnAv'
    """

    if alphabet:
        retVal = "".join(random.choice(alphabet) for _ in xrange(0, length))
    elif lowercase:
        retVal = "".join(random.choice(string.ascii_lowercase) for _ in xrange(0, length))
     else:
        retVal = "".join(random.choice(string.ascii_letters) for _ in xrange(0, length))

    return retVal

然后去查看了HEURISTIC_CHECK_ALPHABET,值为('"', "'", ')', '(', '[', ']', ',', '.')

基本得到这样的结论,这串randStr的值为一个十个随机字符的长度字符串,其中至少包含',随机字符串的内容在('"', "'", ')', '(', '[', ']', ',', '.')里。

据了解大部分厂商在写规则的时候都是用到了正则表达式这个东西,是否将上面的内容翻译为一条SQLMAP注入扫描的规则。

感觉应该比user-agent里使用sqlmap要强一点点。

[原文地址]

留言评论(旧系统):

机智的小阿风 @ 2014-09-20 21:30:14

完全看不懂-_-

本站回复:

-_-|||

电小弟 @ 2014-09-21 00:09:50

恩,这个工具室要agent强,对了,兄弟做一个友情连接吧,我已经做好了dianxiaodi.com

本站回复:

已做好!(兄弟,你把我连接名字写错了吧~“Nuclear'Atktarget”-_-|||)

好人 @ 2014-09-22 11:32:54

可以帮我 入侵这个钓鱼网么 http://8od5z4.90i.lmkjnh.0eko9ef.tk/index/index/MTM1LTM=.html

本站回复:

禁止任何非法入侵行为!后果自负!

佚名 @ 2014-09-22 11:34:43

我的QQ2029988944 可以入侵钓鱼的师傅帮下我

本站回复:

禁止任何非法入侵行为!后果自负!

核燃料 @ 2014-09-22 13:47:09

核总收徒弟不-.-

本站回复:

不收,谢谢~

电小弟 @ 2014-09-22 20:30:49

不好意思,现在改了是Nuclear'ATK

本站回复:

OK