博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP2.2 任意代码执行漏洞 利用
阅读量:6912 次
发布时间:2019-06-27

本文共 902 字,大约阅读时间需要 3 分钟。

hot3.png

15221302_IXrk.jpg 本文通过 同步至oschina,最新版本请查看原文:

有人在QQ群发招聘信息,我顺便看了一下他们项目的地址,错误信息显示是ThinkPHP框架写的,并且版本为2.2。

如图一

闲来无事,于是搜索2.2相关的漏洞,运气不错,很快找到一个。

这是很早以前的的一个漏洞,对ThinkPHP2.2以下版本有效,包含2.2版本。

网上有一些利用的文章,说用“中国菜刀”啥的直接去连就可以了,哥又不是专门去黑人的,也就懒得下这玩意玩,

分析了一下,虽然说可以执行任意代码,但利用这个也是需要通过一些技巧,比如这样的话是可以的
index.php/module/action/param1/${@print(THINK_VERSION)}

但如果想要执行

index.php/module/action/param1/${@print("hello hack!")}
这是不行的,因为Thinkphp会把里面的引号屏蔽掉。那怎样才能把带有引号的内容执行呢?

我想了个办法,不把引号放这里面是吧,好,那放在请求参数里。比如把URL构造成这样

index.php/module/action/param1/${@eval(implode($_GET))}?a=print("hello hack!");
如图二:

好了,既然已经可以执行任意代码了,到这一步就没什么技术含量了,想干嘛干嘛了。

已通知了这哥们,但貌似人家忽略了,额,忽略了…
好吧,截图留个纪念:

不过在国内用ThinkPHP2.2以下版本的网站太多了,Thinkphp的特征非常明显,用搜索引擎一抓一大把,危害极大!

防范:

1.Thinkphp官方补丁已经发布,或者升级到Thinkphp最新版本
2.php.ini中禁用部分可能产生安全问题或者暴露敏感信息的的函数,如在这里涉及到的eval和phpinfo等
3.适当配置服务器权限,比如文件目录的读写权限,这样即便漏洞被利用,也在一定程度上增加黑客提权的难度。

感谢阅读本文,欢迎访问获取更多内容或

转载于:https://my.oschina.net/falcon10086/blog/712806

你可能感兴趣的文章
YUM仓库服务
查看>>
Linux运维学习之自制简单linux小系统
查看>>
linux日常运维(crond,systemd,chkconfing,unit,target)
查看>>
Ansible playbook及 示例
查看>>
企业营业执照OCR识别
查看>>
给图片加水印
查看>>
我的友情链接
查看>>
AIX系统中适用于ksh的循环语句
查看>>
Nginx 配置详解
查看>>
什么是ARP攻击及ARP欺骗的种类
查看>>
MAC 安装cocoapods 遇到问题
查看>>
abstract class和interface有什么区别?
查看>>
OneNMP路由器、交换机监控
查看>>
软件生命周期
查看>>
解决:安装Jenkins时web界面出现jenkins实例似乎已离线问题
查看>>
解决phpMyAdmin在nginx+php-fpm模式下无法使用的问题
查看>>
自动领豆golang版
查看>>
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
查看>>
Android ***测试学习手册(二)准备实验环境
查看>>
向Web开发人员推荐12款优秀的 Twitter Bootstrap 组件和工具
查看>>