利用Thinkphp 5缓存漏洞实现前台Getshell

hacker4年前黑客文章820

  网站为了实现加速访问,会将用户访问过的页面存入缓存来减小数据库查询的开销。而Thinkphp5框架的缓存漏洞使得在缓存中注入代码成为可能。(漏洞详情见参考资料)

  本文将会详细讲解:

  1. 如何判断缓存漏洞存在的可能性

  2. 如何利用Thinkphp5的框架漏洞结合网站的一些配置实现前台getshell

  希望可以给予读者一些关于漏洞应用的启发。

  1.某基于Thinkphp5.0.10搭建的论坛类测试网站

  2.apache2

  3.php5.6及以上版本,相关php组件

  4.mysql

  1.dirsearch (github上的一个用python编写的网站路径扫描工具)

  1.查看网页的cookie,发现存在thinkphp_show_page_trace字段,确定网页基于thinkphp框架。

  

  2.使用 dirsearch 扫描目标网站。发现可以访问 cache目录,说明可能存在缓存漏洞。

  

  1.考虑到这是一个论坛类网站,尝试发帖注入缓存。

  

  2.这是最困难的一步,猜解缓存中的php文件名。根据框架实现,文件名是一个唯一字符串的md5码(此处的md5要用php的函数计算,测试发现和网上的一些在线平台计算结果不同)。考虑到论坛类网站有大量的帖子,需要用数据库存储,而帖子的索引应该为很有可能为id 。

  再结合url的路径名,猜测为article_id

  echo(md5(“article_52″));

  12a51218427a2df68e54e8f4c8b10109

  

  通过访问缓存成功getshell

  

  在thinkphp框架中,/thinkphp/library/think/cache/driver/File.php中定义了缓存的实现。其中,getCacheKey($name)函数实现了cache文件路径的计算,为获得缓存文件名称提供了可能。

  

  而set()与get()函数以序列化对象的方式无过滤地实现了缓存数据的写入与读出,为代码注入缓存提供可能。

  

  

  通过测试,可以发现帖子中的内容可以直接写入缓存文件。

  

  由于缓存文件是一个php文件,可以进行代码注入。在代码前加一个回车,使代码行独立于前面的注释行。再在末尾加上注释符号//,注释剩余内容。

  在处理帖子的代码中,读取帖子首先查询cache文件,通过调用thinkphp5框架中的cache接口实现。

  

  1. 从框架入手,在/thinkphp/library/think/cache/driver/File.php 中的set()函数中对于$value参数进行过滤,去除换行符号。(具体代码见参考资料)缺点: 可能会导致缓存文件在展示时文本布局的改变。

  2. 从网页实现入手,读取缓存时的使用的唯一索引可以设置的比较复杂,让攻击者无法猜到。如: 3ae282ad69314d68_article_id

  3. 从服务器的配置入手,关闭从外部对于cache文件夹的直接访问。

  4. 从php的配置入手,关闭eval等危险函数。

  https://paper.seebug.org/374/

  *本文原创作者:WindWing(mail)

相关文章

B站上有黑客教学吗(b站黑客入侵)

B站上有黑客教学吗(b站黑客入侵)

B站崩溃引发众人议论,为何会出现这种情况? 这其实很正常,因为很多人都在玩B站,B站拥有很大的流量群体,所以它崩了就会引发众人热议。B站是一个弹幕视频网站,最初起源于A站。当然,这两个网站之间的恩恩怨...

十大轻奢品牌女装(商场常见轻奢女装品牌)

作为一名新时代的职场女性,应该有对高品质生活的追求:给自己买最好的护肤品化妆品 ,给自己最舒适的生活环境,给自己买最好看最高端的衣服鞋子。 。。生活有品质的女人,总有不一样的魅力。 职场女性 ,选择...

剑与远征登录就送50连活动怎么参加 50连活动攻略

剑与远征登录就送50连活动怎么参加 50连活动攻略

剑与远征登录就送50连活动怎么参加?登录就送50连活动参与方法。剑与远征今天公布了活动期间内登录就送50连抽的活动,不少玩家都想知道怎么参加,下面小编为玩家们带来了登录就送50连活动参与方法,快点进来...

做个黑客需要多长时间(做黑客很难吗)

做个黑客需要多长时间(做黑客很难吗)

如何做一个高级黑客 加入黑客圈子 对一名黑客来说,最重要的是加入社区或论坛。不仅可以交换和分享彼此的经验和知识,还能够建立起团队。文件域修改是黑客行业中非常重要的一环,它可以改变一个可编辑文件中特定寻...

大年初二拜年的文案句子带图 大年初二经典祝福

正月初二拜大年,新春的第二天必须去每家的朋友家拜早年,问好大伙儿新年快乐并聚在一起用餐,亲盆友朋友们团坐着一起好不热闹啊,那麼大年初二拜早年的说说怎么发呢?下边我产生详细介绍。 大年初二拜早年的...

2020京东赔偿规则(京东延迟发货赔付30%申请教程)

2020京东赔偿规则(京东延迟发货赔付30%申请教程)

送货难题纠纷案件解决判罚规范(店家版) 第一章 送货难题管理制度 为了更好地确保买卖圆满完成,让顾客尽早接到产品,防止由于送货难题造成 买卖纠纷案件,店家在送货时理应遵循下列规定。...