命令执行 [SWPUCTF 2021 新生赛]babyrce

发布时间:2023年12月20日

打开题目

我们看到题目说cookie值admin等于1时,才能包含文件

bp修改一下得到

访问rasalghul.php,得到

题目说如果我们get传入一个url且不为空值,就将我们get姿势传入的url的值赋值给ip

然后用正则过滤了 /? /,如果ip的值没有 /? /符号,则用shell_exec函数来执行变量ip中的命令,并输出结果

那我们直接读取flag

?url=cat flag

题目应该是过滤了空格

那我们就要想一下怎么绕过空格

我们想到用IFS

可能flag也被过滤了

知识点:

  • 绕过空格的方法有
注释符/**/绕过
非断开空格%a0

(非断开空格是一种特殊的空格字符,与常规空格不同,它在文本中不会引起换行或断开。在URL编码中,非断开空格通常被表示为 %a0。)

括号绕过空格?

(如果空格被过滤,括号没有被过滤,可以用括号绕过。在MySQL中,括号是用来包围子查询的。任何可以计算出结果的语句,都可以用括号包围起来。而括号两端,可以没有多余的空格)

例如:select(table_name)from(information_schema.tables)where(table_schema)='数据库名'

双写绕过空格
%20绕过空格

linux下绕过空格的方法
$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
<
<>
{cat,flag.php}? //用逗号实现了空格功能
%20
%09
  • shell_exec() 函数

shell_exec() 函数是 PHP 中的一个内置函数,用于通过 shell 执行命令并以字符串形式返回完整输出

文章来源:https://blog.csdn.net/m0_75178803/article/details/135118033
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。