CTF's Write-up(141)
-
HACKCTF - Welcome_REV
해당 파일을 받아서 파일에 대해서 알아보면 32비트 파일인것을 확인합니다. 이를 실행시켜보면 실행하면 password!를 제공해달라고합니다. 인자로 값을 넣어주면 맞는지 아닌지 확인 후에 결과를 알려주는군요. 이를 ida로 분석해보면 8번쨰 줄에 check_password라는 함수가 있습니다. 이를 따라 들어가보면 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77..
2020.07.11 -
HACKCTF - x64 Buffer Overflow
문제 이름부터 전형적인 64bit BOF문제를 나타내는 것을 볼 수 있다. 실행은 입력한 값에 앞에 Hello 를 붙여주는 형식이다. NX가 켜져있으니 전에 했던 문제들처럼 shellcode를 직접 넣어서 푸는 문제형식은 아닐것이다. scanf 에서 입력제한을두지 않으니 기본적인 bof기법으로 RET를 덮으면 될듯한데 쉘의 위치를 찾으려 하니 마침 아래 함수가 보였다. 더미로 s[0x110]을 덮고 SFP[0x8] 추가해주고, 마지막 RET[0x8]
2020.07.10 -
HACKCTF - Button
링크로 들어가면 아래와 같은 화면을 확인할 수 있다. 버튼을 아무리 눌러도 반응이 없다. 버튼을 하여금 플래그를 출력하게 해줘라서 오지게 눌러보기도하고 별짓 다해봤다. 이렇게 바꿔주면 된다. 약간 게싱도 들어간거같다 웹해킹은 문제 자체에서 주는 힌트에 대한 글귀를 잘 읽어보는것도 굉장히 중요한것같다. 버튼을 누르면 실제 이렇게 확인할 수 있게된다.
2020.07.09 -
HACKCTF - Home
해당 사이트를 들어가면 머리말 -->header 뜻하는거같고, 인증되지 않은 IP주소라고 하니 localhost로 들어가면 될듯합니다. 헤더에 X-forwarded-For 를 넣어서 로컬호스트로 주면 변조가 가능하니 초기에 패킷을 잡으면 다음과 같이 나오는데 여기에 X-Forwarded-For : 127.0.0.1을 추가하여 Forward를 눌러서 패킷을 전송하면 위와 같이 FLAG를 획득할 수 있습니다.
2020.07.09 -
HACKCTF - 내 버퍼가 흘러넘친다!!!
뻔한 BOF문제로 유추가 되니 일단 실행시켜보겠습니다. 별다른 출력없이 입력만 받고 끝나는걸 확인할 수 있습니다. main함수를 보면 9번째에서 gets에서 입력값에 제한을 두지 않으니 bof가 일어나는것을 확인할 수 있습니다. 그리고 여기서 함수 목록을 보면 별다른 직접 shell을 가져다 주는 함수를 발견할 수 없는데 어떻게 풀이를 할까 고민하다가 직접 쉘코드를 넣는게 가능할까 생각을 해봤더니 NX가 가능하니 쉘코드를 직접 넣으면 될거같네요. 즉 메인함수를 다시 확인하면 1. name에 쉘코드를 넣고 2. s를 bof시켜서 리턴을 name변수로 가게끔 하면 쉘을 얻을 수 있을 것 같네요. S의 크기는 보이는것처럼 0x14이고 SFP까지 고려해주면 아래와같이 페이로드를 작성할 수 있겠네요. 1 2 3 ..
2020.07.09 -
HACKCTF - Hidden
무언가 숨겨져 있다고 한다. command + option + u 로 풀이하는 문제로 예상이 되는데. 들어가보니 5번째 파일에 플래그가 있다고 하네요. 아무거나 눌러보면 get 방식으로 /?id=3 이라고 되어있으니 /?id=5로 바꾸면 바로 풀 수 있을 것으로 보입니다.
2020.07.08