본문 바로가기

CTF/SuNiNaTaS10

[CTF] SuNiNaTaS(써니나타스) 10번 Write-Up | Reversing 써니나타스 10번 문제풀이 Write Up 입니다. 압축파일을 다운로드할 수 있습니다. reversing.exe 파일이 있습니다. 입력창이 하나 있습니다. OllyDbg로는 파일이 안 열립니다. 다른 도구를 써야할 것 같습니다. 작업 표시줄을 보면 해당 프로그램의 아이콘을 볼 수 있습니다. 해당 아이콘은 Visual Studio로 작업했을 때 기본적으로 설정되는 아이콘인데, 이것으로 유추해 보면 C#으로 작성된 프로그램인 것 같습니다. C# 디컴파일러인 dotPeek으로 열어 보겠습니다. https://spareone.tistory.com/57 [Tool] C# .Net Reversing 도구 dotPeek .Net으로 작성된 프로그램은 쉽게 디컴파일이 되고 소스코드가 노출됩니다. 디컴파일 도구를 쓰면 .. 2022. 10. 27.
[CTF] SuNiNaTaS(써니나타스) 9번 Write-Up | Reversing 써니나타스 9번 문제풀이 Write Up 입니다. 압축파일을 다운로드할 수 있습니다. pw를 이용하여 압축을 풀어줍니다. Project1.exe가 들어있습니다. 백신에 따라서 해당 파일을 바이러스로 인식할 수 있기 때문에 이 경우는 예외 처리를 해야 합니다. 실행하면 입력할 수 있는 공간이 나옵니다. OllyDbg로 Project1.exe를 열어 보았습니다. 이리저리 찾다 보면 ASCII "913465"가 있고, 아래쪽에는 "Congratulation!" 글자가 보입니다. 913465를 입력하면 해당 메시지가 뜨는 것 같습니다. 입력하면 Congratulation!이 뜨는 것을 볼 수 있습니다. 해당 값이 flag인 것 같습니다. 해당 값을 인증하면 문제가 정답처리 됩니다. 2022. 10. 27.
[CTF] SuNiNaTaS(써니나타스) 8번 Write-Up | Web 써니나타스 8번 문제풀이 Write Up 입니다. 로그인 창이 보입니다. F12를 눌러보니 힌트가 보입니다. ID는 admin이고 PW는 0부터 9999 중 하나라고 합니다. 어짜피 0~9999니까, brute force 때려서 문제 풀도록 하겠습니다. import requests from bs4 import BeautifulSoup as bs URL = 'http://suninatas.com/challenge/web08/web08.asp' for i in range(0,10000): // 0 ~ 9999 반복 data = {'id' : 'admin', 'pw' : i} // 로그인 데이터 변수 res = requests.post(URL, data = data) // post로 로그인 데이터 전송 ctf.. 2022. 10. 5.
[CTF] SuNiNaTaS(써니나타스) 7번 Write-Up | Web 써니나타스 7번 문제풀이 Write Up 입니다. Do U Like girls?라는 글자와 아이유 사진이 있습니다. 중간에는 뜬금없이 YES 버튼이 있습니다. 아래쪽에는 윤아 사진이 있습니다. [그림 2]에서 본 중간 YES 버튼을 눌러 보겠습니다. 느리다고 합니다. F12를 눌러서 확인해보니 Faster and Faster라고 힌트가 있습니다. 아마 가운데 있는 YES버튼을 빨리 누르면 될 것 같습니다. 신컨이면 이론상 빨리 누를 순 있겠지만 버튼 위치도 많이 내려가야 있고, 크기도 작아서 일반적으로는 빨리 누르기가 불가능합니다. 따라서 Console을 통해 버튼을 눌러보겠습니다. YES 버튼 소스코드를 살펴봅니다. input 태그이고, type은 submit입니다. Console 탭을 열어 이렇게 입.. 2022. 10. 5.
[CTF] SuNiNaTaS(써니나타스) 6번 Write-Up | Web 써니나타스 6번 문제풀이 Write Up 입니다. 문제에 접속하면 게시판 하나가 있습니다. 글이 5개가 있는데, 전부 눌러보도록 하겠습니다. 첫 번째 게시물입니다. 작성자가 suninatas인 글을 보라고 합니다. 두 번째 게시물입니다. md5 해시 툴이 있는 사이트인가 봅니다. 세 번째 게시물을 클릭했더니, 패스워드 입력을 요구하는 페이지가 나왔습니다. SQL 문도 같이 있는 것을 보니, SQL Injection을 통해 해결하는 문제인 것 같습니다. 그 외 게시물들은 별 내용이 없습니다. 세 번째 게시물이 핵심인 것 같습니다. 패스워드 요구 페이지 아래의 SQL 문을 자세히 살펴보겠습니다. select szPwd from T_Web13 where nIdx = '3' and szPwd = '"&pwd&".. 2022. 10. 5.
[CTF] SuNiNaTaS(써니나타스) 5번 Write-Up | Web 써니나타스 5번 문제풀이 Write Up 입니다. 문제에 접속하면 Check Key Value라는 문장과 함께 텍스트박스가 하나 있습니다. 아무 문자를 입력하고 Check 버튼을 눌러도 별 반응이 없습니다. F12를 눌러 개발자도구를 열어보면, 다음과 같은 힌트가 있습니다. 해당 힌트를 입력해도 별 차이는 없습니다. 페이지 소스코드를 더 뜯어보면, 다음과 같은 script를 발견할 수 있습니다. 다만 해당 script는 난독화가 되어 있어 읽기 어렵습니다. 따라서 난독화를 풀어주는 툴을 이용해 보도록 하겠습니다. 난독화를 해제하는 사이트는 여러 가지가 있는데, 이 글에서는 http://dean.edwards.name/unpacker/ 사이트에서 난독화를 해제했습니다. 코드가 좀 더러운데, 정리하면 다음과.. 2022. 10. 2.
[CTF] SuNiNaTaS(써니나타스) 4번 Write-Up | Web 써니나타스 4번 문제풀이 Write Up 입니다. 문제에 접속하면 다음과 같은 페이지가 나옵니다. User-Agent는 접속 브라우저를 나타내는 것 같고, Plus 버튼을 누르면 포인트가 증가하는 것 같습니다. 일단 버튼을 눌러봅니다. 막 눌러댔더니 25까지만 올라가고 26부터는 이상한 메시지가 나타납니다. F12를 눌러 뭐가 있나 확인해봅니다. 힌트가 하나 보입니다. 포인트를 50으로 만들라네요. 'SuNiNaTaS'라는 힌트도 보입니다. 위에서 본 알림창에서도 같은 글자가 있는 것을 미루어 보면, User-Agent를 SuNiNaTaS로 만들면 되는 것 같습니다. User-Agent를 바꾸는 법은 여러 가지가 있겠지만... 브라우저 기능으로 바꿔보겠습니다. Chrome 기반 브라우저 기준 방법입니다... 2022. 10. 2.
[CTF] SuNiNaTaS(써니나타스) 3번 Write-Up | Web 써니나타스 3번 문제풀이 Write Up 입니다. 페이지에 접속하면 공지 게시판에 글을 쓰라고 합니다. 이래도 되나 싶긴 하지만... 일단 공지사항으로 들어가봅니다. 당연히 글을 쓸 수 있는 버튼은 찾아볼 수 없습니다. 다른 게시판을 찾아봅니다. 자유게시판으로 들어갔습니다. 여기는 글을 쓸 수 있는 Write 버튼이 있습니다. 일단 이 버튼이라도 눌러봅니다. 여기서 글을 쓸 수 있나 봅니다. 그런데 여기 URL을 자세히 보면, suninatas.com/board/free/write 이런식으로 되어 있습니다. URL에 있는 free를 notice로 바꿔봅니다. 공지사항에 글을 작성하는 페이지로 이동했습니다. 대충 아무거나 입력하고 SUBMIT를 눌러 봅니다. 이래도 되나 싶지만 한번 눌러봅니다. SUBMI.. 2022. 10. 2.
[CTF] SuNiNaTaS(써니나타스) 2번 Write-Up | Web 써니나타스 2번 문제풀이 Write Up 입니다. 페이지에 들어가면 웬 로그인 폼이 하나 있습니다. F12를 눌러 개발자 도구를 열어 소스코드를 살펴보면, 로그인 script와 힌트를 확인할 수 있습니다. 해당 힌트에서는 join하려면 ID와 PW가 같으면 된다는데, script에서는 값이 똑같으면 join을 막아버립니다. Join 버튼을 누르면 해당 script의 chk_form() 함수가 호출되므로, 해당 함수 호출 없이 submit() 함수를 호출하면 되는 것으로 보입니다. 일단 대충 같은 값으로 집어넣고... 개발자 도구의 Console 탭으로 가 submit 함수를 실행시키면, flag를 확인할 수 있습니다. 2022. 10. 2.
[CTF] SuNiNaTaS(써니나타스) 1번 Write-Up | Web 써니나타스 1번 문제풀이 Write Up 입니다. 해당 문제에 접속하면 다음과 같은 페이지가 나옵니다. 지금 가장 눈에 띄는 것은 텍스트박스와 Check 버튼이므로, 아무 값을 입력하고 Check 버튼을 눌러 보겠습니다. 입력된 문자열이 GET 방식으로 전송된 것을 확인할 수 있습니다. 이제 해당 페이지의 코드를 살펴봅니다. str로 임의의 문자열을 받고, 해당 문자열이 admin이면 flag가 나타나나 봅니다. 다만 중간에 문자열이 변하는 함수가 있으므로, 최종 결과물이 admin이 되기 위한 문자열을 넣어야 합니다. 해당 소스코드는 ASP로 작성되었고, 코드에 쓰여진 문자열 조작 함수는 다음과 같습니다. Replace([해당 문자열], [변경할 문자열], [새로운 문자열]) // 해당하는 문자열을 새.. 2022. 10. 2.