linux下php-rce下的小技巧

  1. linux下php-rce下的小技巧
    1. 1.反弹shell
    2. 2.echo写文件
    3. 3.echo>>写到文件末尾
    4. 4.wget下文件
  2. 最后的解决办法

linux下php-rce下的小技巧

最近遇到一个机器,有命令执行漏洞

image-20240111021705807

我在bp里面一直试了两个多小时,终于解决了。没想到居然是用这么朴素的方法。。。

由于只是一个rce

image-20240111022200983

我期间尝试过如下的方法

1.反弹shell

用各种反弹shell的命令尝试反弹shell,失败,原因大概有两个,不是命令太长就是命令中包含了<字符,没错,就是这个字符,

image-20240111022439195

只要有这个东西还有些我没试出来的其他的字符,那就会直接报错,可能是这套系统的问题或者是对面有防火墙的问题。

总之能想到的linux反弹shell,能搜到的,能找到的,我都试过了。无果

2.echo写文件

既然反弹shell没法,那我直接写文件不就对了吗,问题还是在<上面,一旦echo创建的文件中含有<这个字符,依然会直接报错,那就断绝了我们写php文件的想法

image-20240111023344212

3.echo>>写到文件末尾

通过cat我读取到对面的php源码(图是我自己复制到txt方便看的)

image-20240111023745249

他的末尾都没有?>结尾符号,那我们可以尝试通过echo>>,直接写到原有文件的末尾。这样我们就不用使用前面那个字符了。

但是问题又出现了一旦检测到$符号后面跟了东西,那就会把$和跟的东西全部删掉然后写入

image-20240111024651789

访问目标文件,

image-20240111024705013

可以看到$后面跟了东西的,$和跟的东西都被删掉了。又没办法写文件进去了

4.wget下文件

没办法,不让写,那我们直接下进去呗

然而,wget确实可以使用,下载也能下,但是!!下的东西里面他也会检测$和跟的东西都会被删掉。啊?

image-20240111025030683

可以看到,我的马什么都没。只有一个文本(我是cat看过的)

然后我还试了脏数据绕过,加了很多文本在前面,结果如下

image-20240111025203676

翻到最后,马还是被它删了。

最后的解决办法

没想到是图片马,中间还尝试过一些其他的方法,上传过大马,翻配置文件链接数据库(对面只支持本地连接),都没用。

然后我后面还想在机器上下载一个上传小马(半夜了脑子糊了),突然旁边搜到一个《php上传图片马绕过》,好好好,直接上传图片马。

然后用mv命令将上传的图片马的后缀名改成php,mv file.txt new_name.txt

终于成了!

image-20240111025616390

最后师傅们要是还有什么其他的方法欢迎评论区赐教


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。后续可能会有评论区,不过也可以在github联系我。