CTF [RoarCTF 2019]Easy Calc writeup PHP字符串解析特性Bypass http请求走私(HTTP Request Smuggling)

0x00 开干

一看这种easy的,就慌,每次被ctf打,哪是打ctf。。。
在这里插入图片描述
试了下,还真可以算。但是看网页没有动,是静态。
在这里插入图片描述
那这个结果肯定是前端的JS了。
在这里插入图片描述
JS使用ajax发送数据到calc.php,然后根据返回结果来显示。比如下面这样就是计算失败的。
在这里插入图片描述
而且上面提示,已经设置好了waf肯定也不是那么容易的,查看了头部和其它元素后,发现没有什么可以利用的,就去看了下calc.php

<?php
error_reporting(0);
if(!isset($_GET['num'])){
    show_source(__FILE__);
}else{
        $str = $_GET['num'];
        $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];
        foreach ($blacklist as $blackitem) {
                if (preg_match('/' . $blackitem . '/m', $str)) {
                        die("what are you want to do?");
                }
        }
        eval('echo '.$str.';');
}
?> 

num参数中的特殊字符都检测了,不过还好,没有用闭合。

在这里插入图片描述
估计是禁止界面,估计这里就是所谓的waf了,
在这里插入图片描述
a都不行,估计只能传数字了。

估计这里应该是又有骚操作,知识盲区。

去查的writeup,有两个方法,这些人是真的牛批,每次都有新花样。


0x01 Writeup1

利用PHP的字符串解析特性Bypass
PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:

  1. 删除空白符
  2. 将某些字符转换为下划线(包括空格)

在这里插入图片描述
知道这个特性后,就可以尝试过掉wafwaf应该是用的中间件的检测来书写的规则 ,所以直接在变量前面加个空格即可。
在这里插入图片描述
这里就成功绕过了waf,接着第二点,再来突破php当中的正则

不知道到flag在哪,于是想用scandir()来查找,但是引号都被检测了,这里可以把字符串用chr()函数通过acsii进行传递,只有这个才不需要引号,常见的base64()bin2hex()都需要引号才可以转换。

先看本目录下的内容,.ascii46
在这里插入图片描述
还有一个libs。。不知道啥玩意,看一下。
在这里插入图片描述
啥都没,看来不在这了,这就只能顺着找了,从/开始吧,先转成ascii47
在这里插入图片描述
找到个f1agg,再读一次,MD,这么小,还先以为是flagg,有考IE内味了,读了半天没读出来。
在这里插入图片描述
参考文章:利用PHP的字符串解析特性Bypass


0x02 Writeup2

http请求走私(HTTP Request Smuggling)
HTTP请求走私是一种干扰网站处理HTTP请求序列方式的技术,使攻击者可以绕过安全控制,未经授权访问敏感数据并直接危害其他应用程序用户。

请求走私大多发生于前端服务器和后端服务器对客户端传入的数据理解不一致的情况。这是因为HTTP规范提供了两种不同的方法来指定请求的结束位置,即 Content-LengthTransfer-Encoding标头。

大佬们真是太强了。。。

参考文章:

http请求走私(HTTP Request Smuggling)

Easy Calc(http走私 && 利用PHP的字符串解析特性Bypass)

因为主要是内容太多了,就不自己测试了,看完了就来实操一把,加深印象。
在这里插入图片描述
只需要改变这几个参数就成功绕过,使用的是属于CL-CL类型的

通过使用之前payload?num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))
在这里插入图片描述

已标记关键词 清除标记
相关推荐
<p> <b><span style="background-color:#FFE500;">【超实用课程内容】</span></b> </p> <p> <br /> </p> <p> <br /> </p> <p> 本课程内容包含讲解<span>解读Nginx的基础知识,</span><span>解读Nginx的核心知识、带领学员进行</span>高并发环境下的Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。 </p> <p> <br /> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><br /> </b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><span style="background-color:#FFE500;">【课程如何观看?】</span></b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> PC端:<a href="https://edu.csdn.net/course/detail/26277"><span id="__kindeditor_bookmark_start_21__"></span></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 移动端:CSDN 学院APP(注意不是CSDN APP哦) </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~ </p> <p style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <strong><span style="background-color:#FFE500;">【学员专享增值服务】</span></strong> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b>源码开放</b> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 下载方式:电脑登录<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a>,播放页面右侧点击课件进行资料打包下载 </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页