WriteUp-CTF-Web

发布时间 2023-10-09 15:55:16作者: 尹少欣

代码审计

simple_php

  • 来源:攻防世界

  • 考点:php代码审计之数字与字符串的比较

  • 工具:手工

  • 难度:⭐

  • 分析过程

    1. 打开场景,分析代码

      image-20231008174401049

    2. 构造payload:?a="0"&b=12345s

      image-20231008174724463

反序列化

unserialize3

  • 来源:攻防世界

  • 考点:php反序列化漏洞、__wakeup()函数的绕过机制

  • 工具:手工

  • 难度:⭐

  • 分析过程

    1. 看到题目“unserialize3”知道是序列化方向,访问靶场看到代码,确定是php反序列化;

    2. 代码审计:类——xctf,成员变量——flag=“111”,方法——__wakeup(退出程序)。题目的意思,让我们绕过__wakeup方法,将序列化之后的字符串通过code变量传递;

      image-20231007083509342

    3. 如何绕过

      - php序列化之后的格式
      	数据类型:名称长度:[名称]:成员个数:[具体成员]                   #具体成员也遵循这个格式,每个成员以分号结尾
      	O:4:"xctf":2:{s:4:"flag";s:3:"111";}                        #序列化不关心方法
      - __wakeup()函数
      	如果一个类中有__wakeup函数,反序列化该类时,会首先执行这个函数;而题目中这个函数的功能是退出程序,因此需要绕过。
      	如果序列化得到的数据中,成员个数大于了真实的成员个数,就不会执行__wakeup函数。
      - 构造payload
      	?code=O:4:"xctf":3:{s:4:"flag";s:3:"111";}
      
    4. 提交payload,获得flag

      image-20231007084844091

目录扫描

backup

  • 来源:攻防世界

  • 考点:掌握常见的备份文件后缀名(.bak .swp .git .svn .bash_history .~)、目录扫描

  • 工具

  • 难度:⭐

  • 分析过程

    1. 打开题目场景:获得关键信息(扫描index.php的备份文件)

    2. 猜测是否为index.php.bak,访问/index.php.bak,直接自动下载文件

    3. 打开之后,获得flag

      image-20231008093539933

Web漏洞

inget