WARGAME 52

[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

[dreamhack] video_in_video

이 문제를 다운로드 해보면 다음과 같은 jpg 이미지가 있습니다. 한번 열어 보니, 다음과 같이 생겼습니다 Hex Fiend를 이용하여 이미지의 헥스 값을 한번 확인해보겠습니다 일단은 헤더가 FFD8FFE0~로 시작하는 것을 보니 JPG 파일은 맞긴 맞는가 보다. 그럼 JPG 파일의 푸터(FFD9)를 한번 찾아보자! 정말.. 수상한 위치에 나온다..... 왠지 뒤에는 다른 형식의 파일이 붙여진것 같은데?! 라는 기분에 헤더를 한번 검색해봤더니 이게 mp4의 ftyp-mmp4-mdat 파일의 구조인데, 이를 참고하면 우리는 ftyp-isom-moov 파일임을 알 수 있다! 즉, 영상이 숨겨져 있다는 것... 그렇다면 처음의 jpg만 따로 추출하면 어떤 사진이 나올까? 처음이랑 똑같은 이미지가 나온다......

WARGAME/forensic 2023.06.02

[dreamhack] ROT128

문제 설명 다운로드 해 보면 encfile과 rot128.py 파일이 존재합니다. 이때, rot128.py로 이미 암호화된 파일이 encfile이겟죵 ​ rot128.py를 복호화할 수 있는 코드를 짜면 되겠다! 그럼 한번 rot128.py 코드를 분석해봅시다 with open('flag.png', 'rb') as f: plain_s = f.read() 1. flag.png를 바이너리 파일로 열고 plain_s 라는 변수로 읽어옵니다 ​ plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] 2. plain_list 리스트를 생성하고 각 바이트의 값을 16진수로 변환한 후 2자리로 맞추고 대문자로 변환하여 저장합니다. ​ enc_list = list(r..

[dreamhack] sleeping shark

역대급... 시간이 오래 걸린 문제 ㅜㅜ ​ 문제 파일을 다운 해보면 pcap라서 저는 와이어샤크로 분석을 했습니다 ​ 일단 tcp follow 해봤는데 별로.. 쓸모 있는 정보는 나오지 않았습니다 ​ ​ http follow를 했더니 흥미로운게 중간에 보입니다. ​ 보이시나요? ​ 보이시나요? ​ 이 문장이... 상당히 흥미롭습니다. SQL 인젝션으로 보이죠 ​ url decode 해보면 SELECT IF(ASCII(SUBSTRING((SELECT flag FROM s3cr3t LIMIT 1), 35, 1)) = 156, SLEEP(3), 0) 인데 이 문장의 의미는 다음과 같다: 주어진 s3cr3t 테이블에서 35번째 문자의 ASCII 코드 값이 156인지 확인하고 나서 맞으면 3초 대기하고 틀리면 ..

WARGAME/forensic 2023.05.30

[dream hack] baby-linux

참 재밌는 문제입미다 웹사이트를 실행해보면요 요렇게 생겼습니다 ​ 그럼 이제 python 파일을 한번 볼게여 ​ 이 코드를 한번 분석해 봅시다. ​ user_input = request.form.get('user_input') cmd = f'echo $({user_input})' 우선 요 부분을 보면 웹페이지에서 볼 수 있는 text 입력 칸이 user_input이라는 변수로 받게 되고 cmd라는 변수에 저장됩니다. ​ if 'flag' in cmd: return render_template('index.html', result='No!') 그리고 만약 우리가 입력한 값에 'flag'라는 철자가 들어가게 된다면 무조건 No!를 출력하도록 되어있는 걸 볼 수 있습니다. ​ try: output = subp..

WARGAME/misc 2023.05.30
728x90