워게임
-
[Reversing] rev-basic-3 문제풀이 문제를 확인해보자. Correct를 출력하는 FLAG 값을 찾는 문제이다. 문제 파일을 x64dbg 프로그램으로 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall3.7FF6CBF01000 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. 음 상당히 난해하다. 어셈블리어를 이제는 봐야한다. 눈을 감는다고 해결되지 않는다. 한숨을 크게 들이쉬고 시작해보자. 먼저 [cmp rax, 18] 을 통해 사용자 입력 값을 0x18번 비교한다. FLAG의 문자열 길이는 0x18=24 로 확인할 수 있..
[dreamhack] rev-basic-3 문제풀이[Reversing] rev-basic-3 문제풀이 문제를 확인해보자. Correct를 출력하는 FLAG 값을 찾는 문제이다. 문제 파일을 x64dbg 프로그램으로 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall3.7FF6CBF01000 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. 음 상당히 난해하다. 어셈블리어를 이제는 봐야한다. 눈을 감는다고 해결되지 않는다. 한숨을 크게 들이쉬고 시작해보자. 먼저 [cmp rax, 18] 을 통해 사용자 입력 값을 0x18번 비교한다. FLAG의 문자열 길이는 0x18=24 로 확인할 수 있..
2021.09.12 -
level 15에 들어가기 앞서 RCE를 이용(?)해서 flag 값을 도출 할 수 있을 것 같은 힌트가 보였다.. 우리가 값을 넣으면 create_function -> $fun -> $success 를 출력하게 된다. 우리는 create_function이라는 함수를 봐야한다. create_function은 매개변수를 전달받아 익명 함수를 생성하는 함수이다. 이때 잘못된 방법으로 사용할 시 RCE 취약점이 발생하게 되는데 위 소스코드 처럼 두번째 인자에 임의적인 값을 주입하여 원하는 코드를 실행시킬 수 있게된다. 위와 같이 return -1;} print_r($flag); /* 값을 넣으면 flag 값을 얻을 수 있었다. 참조 https://blog.jhyeon.dev/2020/05/15/function-..
[websec.fr] easy - Level 15level 15에 들어가기 앞서 RCE를 이용(?)해서 flag 값을 도출 할 수 있을 것 같은 힌트가 보였다.. 우리가 값을 넣으면 create_function -> $fun -> $success 를 출력하게 된다. 우리는 create_function이라는 함수를 봐야한다. create_function은 매개변수를 전달받아 익명 함수를 생성하는 함수이다. 이때 잘못된 방법으로 사용할 시 RCE 취약점이 발생하게 되는데 위 소스코드 처럼 두번째 인자에 임의적인 값을 주입하여 원하는 코드를 실행시킬 수 있게된다. 위와 같이 return -1;} print_r($flag); /* 값을 넣으면 flag 값을 얻을 수 있었다. 참조 https://blog.jhyeon.dev/2020/05/15/function-..
2021.09.12 -
[Reversing] rev-basic-2 문제풀이 문제를 확인해보자. Correct를 출력하는 FLAG 값을 찾는 문제이다. 문제 파일을 x64dbg 프로그램으로 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall2.7FF618DF1186 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. [cmp rax, 12] 를 통해 문자열을 0x12번 비교한다는 것을 알 수 있다. 문자열 비교 구문은 [cmp dword ptr ds:[rcx+rax*4], edx] 이다. 사용자가 입력한 edx 값과 (rcx+rax*4) 값을 비교하는데 rcx 에 ..
[dreamhack] rev-basic-2 문제풀이[Reversing] rev-basic-2 문제풀이 문제를 확인해보자. Correct를 출력하는 FLAG 값을 찾는 문제이다. 문제 파일을 x64dbg 프로그램으로 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall2.7FF618DF1186 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. [cmp rax, 12] 를 통해 문자열을 0x12번 비교한다는 것을 알 수 있다. 문자열 비교 구문은 [cmp dword ptr ds:[rcx+rax*4], edx] 이다. 사용자가 입력한 edx 값과 (rcx+rax*4) 값을 비교하는데 rcx 에 ..
2021.09.12 -
문제 코드
[Lord of SQLInjection] Cyclops Write UP문제 코드
2021.09.12 -
[Reversing] rev-basic-1 문제풀이 문제를 확인해보자. 어라 rev-basic-1 문제랑 똑같다. 프로그램만 다른가보다. x64dbg로 해당 파일을 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall1.7FF6CBF01000 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. 비교를 수행하는 cmp 구문에서 비교 문자열이 확인된다. 해당 문자를 조합하면 "Compar3_the_ch4ract3r" 이다. 입력 값으로 넣어보자. 문제풀이 끗
[dreamhack] rev-basic-1 문제풀이[Reversing] rev-basic-1 문제풀이 문제를 확인해보자. 어라 rev-basic-1 문제랑 똑같다. 프로그램만 다른가보다. x64dbg로 해당 파일을 열어보자. correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자. 사용자가 FLAG를 입력하고 chall1.7FF6CBF01000 함수에서 입력 값 비교를 한 뒤, Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자. 비교를 수행하는 cmp 구문에서 비교 문자열이 확인된다. 해당 문자를 조합하면 "Compar3_the_ch4ract3r" 이다. 입력 값으로 넣어보자. 문제풀이 끗
2021.09.12 -
[Reversing] rev-basic-0 문제풀이 문제를 확인해보자. correct를 출력하는 올바른 입력 값을 찾는 문제이다.문제 파일을 다운로드 해보자. 다운받은 chall0.exe 파일을 x64dbg로 open 하도록 하자. 문제는 correct 문자열을 출력시키는 flag 값만 찾으면 되기 때문에 아래와 같이 문자열 참조 찾기 기능을 통해 "correct"를 검색해주도록 한다. "correct" 문자열이 위치한 주소를 찾았다. 해당 열을 더블클릭해서 해당 위치를 찾아가보자. 어셈블리어 예전엔 읽었는데 요새는 뭐 흐름만 알겠다. 까막눈으로 대충 읊어보면 Input: 으로 사용자 입력을 받아 비교를 하고 맞으면 Correct, 틀리면 Wrong을 출력하는 것으로 보인다. test eax,eax를 통..
[dreamhack] rev-basic-0 문제풀이[Reversing] rev-basic-0 문제풀이 문제를 확인해보자. correct를 출력하는 올바른 입력 값을 찾는 문제이다.문제 파일을 다운로드 해보자. 다운받은 chall0.exe 파일을 x64dbg로 open 하도록 하자. 문제는 correct 문자열을 출력시키는 flag 값만 찾으면 되기 때문에 아래와 같이 문자열 참조 찾기 기능을 통해 "correct"를 검색해주도록 한다. "correct" 문자열이 위치한 주소를 찾았다. 해당 열을 더블클릭해서 해당 위치를 찾아가보자. 어셈블리어 예전엔 읽었는데 요새는 뭐 흐름만 알겠다. 까막눈으로 대충 읊어보면 Input: 으로 사용자 입력을 받아 비교를 하고 맞으면 Correct, 틀리면 Wrong을 출력하는 것으로 보인다. test eax,eax를 통..
2021.09.12