2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

防衛省CTF2025を復習した記録

Last updated at Posted at 2025-03-24

プログラミング 暗算でもできるけど

PG-2.c
#include <stdio.h>
int main(){
	int i,j,k,l;
	k=(((10/2*4/10*4/2)+97)*10)-10;
	for(i=2;i<=k;++i){
		l=0;
		for(j=2;j<i;++j){
			if(i%j==0){
				l=1;
				break;
			}
		}
		if(l==0)printf("%d\r\n",i);
	}
	return 0;
}
$ gcc -o aaa PG-2.c
$ ./aaa | head -10
2
3
5
7
11
13
17
19
23
29

当日は、OSINT問題として解いてしまったので、プログラミングと向き合う

PG-2_kai.c
#include <stdio.h>
int main(){
	int i,j,k,l,m,ans;
    m=0;
    k=100000000;
	for(i=2;i<=k;++i){
		l=0;
		for(j=2;j<i;++j){
			if(i%j==0){
				l=1;
				break;
			}
		}
    	if(l==0){
            m++;
    	    if(m==68){
                ans = i;
    	    }
    	    if(m==314){
    	    	ans = ans + i;
    	    	printf("%d\r\n",ans);
                break;
    	    }
    	}
	}
	return 0;
}
$ gcc -o aaa PG-2_kai.c
$ ./aaa 
2420

プログラミング formjacking

目grepすると、 +'&exp-date=' や +'&cvc= などが見えるので、クレジットカード情報を送信してる場所は何となくわかるが。。。

難読化されている Javascript を

で可読化する。

image.png

https://pg3.2025winter-cybercontest.net/pg3?cardnumber=1&exp-date=1&cvc=1&Skimming=true

にアクセスするとフラグがとれたらしい。

こっち ↓はよくわからん

ネットワーク 3 Way Handshake

攻撃されている 192.168.123.115 でフィルタし、 SYN+ACKっを返しているパケットを検索し、空いているポートを特定。

3 Way Handshake1.png

特定したポートは、CyberCheffでソートした

image.png

ネットワーク さあ得点は?

Range: bytes=5-0,1-1,2-2,3-3,4-4,5-5,6-6,7-7,8-8,9-9,10-10

をぐぐると、apache_byte_range_server_dos.phpなどから CVE-2011-3192 とわかる。

あとは CVE-2011-3192 mitre と本家をググり、

image.png

Learn more at National Vulnerability Database (NVD)のリンクをクリックすれば CVSS2.0の数値がわかる。

ネットワーク decode

WireSharkにまとめてドロップできることを知らなかった。

ただし、まとめてドロップしても、httpでエクスポートできるのは、猫だけだった。

TCPストリームを

image.png

ストリーム番号をずらしながら緻密に追跡すると、ストリーム番号=12でネコの写真とは思えないbase64に出会うので、答えと確信できる。

image.png

Web 簡単には見せません

robots.txt のクロールを禁止設定

Disallow:/red/
Disallow:/gold/
Disallow:/blue/

から、フォルダ構成を認知し、アクセスしてたどり着くという流れ。

Web 整列!

ID Data flagSeqの列があり、flagSeq順に並べると、Dataにフラグが見えそうだが、}が無く、途中で切れている

ID カラムに存在している Up ボタンを押すと、?sort=id+ASC にリダイレクトされ、IDの昇順になる

?sort=id+ASC

?sort=flagSeq+ASC#

または

?sort=flagSeq+ASC--

にして、flagSeq順に並べ LIMITをコメント化する

Web 直してる最中なんです

/etc/WE-3にフラグがあるらしいので、パストラバーサル問題を疑う。

<!-- <button onClick="dlFIle('WE-3-01')">ダウンロード</button> -->

function dlFIle(file){
	var dataS = 'fName=' + file;
	var xhr = new XMLHttpRequest();
	xhr.open('POST','/secret/download.php');
	xhr.send(dataS);
	xhr.onload = function() {
		var strS = xhr.responseText;
	};
}

↑こんなのが見つかるので、

┌──(kali㉿kali)-[~]
└─$ curl -X POST --data-urlencode 'fName=../../../../../../etc/WE-3' https://we3-prod.2025winter-cybercontest.net/secret/download.php
flag{fGrantUB56skBTlmF14mostFP}

Web 直接聞いてみたら?

直接聞いてみたら1.png

直接聞いてみたら2.png

data=W3sibmFtZSI6Im5hbWUiLCJ2YWx1ZSI6Im9uIn1d

を送信したら

[["name","BLACK SMITH"]]

が返ってくる

W3sibmFtZSI6Im5hbWUiLCJ2YWx1ZSI6Im9uIn1dをデコードすると

[{"name":"name","value":"on"}]

[{"name":"flag","value":"on"}]をBase64して送信すれば、フラグがとれそう

直接聞いてみたら5.png

フォレンジック 露出禁止

192.168.100.103 - - [10/Jul/2024:15:36:05 +0900] "GET /mypage.php?sesid=MTcyMjMxMjQxNywzLHVzZXIzCg== HTTP/1.1" 200 281

base64でデコードすると1722312417,3,user3と当時のセッション有効期限ぽいのがあるので、

1738494799,6,user1

をbase64して送った

フォレンジック 成功の証

FTPでブルートフォースしてる

image.png

フォレンジック 犯人はこの中にいる!

image.png

グローバルアドレスっぽい 59.214.32.56 からポートスキャンが行われている

MACアドレスは、00:0c:29:4d:c2:33

フィルタすると、同じMACアドレスのローカルIPアドレスがある。

image.png

フォレンジック InSecureApk

image.png

MainActivityを追う

InSecureApk1.png

入力値は16文字が正解
"VUSTIq@H~]wGSBVH" = SecretGenerater.decode(入力値)

SecretGenerater.decode関数はどこ?

image.png

native関数「checkNative」へたらいまわし

InSecureApk3.png

を Ghidoraで解析

InSecureApk4.png

checkNativeたしかに存在

InSecureApk5.png

入力値を0923200802022025とxorしてる

"VUSTIq@H~]wGSBVH" = "0923200802022025" ^ 入力値

InSecureApk6.png

トリビア 排他的論理和

compare ^ pattern3 でフラグが見える

image.png

フラグの中身は IPアドレス なので それっぽくなるか確認

image.png

なった。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?