Buuctf Easy Calc

本文讲述了在遇到存在WAF防护的网站时,如何通过XSS和SQL注入测试,发现限制,并利用PHP函数var_dump和file_get_contents结合ASCII编码绕过过滤规则,最终获取到Flag的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开该靶机,发现为一个计算器

尝试写一个xss的payload测试一下

再尝试一下SQL注入

两次尝试都不行,该网页应该存在waf,查看该网页的源代码

发现有一个网页,访问一下该网页

发现为网页所过滤的一些规则,而且该网页应该是由calc.php对其进行传参

尝试看一下该网页有没有phpinfo页面

报了个403的错误,服务器上文件或目录拒绝访问

应该存在waf,尝试绕过一下waf,这里有两种绕过waf的方法

在num前添加%20(空格)绕过对num的检测

HTTP走私之重复Content-Length绕过

 查看一下disable_functions,看看禁用哪些函数 

虽然很多函数都用不了了,但是还有个scandir()函数可以用

但是又因为waf存在,使很多字符都无法使用,这里百度了一下(看了一下大佬的wp),我们可以利用chr函数对其进行绕过,但是在php里我们不能直接输出,要用var_dump或者print_r,这两个函数都可以把flag打印出来,print_r和var_dump都能输出数组和对象,但print_r对布尔型的输出不太明显;var_dump输出比较详细,一般调试时用得比较多

构造payload

/calc.php?%20num=var_dump(scandir(chr(47)))

 在这里看到了f1agg,应该为本题的flag所在

利用file_get_contents()进行读取

/calc.php?%20num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))

 得到该题的flag

flag{208301f8-9995-4bce-905c-150c1a94dcb2}

### 关于 Easy Calc 的软件或库开发 在 IT 领域中,“Easy Calc”可能指代一种用于简化计算逻辑的工具、库或者框架。然而,具体到“Easy Calc”的定义和功能范围并未被广泛标准化[^3]。如果将其理解为一个通用概念,则可以认为它是一种旨在降低复杂运算难度的技术实现方式。 #### 易用性设计原则 为了使代码更易于理解和维护,在开发类似于“Easy Calc”的程序时应遵循良好的编程实践。正如 Steve McConnell 所提到的:“优秀的代码本身就是最好的文档。”因此,在编写此类应用的过程中应当注重减少不必要的注释依赖并优化可读性[^1]。 对于面向人类读者的设计理念来说,清晰直观的结构布局以及合理命名变量都是提升整体易懂程度的重要手段之一。通过这种方式不仅可以帮助开发者快速上手项目还能有效促进团队协作效率提高[^4]。 #### 技术选型建议 当考虑构建自己的计算器类应用程序(即所谓的 'Easy Calc' 软件/库)时可以选择多种不同的技术栈来完成这一目标: - **Python**: Python 提供了许多强大的第三方模块如 NumPy 和 SciPy ,它们能够极大地增强数值处理能力 。此外还有 SymPy 这样的符号数学包可供选择如果你希望支持更加复杂的表达式解析需求的话。 下面是一个简单的例子展示如何利用 Python 实现基本四则运算的功能: ```python def calculate(expression): try: result = eval(expression) # 使用内置函数eval()执行字符串形式的算数表达式 return f"The answer is {result}" except Exception as e: return str(e) print(calculate("2+3*5")) # 输出:"The answer is 17" ``` - **JavaScript (前端)**: 如果计划创建 Web 版本的应用程序那么 JavaScript 就成为了不可或缺的一部分。借助 HTML/CSS 构建用户界面的同时还可以运用 Math.js 库来进行高级别的科学计算操作。 有关上述提及的各种技术和方法的具体细节可以通过查阅官方手册或者其他权威资料获取更多信息[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值