2022.9.17 CTF省赛预赛孙精灵战队writeup
孙精灵战队
靶机复现IP
WEB-买买买01:1.14.97.218:21715
CRYPTO-easyrsrsa1: 1.14.97.218 21176
WEB-nisc_easyweb:1.14.97.218:27359
PWN-babyheap:1.14.97.218:26248
WEB-吃豆人吃豆魂-JT:1.14.97.218:22390
PWN-new_stack:1.14.97.218:26514
WEB-nisc_easyweb:1.14.97.218:27359
WEB-baby_ssssrf:1.14.97.218:25843
wp要求
1. 解题过程中,关键步骤不可省略,不可含糊其辞、一笔带过。
2. 解题过程中如是自己编写的脚本,不可省略,不可截图(代码字体可以调小;而如果代码太长,则贴关键代码函数)。
3. 您队伍所有解出的题目都必须书写WRITEUP,缺少一个则视该WRITEUP无效,队伍成绩将无效。
4. WRITEUP如过于简略和敷衍,导致无法形成逻辑链条推断出战队对题目有分析和解决的能力,该WRITEUP可能被视为无效,队伍成绩将无效。
5. 提交PDF版本即可
一、战队信息
- 名称:孙精灵
- 排名:146
二、解题情况
三、解题过程
Web
nisc_easyweb
- 通过dirsearch目录扫描,发现存在DS_Store泄露
- 发现里面有相关文件test_api.php
- 通过源代码提示,get请求传参后得到flag
nisc_学校门户网站
- 首先发现页面提示
- 通过提示注册
这里根据提示,使用密码Nihao+手机号前四位。
然后用户名考虑使用引号闭合,相当于一个SQL注入。
- 进行登录,用户名也进行了一个%00截断的操作
- 登录成功后得到flag
吃豆人吃豆魂
- 首先通过dirsearch根目录扫描得到index.js文件
- 在游戏主程序中,有一段若分数大于1000,则输出XXX,可以看出这是一段base64编码
- 解码得到flag
MISC
好怪哦
- 打开下发的zip文件,直接打开fuck.zip打不开,用010打开仔细审查一下发现有gnp.galf字样。然后下面有KP字样,想到应该要反向这些16进制字符,因为后面这些16进制字符反过来刚好就是zip文件的前缀504B0304,然后编写反转字符的脚本
脚本如下:
#include<stack>
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define MAXN 10000
int main()
{
while(true)
{
char s[MAXN];
char a[MAXN];
scanf("%s",&s);
char res[2];
int flag=1,index=0;
printf("len=%d",strlen(s));
for(int i=strlen(s)-1;i>=0;i--){
if(flag==1){
res[0]=s[i];
flag=2;
}
else{
res[1]=s[i];
a[index]=res[1];
a[index+1]=res[0];
index=index+2;
flag=1;
}
}
printf("ggg=%c\n",s[strlen(s)-1]);
for(int i=0;i<index+1;i++){
printf("%c",a[i]);
}
}
return 0;
}
- 这是一行一行转换的脚本,我们手动改了九十几行,然后可以打开zip文件,里面有png图片但是打不开,对比png图片,少了png的开头,直接加上png的开头89504E47,
- 然后直接打开发现有隐写,然后直接改png高度,改成和宽度一样直接得到flag