RoarCTF 2019-Easy calc

该博客讨论了RoarCTF2019-Easycalc挑战中涉及的PHP代码注入漏洞。通过利用WAF的限制,可以使用空格绕过过滤,执行非法字符。此外,还提到了HTTP走私攻击的概念,这种攻击利用前后端服务器对Content-Length和Transfer-Encoding处理不一致来创建漏洞。博客还探讨了如何构造请求来触发这种攻击。

RoarCTF 2019-Easy calc

在这里插入图片描述
查看源码有新的页面,然后访问 calc.php,然后还有WAF
在这里插入图片描述

<?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.';');
}
?>

利用PHP的字符串解析特性

假如waf不允许num变量传递字母:
http://www.xxx.com/index.php?num = aaaa   //显示非法输入的话
那么我们可以在num前加个空格:
http://www.xxx.com/index.php? num = aaaa
这样waf就找不到num这个变量了,因为现在的变量叫“ num”,而不是“num”。
但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。

但题目的WAF 不止这些,很多函数也被禁用了
直接扫描一下目录
在这里插入图片描述
在这里插入图片描述
读取flag
在这里插入图片描述
在这里插入图片描述

还有一种方法(Http走私攻击)

参考链接

漏洞形成的原因:
前端服务器(cdn)和后端服务器接收数据不同步,引起对客户端传入的数据理解不一致,从而导致漏洞;
为什么会不一致呢?

主要是处理Content-Length和Transfer-Encoding不一致,原则上同时使用两者时,Content-Length是无效的,当单个服务器时,没有任何问题,但当多个服务器时,理解的数据不一致时,就会出现有些服务器认为Content-Length的长度有效,有些以Transfer-Encoding有效,这样超出的长度就会拼接到下一次请求,从而导致漏洞。

这就是把上面的作为下一次请求
在这里插入图片描述
在这里插入图片描述

源码地址: https://pan.quark.cn/s/a4b39357ea24 欧姆龙触摸屏编程软件MPTST 5.02是专门为欧姆龙品牌的工业触摸屏而研发的编程解决方案,它赋予用户在直观界面上构建、修改以及排错触摸屏应用程序的能力。 该软件在工业自动化领域具有不可替代的地位,特别是在生产线监视、设备操控以及人机互动系统中发挥着核心作用。 欧姆龙MPTST(Machine Process Terminal Software Touch)5.02版本配备了多样化的功能,旨在应对不同种类的触摸屏项目要求。 以下列举了若干核心特性:1. **图形化编程**:MPTST 5.02采用图形化的编程模式,允许用户借助拖拽动作来设计屏幕布局,设定按钮、滑块、指示灯等组件,显著简化了编程流程,并提升了工作效率。 2. **兼容性**:该软件能够适配欧姆龙的多个触摸屏产品线,包括CX-One、NS系列、NJ/NX系列等,使用户可以在同一个平台上完成对不同硬件的编程任务。 3. **数据通信**:MPTST 5.02具备与PLC(可编程逻辑控制器)进行数据交互的能力,通过将触摸屏作为操作界面,实现生产数据的显示与输入,以及设备状态的监控。 4. **报警与事件管理**:软件中集成了报警和事件管理机制,可以设定多种报警标准,一旦达到预设条件,触摸屏便会展示对应的报警提示,助力操作人员迅速做出响应。 5. **模拟测试**:在设备实际连接之前,MPTST 5.02支持用户进行脱机模拟测试,以此验证程序的正确性与稳定性。 6. **项目备份与恢复**:为了防止数据遗失,MPTST 5.02提供了项目文件的备份及还原功能,对于多版本控制与团队协作具有显著价值。 7. **多语言支持**:针对全球化的应...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paidx0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值