Season 1
-
[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 -
문제 코드
[Lord of SQLInjection] Godzilla Write UP문제 코드
2021.09.12 -
첫 화면에 1,2,3 디폴트로 값이 들어가 있는것을 확인하고 go를 눌러 결과 값을 확인해보았다. 각 id에 해당하는 값과 권한을 출력해주는 것 같다. 소스코드를 보니 가장 먼저 쿼리문이 보인다. SELECT user_id, user_privileges, user_name FROM users WHERE (user_id in (".$selector.")); 보니 tmp 값이 implode 되어 쿼리 문에 들어가서 출력되는것 같다. 여기서 보아야 할 포인트는 tmp값이 1미만일 경우 unset 함수를 호출 한다는 것이다. 그러면서 count값이 줄어들면서 반복하는데 그러다보면 배열 끝에 있는 일부 요소 체크하지 않게 되는점을 이용한다. 일단 user_password에 flag 값이 있을 것이라고 추측하여 쿼..
[websec.fr] easy - Level 13첫 화면에 1,2,3 디폴트로 값이 들어가 있는것을 확인하고 go를 눌러 결과 값을 확인해보았다. 각 id에 해당하는 값과 권한을 출력해주는 것 같다. 소스코드를 보니 가장 먼저 쿼리문이 보인다. SELECT user_id, user_privileges, user_name FROM users WHERE (user_id in (".$selector.")); 보니 tmp 값이 implode 되어 쿼리 문에 들어가서 출력되는것 같다. 여기서 보아야 할 포인트는 tmp값이 1미만일 경우 unset 함수를 호출 한다는 것이다. 그러면서 count값이 줄어들면서 반복하는데 그러다보면 배열 끝에 있는 일부 요소 체크하지 않게 되는점을 이용한다. 일단 user_password에 flag 값이 있을 것이라고 추측하여 쿼..
2021.09.12