页面相似度检测

编写ldap扫描插件时,遇到的问题是,如何判断页面有变化。如果是已知的页面,可以根据页面中的字符串判断变化;如果是未知的页面,也就是通用页面,可以参考sqlmap:

sqlmap中,页面相似度的判断位于 lib/request/comparison.py,其中 _comparison为核心判断函数。

从中剥离出来,如下代码:

def compartion(cont1,cont2):
    """
    页面相似度检测
    """
    UPPER_RATIO_BOUND = 0.95
    seqMatcher = difflib.SequenceMatcher(None)
    seqMatcher.set_seq1(cont1)
    seqMatcher.set_seq2(cont2)
    ratio = seqMatcher.quick_ratio()
    if ratio < UPPER_RATIO_BOUND:
        return False
    else:
        return True

其中,cont1,cont2代表两个页面的content,sqlmap中相似度UPPER_RATIO_BOUND的值为0.98,在程序中,相同的页面都达到了0.98,确实已经够用了,但是为了容错率,改为了0.95。

 

posted @ 2018-08-16 22:11  huim  阅读(1335)  评论(0编辑  收藏  举报