NSSCTF EasyP

发布时间:2024年01月04日

开启环境:

?这一题我们通过分析需要知道一些知识:

1.$_SERVER[‘PHP_SELF’] :正在执行脚本的文件名

例子:127.0.0.1/pikachu/index.php 显示:/pikachu/index.php

2.S?ERVER[′REQUESTU?RI′]:与?_SERVER[‘PHP_SELF’]的区别是会加上参数

例子:127.0.0.1/pikachu/index.php?file=1.php 显示:/pikachu/index.php?1.php

3.basename():返回路径中的文件名部分

例子:127.0.0.1/pikachu/index.php?file=1.php 显示:1.php

127.0.0.1/pikachu/index.php?file=flag.php/1.php 显示:1.php

利用的点:如果传入的参数中出现了非ascii字符则会把它给丢弃。

4.正则绕过–show_source:

[ (空格) +   . 这四个都可以被处理为_

5.highlight_file有读取文件的作用

知道这些知识后,分析代码:可以输出flag但if ($guess?===?$secret)这个secret)这个secret根本找不到,应该是迷惑人的

开头有:include?'utils.php'

大胆的读它

绕过:preg_match('/utils\.php\/*$/i',?$_SERVER['PHP_SELF'])

/index.php/utils.php/%a0

页面显示成正常,成功绕过

再绕过:isset($_GET['show_source']))

利用: [ (空格) +   .

/index.php/utils.php/%a0?show+source=1

flag!

文章来源:https://blog.csdn.net/weixin_74336671/article/details/135377742
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。