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

二、解题情况

image.png

三、解题过程

Web

nisc_easyweb

  1. 通过dirsearch目录扫描,发现存在DS_Store泄露

image.png

  1. 发现里面有相关文件test_api.php

image-20220917171050097.png

  1. 通过源代码提示,get请求传参后得到flag

image-20220917171128272.png

nisc_学校门户网站

  1. 首先发现页面提示

image-20220917171327529.png

  1. 通过提示注册

这里根据提示,使用密码Nihao+手机号前四位。

然后用户名考虑使用引号闭合,相当于一个SQL注入。

image.png

  1. 进行登录,用户名也进行了一个%00截断的操作

image-20220917171533233.png

  1. 登录成功后得到flag

image-20220917171629614.png

吃豆人吃豆魂

  1. 首先通过dirsearch根目录扫描得到index.js文件

image-20220917171813385

  1. 在游戏主程序中,有一段若分数大于1000,则输出XXX,可以看出这是一段base64编码

Q~V)_QZU6V@58DVNT3RQU51.jpg

  1. 解码得到flag

~PUHHR4AHOFXYA9O}Q.png

MISC

好怪哦

  1. 打开下发的zip文件,直接打开fuck.zip打不开,用010打开仔细审查一下发现有gnp.galf字样。然后下面有KP字样,想到应该要反向这些16进制字符,因为后面这些16进制字符反过来刚好就是zip文件的前缀504B0304,然后编写反转字符的脚本

image.png

脚本如下:

#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;
}
  1. 这是一行一行转换的脚本,我们手动改了九十几行,然后可以打开zip文件,里面有png图片但是打不开,对比png图片,少了png的开头,直接加上png的开头89504E47,

image.png

  1. 然后直接打开发现有隐写,然后直接改png高度,改成和宽度一样直接得到flag

image.png

image.png

posted @ 2022-09-17 18:46  yuezi2048  阅读(37)  评论(0编辑  收藏  举报