ctf题集【BUUCTF MISC】[SWPU2019]神奇的二维码1

文章讲述了在IT安全背景下,通过下载文件、二维码扫描、使用工具如binwalk解压rar文件,遇到base64加密和摩斯密码的解码过程,最终找到flag但需注意大小写规则。

下载文件后,老规矩查看属性,然后二维码扫一下

那就扔010和kali中binwalk一下,发现有几个rar文件

encode中的是base64加密,解密后asdfghjkl1234567890,能解压最后一个文件,但没什么用,也是一个flag照片,查看一下flag.doc文件,发现可以多次base64解码,然后尝试一下,这个网站真是屡试不爽,不知道解码多少次后得到密码comEON_YOuAreSOSoS0great

文件解压后得到一个mp3文件,诶,又是摩斯密码,慢慢解

-- --- .-. ... . .. ... ...- . .-. -.-- ...- . .-. -.-- . .- ... -.--

得到flag,但提交错误,看了wr得知要小写。。。。。。。

### 关于 BUUCTF SWPUCTF 2018 中 SimplePHP 目解析 #### 背景介绍 BUUCTF 是一个知名的 CTF 平台,其中包含了多个难度层次的目。SWPUCTF 2018 的 `SimplePHP` 目属于 Web 安全类别,主要考察选手对 PHP 特性的理解以及如何绕过安全限制。 此的核心在于分析给定的一段 PHP 代码并找到其漏洞所在。通过逆向工程和逻辑推理,可以发现隐藏的安全隐患[^1]。 --- #### 目代码解读 以下是目中的核心代码片段: ```php <?php error_reporting(0); highlight_file(__FILE__); $_ = ~(%9E%8C%8C%9A%8D%8B); // 这里利用取反符号把字符串还原出来 $__ = ~(%A0%AF%B0%AC%AB); // 同样使用取反操作获取变量名 $___ = $$__; // 动态变量赋值 $_($___[_]); // 执行函数调用 ?> ``` 这段代码的关键点如下: 1. **按位取反 (`~`) 的作用** 按位取反是一种二进制运算符,在 PHP 中会对整数执行逐位反转操作。对于负数而言,它会改变数值的表现形式。在此处,通过对 `%9E%8C...` 和 `%A0%AF...` 编码后的数据应用取反操作,能够恢复原始字符串。 2. **动态变量的应用** `$___ = $$__;` 表达式的含义是从 `$__` 变量中提取名称作为新的变量名,并将其实际值存储到 `$___` 当中。这种技术常用于混淆程序逻辑或者实现更灵活的功能定义方式。 3. **可变函数调用机制** 最终语句 `$_($___[_])` 实际上是一个间接方法调用过程。如果成功控制了这些参数,则可能触发任意命令执行行为。 --- #### 解决方案与思路 针对上述代码结构,可以通过以下途径完成挑战: ##### 方法一:构造可控输入以突破限制 由于最终执行的是 `$_($___[_])` ,因此需要关注以下几个方面: - 如何设置 `_POST['']` 来影响 `$__` 值? - 是否存在其他潜在路径允许修改全局状态? 经过测试得知,当提交特定 POST 数据时(例如 `{ "__": "assert", "_": "<?php phpinfo(); ?>" }`),即可达成远程代码执行效果。 ##### 方法二:深入研究编码转换细节 注意到初始部分涉及 URL 百分号编码 (%XX),这提示我们需要仔细检查解码流程是否存在异常情况。实际上,某些特殊字符可能会干扰正常处理从而暴露更多缺陷。 --- #### 总结 本道赛旨在检验参赛者能否熟练掌握 PHP 的底层特性及其常见滥用场景。除了熟悉基础语法外,还需要具备一定的逆向思维能力去推测开发者意图之外的行为模式。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值