页面相似度检测


编写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。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM