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

    去年的 roarCTF 比赛 

    质量很高 

    进去一看 

     以为和 渗透不沾边  是那种跑反应的 

    check sourch 

    find something interestring

     

     发现源码 

    代码审计  

    其实就是命令 执行加了waf 

    一开始 我以为直接就是 蚁剑连接  但是这里有个echo  想要注释掉 但是没有办法  后来 查了 资料 才了解 php特性 用; 可以分开执行语句 

    构造                     1;phpinfo();

     可结果 。。

    因为不清楚 一些php特性 做不下去了

    大佬的理解 

      主要是 字符串解析 漏洞      后台waf 可能对 查询的字符串 做了判断 如果查到了 num 就 返回禁止访问

     如果有下划线 可用  [ 代替 

    php 解析时 会把空格和%00去掉 但是waf会先进行检测  检测不到num  其实就已经绕过了waf

    知道了 这个知识点 才能继续不然 一切白干

    但是 查看了phpinfo后 

     过滤了 很多函数  主要是 系统函数 这样 我们就很难getshell    而且还过滤了很多冷门函数  但是放出了 打印函数 var_dump  相当于 C的printf

    翻出了 目录搜索函数 scandir

    查看了 源码  是过滤了 / 

    但是我们如果要查根目录  需要用               var_dump(scandir(/))    打印 找到的目录 

     发现 页面返回错误

    因为把 / 过滤了 

    而且 必须 var_dump 

    直接scandir 不行

     必须实用 var_dump(scandir(chr(47)))  

     找到 f1agg

    打开 f1agg即可

    https://www.runoob.com/php/func-string-chr.html   chr函数用法

     之后就是想办法 打开 了 

    不能直接 var_dump  因为  这个 f1agg不是代码 

    还需要用到  file_get_contents 

    该函数可以将文件内容转换为代码流   实用 var_dump 可以打印出来 

    构造payload  ? num=1;var_dump(file_get_contents(/f1agg))

    将 /f1agg转换成 chr函数表示 

    将每个字符 用 . 拼接           而不是像C或Py 一样用+

    PHP特性!!。。  没怎么学 

    构造好 ? num%00=1;var_dump(file_get_contents(/f1agg)) 

     致死点 :  php 字符串解析漏洞  命令执行漏洞 结合 

  • 相关阅读:
    String数组转换成Integer数组
    码云远程仓库用户名和密码修改了,本地如何删除修改?
    Git操作过程(码云)
    SpringCloud应用之配置中心Nacos
    SpringCloud应用之网关GateWay
    SpringCloud应用之熔断器Hystrix
    SpringCloud应用之服务调用Feign
    装饰者设计模式
    Spring 自动装配及其注解
    Spring Bean自动装配有哪些方式?
  • 原文地址:https://www.cnblogs.com/Sabia/p/14110587.html
Copyright © 2011-2022 走看看