CTF30 [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] webhacking.kr 24번 Write-Up webhacking.kr 24번 문제풀이 Write Up 입니다. client ip와 agent 정보가 나오고, 잘못된 IP라고 뜹니다. 소스코드입니다. PHP 영역만 따로 빼서 분석해 보겠습니다. 접속IP가 127.0.0.1이면 문제가 해결되는 것 같습니다. 그러나, IP는 str_replace()에 의해 필터링되고 있고, IP정보는 어떻게 속여서 전송해야 할지도 생각해야 합니다. 일단 str_replace() 먼저 해결해봅니다. str_replace([변경 대상 문자열], [변경할 문자열], [해당 문자열]) 이런 구조로 이루어져 있습니다. 이 함수의 취약점은, 필터링 후 남은 문자로 재조합이 가능하다는 것입니다. 예를 들어 admin이 str_replace("admin", "", $str) 이렇게 .. 2022. 10. 18. [CTF] webhacking.kr 23번 Write-Up webhacking.kr 23번 문제풀이 Write Up 입니다. 접속하면 텍스트박스와 미션 설명이 있습니다. alert() 스크립트를 실행하면 된다고 합니다. 이번 문제는 XSS(Cross Site Scripting)를 성공시키면 되는 것 같습니다. 이렇게 직접적으로 입력하면 핵 쓰지 말라고 합니다. filtering이 걸려있어서 그런 것인데, 우회해서 alert()를 호출하는 방법을 생각해 봐야겠습니다. 태그를 입력해 보았는데 아래 텍스트 크기가 커졌습니다. 크기가 커지니까 좀 징그럽습니다. 의미없는 문자열도 2글자 이상이면 다 filtering 되는 것 같습니다. 문자열 개수 filtering을 우회해야 할 것 같습니다. 검색을 해보다가 php filtering 함수 중 eregi() 함수의 취약점.. 2022. 10. 18. [CTF] webhacking.kr 20번 Write-Up webhacking.kr 20번 문제풀이 Write Up 입니다. 2초의 시간 제한이 있다고 적혀 있고, 아래 칸에는 적는 게 있습니다. 추측을 하자면 nickname과 comment, 랜덤으로 바뀌는 captcha까지 입력을 하고 Submit를 2초 내로 하라는 것 같습니다. 2초 내로 못 하면 느리다고 제출을 받아주지 않습니다. 신컨이 가능하다면 그냥도 풀 수 있겠지만 저는 그럴 능력이 안 되기 때문에 다른 방법을 생각해봅니다. javascript를 활용해 보겠습니다. document.querySelector()를 이용하면 특정 영역 선택이 가능하고, value 메소드를 이용하면 내용을 채울 수 있습니다. 먼저 nickname을 채워보겠습니다. nickname 텍스트상자 name이 'id'로 정의가 .. 2022. 10. 15. [CTF] webhacking.kr 19번 Write-Up webhacking.kr 19번 문제풀이 Write Up 입니다. id를 입력하는 칸이 있고, admin이 기본값으로 들어가 있습니다. [그림 1]의 상태로 바로 Submit를 하면 사기치지 말라고 합니다. 아무거나 치고 Submit를 했더니 반갑다는 표시가 뜹니다. 근데 로그아웃은 작동을 하지 않습니다. logout 버튼을 누르면 로그아웃이 되지 않습니다. 이것저것 뒤저보다가 cookie가 있는 것을 발견했습니다. 저기 뒤에 %3D는 = 입니다. 맨 뒤에 =는 base64 인코딩할 때 패딩으로 많이 사용하는데, base64로 인코딩 된 값임을 유츄할 수 있습니다. base64 디코딩을 한 결과입니다. 디코딩이 되긴 했지만 아직은 알아볼 수 없습니다. 해당 결과를 긁어와 다시 디코딩을 시도했지만, 깨져서.. 2022. 10. 15. [CTF] webhacking.kr 18번 Write-Up webhacking.kr 18번 문제풀이 Write Up 입니다. 대놓고 SQL Injection을 하라고 합니다. 소스코드를 살펴보면, SQL문이 하나 보입니다. 2022. 10. 14. [CTF] webhacking.kr 17번 Write-Up webhacking.kr 17번 문제풀이 Write Up 입니다. 입력 칸이 하나 있습니다. F12를 눌러보면 script가 하나 있습니다. unlock 값을 입력하면 문제가 풀리는 것 같습니다. console에서 값을 계산합니다. 계산 후 나온 값을 입력합니다. 값이 일치하면 정답처리 됩니다. 2022. 10. 14. [CTF] webhacking.kr 16번 Write-Up webhacking.kr 16번 문제풀이 Write Up 입니다. 별이 있습니다. F12를 눌러보면 script가 하나 보입니다. 주석에 do it!이라고 되어 있는 부분이 있는데, 이걸 하면 될 것 같습니다. 일단 한번 해 봅시다. mv() 함수 안에 있으므로, mv(124)를 해 봅니다. script를 입력하면 문제가 정답처리 됩니다. 2022. 10. 14. [CTF] webhacking.kr 15번 Write-Up webhacking.kr 15번 문제풀이 Write Up 입니다. 그냥 입구컷을 해버립니다. 계속 끄적대다가, 15번 문제가 js 문제인 것을 발견했습니다. 그래서 javascript 비활성화 시키고 들어가 보기로 했습니다. F12를 누르고 나오는 창 상단을 보면 설정 버튼(톱니바퀴 모양)이 있는데, 누르면 [그림 2]처럼 뜹니다. 아래로 내려 Disable JavaScript에 체크합니다. Level 15 페이지로 접속해 보겠습니다. 비활성화 시킨 후에 URL에 직접 입력해서 들어가야 합니다. 접속하면 아무것도 안 뜨는데, F12를 눌러보면 스크립트가 나옵니다. flag를 얻는 URL이 보입니다. URL 뒤에 ?getFlag를 입력하면 될 것 같습니다. URL 뒤에 ?getFlag를 입력하고 접속해봅니.. 2022. 10. 14. 이전 1 2 3 다음