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
 



                
            
        
浙公网安备 33010602011771号