CTFHUB-SSRF-上传文件
1.这里先访问一下flag.php

这里我直接f12右键编辑html,修改前端代码加上了
<input type="submit" name="tijiao">
这样就生成了提交按钮
这里查看flag.php的源码
这里使用file伪协议:file:///var/www/html/flag.php

<?php
error_reporting(0);
if($_SERVER["REMOTE_ADDR"] != "127.0.0.1"){
echo "Just View From 127.0.0.1";
return;
}
if(isset($_FILES["file"]) && $_FILES["file"]["size"] > 0){
echo getenv("CTFHUB");
exit;
}
?>
Upload Webshell
<form action="/flag.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
</form>
这里要求是必须本地上传,而且这里检测了上传文件的大小,不能上传一个空文件。
这里上传一个不是空文件即可
我上传的是4.txt,内容是hhhhh
这里上传的时候进行抓包。
这里将抓到的包进行url编码
这里编码两次。
这里注意第一次编码后要将%0A改为%0D%0A
编码后拼接?url=1270.0.0.1/index.php?url=gopher://127.0.0.1:80/_
得到了flag
这里编码两次的原因一直没有搞明白,前几天问了一个大佬,他是这么和我说的:一般的浏览器会自动的URL解码一次,所以一般要多加一次url编码。

|