Season 1
-
[Reversing] rev-basic-4 문제풀이 문제를 확인해보자. Correct를 출력하는 FLAG 값을 찾는 문제이다. 문제 파일을 x64dbg 프로그램으로 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall4.7FF7312B1000 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. 해당 함수에서 사용자 입력 값에 대해 수행하는 연산은 다음과 같다. [cmp rax, 1C] // 사용자 입력 값을 0x1C=28번 반복하여 비교한다. [movzx eax, byte ptr ds:[rcx+rax]] // i번째 사용자 입력 값을 eax에..
[dreamhack] rev-basic-4 문제풀이[Reversing] rev-basic-4 문제풀이 문제를 확인해보자. Correct를 출력하는 FLAG 값을 찾는 문제이다. 문제 파일을 x64dbg 프로그램으로 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall4.7FF7312B1000 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. 해당 함수에서 사용자 입력 값에 대해 수행하는 연산은 다음과 같다. [cmp rax, 1C] // 사용자 입력 값을 0x1C=28번 반복하여 비교한다. [movzx eax, byte ptr ds:[rcx+rax]] // i번째 사용자 입력 값을 eax에..
2021.09.16 -
문제 코드
[Lord of SQLInjection] Poltergeist Write UP문제 코드
2021.09.15 -
문제풀이 바로 가보겠습니다. 1. 문제 문제 접근 시 이 페이지에 접근하기 위해서는 인증이 되어야 한다고 하며, Login, Pw를 요구하고 있습니다. 2. 문제풀이 ID, PW를 입력하는 곳에 임의의 값을 넣어 보았습니다. ID/PW에 admin/admin 값을 입력하니, 인증 실패라는 구문이 떴으며, 요청 응답 패킷에도 특별한 힌트는 없었습니다. 문제 접근 전 힌트를 참고하니, Get access to index. 라는 구문이 보이네요. index 파일에 접근하라는 문제가 보이네요. 그래서 index.php파일에 접근해 보았습니다. 요청 패킷에서 index.php 파일에 접근해 보았습니다. 응답 패킷에 플래그 값이 노출되네요. 또한 헤더 값에 Location 뒤에 종료되는 부분이 없다면 PHP는 지속..
[Root-Me]/Web Server/HTTP - Improper redirect문제풀이 바로 가보겠습니다. 1. 문제 문제 접근 시 이 페이지에 접근하기 위해서는 인증이 되어야 한다고 하며, Login, Pw를 요구하고 있습니다. 2. 문제풀이 ID, PW를 입력하는 곳에 임의의 값을 넣어 보았습니다. ID/PW에 admin/admin 값을 입력하니, 인증 실패라는 구문이 떴으며, 요청 응답 패킷에도 특별한 힌트는 없었습니다. 문제 접근 전 힌트를 참고하니, Get access to index. 라는 구문이 보이네요. index 파일에 접근하라는 문제가 보이네요. 그래서 index.php파일에 접근해 보았습니다. 요청 패킷에서 index.php 파일에 접근해 보았습니다. 응답 패킷에 플래그 값이 노출되네요. 또한 헤더 값에 Location 뒤에 종료되는 부분이 없다면 PHP는 지속..
2021.09.14 -
문제풀이 바로 시작하겠습니다. 1. 문제 문제를 보니, Score to beat 값이 999999이며, Give a try! 버튼을 클릭하여 저 숫자보다 높은 숫자를 얻어 내는 게 문제의 해결책인 것 같다. 2. 문제풀이 먼저 혹시모르기에 Give a try! 버튼을 눌러보았다. 값이 90만 근접하게 나오지만 99만을 이길 값이 나오지 않았다. 어떻게 생겨먹었는지 요청 패킷을 잡아보았다. 버튼을 누르니 score 값이 바로 정해지며 떨어졌다. 응답 값이 어떻게 구성되어있는지 확인해 보았다. Math.random 값과 1000001 값을 곱하여 Math.floor 함수를 통해 score 값이 정해지는 것 같다. 하지만 지속적으로 10만 자리가 나오는 것을 보아 저 함수에서 장난질을 치는 것 같다... 함수..
[Root-Me]/Web Server/HTTP - POST문제풀이 바로 시작하겠습니다. 1. 문제 문제를 보니, Score to beat 값이 999999이며, Give a try! 버튼을 클릭하여 저 숫자보다 높은 숫자를 얻어 내는 게 문제의 해결책인 것 같다. 2. 문제풀이 먼저 혹시모르기에 Give a try! 버튼을 눌러보았다. 값이 90만 근접하게 나오지만 99만을 이길 값이 나오지 않았다. 어떻게 생겨먹었는지 요청 패킷을 잡아보았다. 버튼을 누르니 score 값이 바로 정해지며 떨어졌다. 응답 값이 어떻게 구성되어있는지 확인해 보았다. Math.random 값과 1000001 값을 곱하여 Math.floor 함수를 통해 score 값이 정해지는 것 같다. 하지만 지속적으로 10만 자리가 나오는 것을 보아 저 함수에서 장난질을 치는 것 같다... 함수..
2021.09.14 -
문제 코드
[Lord of SQLInjection] banshee Write UP문제 코드
2021.09.14 -
문제풀이 바아로 시작합니다. 1. 문제 이번 문제의 주제는 http header이며, 문제 접근 시 콘텐츠가 http 응답의 일부가 아니다 라는 구문이 나오고 있습니다. 2. 문제풀이 위에 나오는 구문이 무슨 소리인지는 잘 모르겠으나, 주제를 통해 헤더 값의 변조가 필요하다고 느꼈고, 요청 패킷을 잡아보았습니다. 요청 패킷을 잡았더니 일반적인 헤더들이 있었으며, 응답 값에는 특이하게 Header-RootMe-Admin : none 값이 존재하였습니다. 이 부분이 수상하여 값을 none -> admin 으로 수정해 보았습니다. 역시나 응답 값은 이미 서버에서 처리된 값이 패킷에 잡히기에 아무런 변화도 일어나지 않았습니다. 이제 이 수상한 패킷을 요청 패킷에 넣어보기로 했습니다. 요청 패킷 헤더에 응답 패킷..
[Root-Me]/Web Server/HTTP - Headers문제풀이 바아로 시작합니다. 1. 문제 이번 문제의 주제는 http header이며, 문제 접근 시 콘텐츠가 http 응답의 일부가 아니다 라는 구문이 나오고 있습니다. 2. 문제풀이 위에 나오는 구문이 무슨 소리인지는 잘 모르겠으나, 주제를 통해 헤더 값의 변조가 필요하다고 느꼈고, 요청 패킷을 잡아보았습니다. 요청 패킷을 잡았더니 일반적인 헤더들이 있었으며, 응답 값에는 특이하게 Header-RootMe-Admin : none 값이 존재하였습니다. 이 부분이 수상하여 값을 none -> admin 으로 수정해 보았습니다. 역시나 응답 값은 이미 서버에서 처리된 값이 패킷에 잡히기에 아무런 변화도 일어나지 않았습니다. 이제 이 수상한 패킷을 요청 패킷에 넣어보기로 했습니다. 요청 패킷 헤더에 응답 패킷..
2021.09.13