zoukankan      html  css  js  c++  java
  • [RoarCTF 2019]Easy Calc

    [RoarCTF 2019]Easy Calc

    题目

    题目打开是这样的
    查看源码


    .ajax是指通过http请求加载远程数据。
    可以发现有一个calc.php,输入的算式会被传入到这个php文件里,尝试一下能不能打开

    可以打开,并且显示了源码

    foreach 语法结构提供了遍历数组的简单方式。
    语法:

    foreach (array_expression as $value)
        statement
    foreach (array_expression as $key => $value)
        statement
    

    在这道题里,会对黑名单中的每一个值都拿出来连接成正则表达式的字符串,/m表示多行查找
    其他几个参数:

    /i (忽略大小写)
    /g (全文查找出现的所有匹配字符)
    /m (多行查找)
    /gi(全文查找、忽略大小写)
    /ig(全文查找、忽略大小写)
    

    假如绕过的话,我们就可以用eval执行任意php语句

    重点

    了解一下php的解析规则,当php进行解析的时候,如果变量前面有空格,会去掉前面的空格再解析
    而这里黑名单过滤,没有过滤这种情况,那么久可以构造一个查询语句了
    ? num=1;var_dump(scandir(chr(47)))
    scandir(/)可以查看目录,用chr()来绕过waf,注意在calc.php页面提交

    可以看到一个f1agg,打开这个文件就好

    ? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

  • 相关阅读:
    2021暑假模拟赛6
    2021暑假模拟赛5
    2021暑假模拟赛4
    2021暑假模拟赛3
    2021暑假模拟赛2
    umi提速方案之 mfsu
    Nginx (可为容器)配置 BasicAuth 与访问
    Mango 漫画管理器体验
    blivechat 在 OBS 中使用 BasicAuth URL 登录
    Electron 实现最小化到托盘
  • 原文地址:https://www.cnblogs.com/yunqian2017/p/13306348.html
Copyright © 2011-2022 走看看