[GXYCTF2019]禁止套娃-韶华当歌





[GXYCTF2019]禁止套娃

发布时间:2020/07/20 作者:linmoumou 浏览(225) 评论(20) 分类【CTF】 文章来源:博主原创

    考点

    • .git泄露
    • php代码审计
    • RCE

    解题

    刚开始不知道干嘛,就注册做题思路,扫目录,抓包,都没上面思路,后面尝试了下,.git 泄露用githack扫一下

    得到index.php

    就是用三个正则做了过滤: 第一个:过滤了php伪协议php://data://filter://pahr://

    第二个:

    preg_replace正则替换,\((?R)?\)表示递归执行前面的正则,这个正则就是,循环吧小写字母,()_替换为空, if判断是不是只留下了;

    第三个:过滤了 /et、na、indo等一些命令执行关键字

    绕过上面上个正则就可以@eval($_GET['exp']);通过这个做一个命令执行

    一步一步来,先看看当前文件夹下面有啥

    1、print_r(scandir('.'));,但是这样顾虑下来还会留下'.'首页要换一个东西替换这个.

    localeconv() 函数返回一包含本地数字及货币格式信息的数组。而数组第一项就是.

    current() 返回数组中的当前单元, 默认取第一个值。 pos() current() 的别名。

    子要这样组合就把这个.变成了全是小写字母和括号

    返回了

    2、我们已经把问价名都拿到了,那我们不是只要读到倒数第二个flag.php就好了,正常是highlight_file("flag.php");这样的,但是这样就过不了第二个正则表达式,那我们就尝试读数组的第三个,第一个想到是的是next但是next不能多层嵌套,一个next只能读到第二个,那么是不是把数组倒序排列就好了

    array_reverse()

    语法

    参数描述
    array必需。规定数组。
    preserve可选。规定是否保留原始数组的键名。这个参数是 PHP 4.0.3 中新加的。可能的值:truefalse

    技术细节

    返回值:返回反转后的数组。
    PHP 版本:4+
    更新日志:在 PHP 4.0.3 中新增了 preserve 参数。

    那网页我们的payload就出来了:highlight_file(next(array_reverse(scandir(pos(localeconv())))));

关键字词:CTF,2019GXYCTF,web

返回顶部小火箭


常用网站

我的主页

浙ICP备20007936号 · @版权所有 lin 联系我