Web 漏洞挖掘实战
王昊天
螣龙安科 CEO 兼创始人
14867 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
结束语 (2讲)
Web 漏洞挖掘实战
15
15
1.0x
00:00/00:00
登录|注册

16|自动化注入神器(三):sqlmap的核心实现拆解

你好,我是王昊天。
在上节课,我们学习了 sqlmap 中一个非常重要的函数——start 函数。我们了解到,它既可以为每个目标配置请求参数,也会对目标进行一些必要的检测,例如判断目标是否存在 waf 的保护等。
在讲到如何检测 waf 时,我们遇到了一个比较陌生的概念,页面相似度。上节课,我给出了一个简单的示例,来帮助你理解它的含义,但是并没有告诉你,页面相似度是如何计算出来的。相信经过这节课的学习,你就可以解决这个问题。

再看 checkWaf 函数

为了研究页面相似度算法,我们首先需要找到计算页面相似度的代码。回顾一下上节课的内容,我们在 checkwaf 函数中学习了页面相似度的概念,但是并未深入研究这一点。现在让我们回到 sqlmap 的 checkWaf 函数,着重观察下面这段代码。在这段代码中,系统会判断 Request.queryPage 函数的返回值是否小于 sqlmap 设定的默认页面相似度阈值(IPS_WAF_CHECK_RATIO),如果小于,那么就认为存在 waf,否则就会认为不存在 waf。我们可以从lib.core.settings.py中得出该阈值的大小为 0.5。
try:
retVal = (Request.queryPage(place=place, value=value, getRatioValue=True, noteResponseTime=False, silent=True, raise404=False, disableTampering=True)[1] or 0) < IPS_WAF_CHECK_RATIO
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

SQLMap中的页面相似度算法是本文的核心内容。文章通过深入分析checkWaf函数和Request.queryPage函数的代码,揭示了页面相似度的计算过程。首先介绍了checkWaf函数中对页面相似度的判断和页面相似度阈值的设定。随后详细解析了Request.queryPage函数的参数配置和页面信息获取过程,强调了传入参数getRatioValue为True时返回的页面相似度比较结果。进一步分析了Comparison函数,展示了对页面响应内容的比较和页面相似度的计算过程。最后,通过对_comparison函数的分析,揭示了页面相似度的计算方法,包括对页面内容的比较和处理,以及页面相似度的计算逻辑。整体而言,本文通过深入解析sqlmap中页面相似度算法的实现细节,为读者提供了对该技术特点的深入了解和学习参考。文章内容涵盖了对页面相似度算法的详细解析,以及对sqlmap对waf检测的方法原理的掌握,为读者提供了丰富的技术知识和学习思路。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Web 漏洞挖掘实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • clay
    对WAF的检测可以搜集一些国内外WAF的常见特征吧,比如长亭雷池、安全狗、FortiWeb等,这些响应包里都会有强特征
    2022-01-26
    1
  • ifelse
    学习打卡
    2023-03-15归属地:浙江
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部