一次thinkphp任意代码执行

本文分享了一次ThinkPHP框架中的代码注入漏洞利用过程及后续的漏洞修补经历。作者通过不断尝试找到了一个存在漏洞的网站,并成功实现了命令执行,但修补漏洞时遇到了问题导致网站出现异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始找网站,thinkphp 的网站一找一大堆,可怕...

更可怕的是并不是你找到的就能任意命令执行,需要一个网站一个网站的测试 ...

然后我就一个一个的试 , 好可怜啊, 试了十几个才有一个可以利用的...

 

原理: 

有问题的代码:

$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));

7$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2';', implode($depr,$paths));

 

将preg_replace第二个参数中的双引号改为单引号,防止其中的php变量语法被解析执行。其实只有一个引号的差别,现在你知道基础多重要了吧。

 

利用过程:

找网站吧,慢慢找总能找到一个,这是搜索语法,为了结果更精准一点,不用测试更多无用的

 

<img    src=" 

这里本来是有一张带有搜索语法的图片 ,想了想还是删了吧 ,不能让你们随意找到.....

影响不好  .....

">


首先打开网站的主页,因为搜索到的都是报错的页面,不能直接利用,

自己找找什么网页包含参数,然后进行payload 注入,测试是否能够利用这个漏洞

就像下边的这个一样,就是可以执行代码的网站

 

然后更改payload , ${ eval($_POST[a])}

使用菜刀连接

 

尝试写入shell,这样对方thinkphp升级也能访问,于是写入shell, 这时候忽然在根目录下边发现一个404.php ,感觉好奇怪啊 ,打开看一下 ,卧槽 ,别人上传的大马 ,还是那种很贱很贱的那种 ,于是我把密码改了 ,然后他就不能用了 23333

 

看着现在时间还多着 ,于是尝试修补漏洞 ,让其他人不能登陆 ,根据上边的漏洞代码 ,找到目标文件夹 ,实际测试中发现 ,路径完全不一样 ,有差别 ,但是最后的文件名是一样的 ,修改保存

 

现在这个网站就只属于你的了 , 哈哈 !!!


*********************************************************我是一个分割线**************************************************************


你是不是认为这就完成一次成功的例子 , 其实我当时也是这么认为 的,直到身边的人不小心访问了下这个网站的主页面 ,擦 ,白屏!!!

还有一行 报错信息 ,就是刚才改动的文件的名字里边报错了 ,提示内容是  无效的分号 !!!


旁边的人问我 ,你修改文件备份了没有?!  我说没有....   这时候才终于知道修改前先备份一个文件是多么重要了 ....

擦 ,赶紧把原来的文件改过来 ,然后打开原来的文件 ,手都是软的 ....


然后修改单引号为双引号 ,再次访问目标主页面 ,访问正常

郑重提示 ,新手不要乱改别人的页面 ,还有函数!!!

文章仅供学习,不要做坏事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值