[极客大挑战 2019]Secret File--详细解析

信息搜集

进入界面。黑底红字,有点恐怖。

查看源代码看看有什么信息:
找到一个/Archive_room.php页面,访问:
如果直接点这个按钮的话,会回显这样的界面:

找错地方了,退回/Archive_room.php页面,查看源代码:

发现/action.php,访问,发现还是跳转到了end.php界面。

怀疑是重定向,所有我们访问/action.php并抓包看看:

果然是302重定向,我们访问重定向页面里给的这个地址:
有include函数,应该是文件包含漏洞方面的考察。

信息搜集结束。

文件包含

php 复制代码
<?php
    highlight_file(__FILE__);
    error_reporting(0);
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag放在了flag.php里
?>

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。

strstr是大小写敏感的。

stristr是大小写不敏感的。

也就是我们上传的参数字符串中不能有 ../ tp input data这几个子串。

也就是我们不能使用data伪协议、input伪协议和通过相对路径直接查找flag文件。

所以我们选择php://filter伪协议。

php 复制代码
file=php://filter/convert.base64-encode/resource=<目标文件名>

这种方法得到的是base64编码后的文件内容,我们找个网站解码一下:

得到flag.

总结

信息搜集是Web安全的基本功,当找不到目标网页的时候,多抓包看看,会有收获。

相关推荐
Cao_Ron4 分钟前
用 SVG image symbol 画 ECharts graph 圆形节点
前端
hxy06018 分钟前
React-Call让你的React组件像异步函数一样调用
前端·react.js
Hilaku9 分钟前
为什么 AI 写前端时,总是优先选择 React,而不是 Vue?
前端·javascript·程序员
京东云开发者11 分钟前
GPT-5.6、ChatGPT Work 与 Codex 更新食用指南
前端
Cao_Ron22 分钟前
用 ECharts graph 画出卡片式矩形节点
前端
skiyee31 分钟前
换个底座的 Wot Starter 居然让 AI 更懂项目!
前端·ai编程
anyup37 分钟前
这一套绝了!AI 大模型写故事,星云 SDK 驱动 3D 数字人实时演绎
前端·人工智能·aigc
耀耀切克闹灬1 小时前
短链跳转
前端
孟陬1 小时前
高质量全方位的 AI 工具 sse-stuntman — Mock SSE 接口
前端·node.js·openai
Cao_Ron1 小时前
给 ECharts 6 graph 节点叠加角标:从原理到性能优化
前端