wargame 27

[dreamhack] rev-basic-0

분석을 해봅쉬다 먼저 실행을 해보면 다음과 같이 나온다 이때 아무거나 입력하면 당연히 실행이 종료되겠죠 IDA 로 정적분석을 해서 디컴파일을 해봅시다 여기서 sub_14001190 은 printf() 함수이고 sub_1400011F0 는 scanf() 함수로 보이네용 우리 가독성을 위해 각 함수명을 바꿔봅쉬다 이러면 조금 더 보기 편하죠 그럼 저 중간에 있는 sub_140001000 함수가 뭔지 알아야겟다! 당황쓰.. 바로 strcmp 함수였네요?! 저기서 Compar3_the_str1ng 이라는 문자열과 동일한 경우에만 1 을 리턴하고 있습니다 같지 않다면 0이 리턴되겠죠 그럼 메인 함수에서 같은 경우에는 Correct 가 나오고 안 같으면 Wrong 이 실행되고 종료되는 거겠네요... 그럼 정답은 ?..

WARGAME/reversing 2023.09.15

[abex crackme] 2번

2번을 실행해보면 다음과 같은 화면이 나온다 그리고 아무거나 입력해보면 다음과 같이 메세지 박스가 뜬다 디버거로 분석을 해보자. 우리는 저 문자열을 참조한 부분을 찾아보자. 다 중단점(F2)을 걸어놓고 더블클릭해서 자세히 봐보자. 그리고 점프 문들 위로 함수 호출 하는 부분들도 브레이크 포인트를 걸고 아무 값 입력해서 체크 버튼을 눌러보면 다음과 같다 이때, 계속 진행을 하다가 보면 Congratulations을 하기 위해서는 00403332에 있는 명령인 점프를 하지 않고 그냥 밑으로 진행을 해야한다. 그러면 test ax,ax 를 했을때 ZF 가 0으로 설정이 되면 안된다. push edx 와 push eax 에서 스택에 값을 넣고 있는데, 이때 스택을 따라가 보면 다음과 같다 여기서 aaaaaaaa..

WARGAME/reversing 2023.09.11

[xcz.kr] End Of Image

저 사진을 다운받아서 Hex Fiend로 한번 분석을 해봤습니다. 여기서 보면 헤더가 png로 보입니다. 근데 왠지 푸터도 제대로 있는지 보고 싶죠? 그래서 png 파일의 푸터인 49 45 4E 44 AE 42 60 82 를 찾으면 뒤에 더 내용이 붙어있는걸 볼 수 있습니다! 뒤에 이어지는 FF D8 FF E1 이라는 헤더는 jpeg 파일이기 때문에 뒷 부분을 잘라서 jpeg로 저장해줍니다! 그러면 다음과 같은 그림이 나오고 플래그값을 확인할 수 있습니다 :)

WARGAME/forensic 2023.07.16

[pwnable.kr] fd

ssh 로 접속해서 풀어봅시다. (저는 맥북의 터미널 이용했습니다.) 접속이 되었네용 그럼 이제 ls -al 명령어를 써서 파일을 한번 확인해보겠습니다. fd.c를 먼저 읽어봅시당 우선 이 코드를 이해하기 위해선 리눅스의 파일디스크립터에 대해서 알아보겠습니다 파일 디스크립터는 파이프, FIFO, 소켓, 터미널, 디바이스, 일반파일 등 종류에 상관없이 모든 열려있는 파일을 참조할때 씁니다. 파일디스크립터 목적 POSIX 이름 stdio 스트림 0 표준 입력 STDIN_FILENO stdin 1 표준 출력 STDOUT_FILENO stdout 2 표준 에러 STDERR_FILENO stderr [ 출처: https://dev-ahn.tistory.com/96 ] 쉽게 말해서, read(fd, buf, 32)..

WARGAME/pwnable 2023.07.15

[dreamhack] 64se64

웹사이트로 들어가면 다음과 같이 뜹니다. 여기서 html 소스를 확인해보면 다음과 같이 숨겨진 항목을 볼 수 있습니다! (저는 파일 다운 안받고 그냥 크롬 f12 눌러서 봤습니다..) 일단 ==으로 끝났으니 value는 base64 인코딩 된 것 같죠?? 그럼 cyberchef를 이용해서 디코딩해주면 다음과 같이 나옵니다 그럼 얘를 파이썬 파일로 돌려줍니다! (저는 귀찮아서 온라인 파이썬 컴파일러로 돌려줬습니다) 이렇게 플래그가 바로 뜹니다! ㅎㅎ

WARGAME/misc 2023.06.29

[dreamhack] phpreg

저번주에 진행한 이캅스 ctf에서 웹 챌린저팀이 만든 문제 + 드림핵의 babylinux 짬뽕한 문제느낌!! 텍스트 대체 + 리눅스 명령어를 우회할 수 있는지 보는 문제였습니다. 우선 접속하면 나오는 웹페이지입니다. 함께 제공되는 index.php 파일을 살펴봅시다. PHPreg Step 1 Step 2 Step 1 : Open the door & Go to Step 2 !! 우선 크게 특별한건 없어 보이는데, 우선 nickname과 password를 입력하고 버튼을 누르면 post로 정보를 넘기고 있습니다. 여기서 step2.php를 보면, PHPreg Step 1 Step 2

WARGAME/web 2023.06.28

[h4cking game] Hello, Postman

다운로드 해보면 다음과 같은 두 사진이 뜹니다 이때, hint를 봤는데 이런 사진이 있길래 흠... 1052를 이용하는건가?? 싶어서 구글에 postal code 1052 라고 쳐봤는데 그냥 별.. 쓸모 없는 정보만 떠서 패쓰~ Hello_Postman.jpg는 다음과 같이 신기한 바코드 모양이 뜨길래 일단 냅다 바코드 리더기를 접속했다. https://online-barcode-reader.inliteresearch.com/ Barcode Reader. Free Online Web Application © 2014-2023 Inlite Research, Inc. online-barcode-reader.inliteresearch.com 이 사이트에서 바코드 종류가 비슷하게 생긴게 있길래 읽어줬다! rea..

[h4cking game] easy

쉽나봅니다 파일을 한번 확인해볼게요 아무것도 보이지 않습니다.. 이 친구는 paint 문제 풀때(2023.06.08 - [보안/ctf writeup] - [h4cking game] paint)와 마찬가지로 https://incoherency.co.uk/image-steganography/#unhide 를 이용하여 풀어봅시다 QR 코드가 나옵니다. 이 친구가 근데 흰검 반전이 되면 참 좋을텐데... 라는 생각이 들어서 https://stegonline.georgeom.net/image 라는 사이트를 이용하여 사진을 반전 시켜봅시다 StegOnline stegonline.georgeom.net Inverse RGB를 눌러서 색 반전 시키고 저장합시당 그리고 QR 코드를 읽기 위해서 https://webqr...

WARGAME/forensic 2023.06.08

[h4cking game] paint

전에 동아리 활동을 하면서 세션에서 풀었던 문제이다. 우선 png를 한번 살펴보자 뒤에 부분이 지워져 있는 것 처럼 보인다. 이는 간단한 스테가노그래피 툴로 보면 될 것 같다. https://incoherency.co.uk/image-steganography/#unhide Image Steganography Each channel (red, green, blue) of each pixel in an image is represented by an 8-bit value. To hide the secret image inside the cover image, we replace the n least significant bits of the cover pixel value with the same numbe..

WARGAME/forensic 2023.06.08

[dreamhack] [wargame.kr] strcmp

웹해킹을 재작년에 잠깐 공부하고 한동안 손 안대다가 그냥 레벨1이니깐 쉽게 풀리지 않을까? 해서 한번 풀어봤다 제목부터 strcmp의 취약점을 이용하여 플래그를 찾는것 같다. 우선 웹페이지를 한번 볼게용 password를 입력 받고 있네요 chk를 눌러서 올바른 password 인지를 확인하는 것 같습니다 이때 source에서 $password = sha1(md5(rand().rand().rand()).rand()); if (isset($_GET['view-source'])) { show_source(__FILE__); exit(); }else if(isset($_POST['password'])){ sleep(1); // do not brute force! if (strcmp($_POST['passwor..

WARGAME/web 2023.06.02