RoarCTF-2019-Easy-Calc

[RoarCTF 2019]Easy Calc

1.题目:绕过/Http走私
2.过程:

做HGAME走私者的时候发现的这题,拿来做一做……

网页是一个计算器功能,对特殊字符进行了过滤

提交参数时查看流量:

image-20210306111835199

发现对calc.php和num,访问calc.php:

image-20210306111937730

正则匹配模式:

/i (忽略大小写)

/g (全文查找出现的所有匹配字符)

/m (多行查找)

/gi(全文查找、忽略大小写)

/ig(全文查找、忽略大小写)

按理应该是绕过……

法一:绕过
image-20210306111953271

利用scandir扫描目录

image-20210306112012711

+num可以绕过匹配,但在处理时+会被省去,实现绕过,chr

结合var_dump显示目录:

image-20210306112036833

发现f1agg文件

然后用file、file_get_contents去读取文件,用chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)拼接绕过黑名单

dalao:

https://www.cnblogs.com/gyrgyr/p/5774436.html

利用PHP的字符串解析特性Bypass

所以他实际上有两层检测,第一层检测过滤各种字母;+num绕过后还会过滤引号等。

2.Http走私

其实不太明白服务器架设之类的知识,可以去学一下……

由于前后端服务器对信息体的识别问题,加上缓存重用连接,导致了漏洞……?

但这道题挺诡异的:

image-20210306112111707

只需要两个CL头就可以绕过……

猜测和这个有关系Http走私4.3.1-ATS第一个补丁……

个人猜想:前端服务器读出有两个CL头,虽然报错,但仍然转发了请求(所以三个CL头也能成……)。

image-20210306112126105

dalao:星盟

ok

作者

inanb

发布于

2021-02-05

更新于

2021-08-23

许可协议


:D 一言句子获取中...