1,弱口令发现目标网站,为宝塔搭建的dedecms,于是自己服务器搭建同样的
Bypass宝塔+dedecms 文件上传漏洞复现" decoding="async" class="rich_pages wxw-img" data-original="https://hqyman.cn/zb_users/upload/2023/07/20230708161547_85884.png" src="https://hqyman.cn/zb_users/upload/2023/07/20230708161547_85884.png" title="Bypass宝塔+dedecms 文件上传漏洞复现" style="box-sizing: inherit; -webkit-tap-highlight-color: rgba(255, 0, 0, 0); border: 0px; font-family: inherit; font-style: inherit; margin: 0px auto; padding: 0px; vertical-align: middle; backface-visibility: hidden; max-width: 100%; height: auto; display: block;"/>
2 get请求phpinfo() 有waf,上传文件有waf
3,寻找资料,发现是,宝塔的ngix防火墙。同样在自己的服务器上部署成功。顺便还看到了,宝塔的过滤规则。
可以发现, 规则,对get,post ,cookie,等方式的eval,还有base64都进行了过滤
4,过waf的一句话, eval和assert的区别
规则, 对eval( base64( phpinfo( 等过滤了。可以采取字符串拼接的方式。
但是,eval是不能够被拼接的。因为eval()是一个语言构造器,他不能使用PHP提供的可变函数来调用
上代码:
5,为什么要base64呢?因为蚁剑,和菜刀的流量特征。。里面有base64
这个就是蚁剑的流量特征。有明显的base64所以直接被过滤掉了。
通过查资料。知道,1方面要对小马进行base64编码, 另外一方面要对蚁剑进行魔改。小马就是上面的小马了。至于蚁剑的魔改, 直接改配置 。简单来说,就是双base64
其实当小马写入进去的时候, 就可以执行了。
不过传进去的是phpinfo() 的base64编码 . 正好小马是base64decode
6 蚁剑连接成功。
当然编码格式得选刚才自己写的编码
7,但是控制台,不管输入whoami,还是ls ,还是其他命令,全部都是ret=127
通过查资料知道了。这是phpinfo 里面设置的disable_function 过滤掉了, system函数。
8,于是要绕过disable_function 。
1,我先找的资料,是蚁剑的绕过disable_function 。蚁剑有个插件市场有绕过disable_function
通过一个个测试, 只有选择fastcgi/php_FPM。并且自己狠狠地恶补了这个知识。大意就是,fastcgi是个解释器,直接修改这个解释器,从而绕过phpinfo的disbale_function .
千万要注意的是,这个得选择这个。找了好多资料,测试好多次。一直找不到。其他的都不对。
/tmp/php-cgi-70.sock
9,蚁剑文件上传成功。
本来到这里就结束了。然后连接.antproxy.php 这个文件, 密码不变。就能够成功连接上。不知道为什么, 我的蚁剑不成功。返回是空, 有知道的大佬, 求知道下
10,由于蚁剑没成功。找了资料说哥斯拉也有绕过disable_function 。于是哥斯拉安排上。成功获得权限www
一定要注意FPM/FCGI的地址不能写错
/tmp/php-cgi-56.sock
备注:中间还有一个步骤。那就是, 哥斯拉生产的php小马第一个有base64流量特征,所以穿不进去, 被waf拦截。其他2个php小马没有流量特征是可以用的。但是, 里面有eval函数。于是。我用file_put_contents 写文件, 直接把哥斯拉的小马写进去了。具体参考如下
一句话;
poc:
备注:$b的内容进行base64编码
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/4294.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~