Wargame/XCZ.KR
-
<XCZ.KR> 32번 문제Wargame/XCZ.KR 2021. 11. 7. 23:00
32번 문제 페이지 소스 코드부터 살펴보면 GET 방식으로 전달받은 a의 값을 urlencode() 한 것이 $a다. $a에 값이 설정되있고 그 값이 "12735366333132132465461?????????????????????????????" 라면 KEY값을 얻고, 이 값이 아니면 "Failed ur tricks"를 출력한다. GET 방식으로 전달받은 a값에 대한 자료형 선언이 없으므로, Type Juggling을 발생시킬 수 있다. a의 값으로 "12735366333132132465461" 뒤에 '?' 개수 만큼 아무 숫자나 넣어 주면 된다. ※ '?'의 개수보다 적거나 많으면 안된다. Prob Page에서 a의 값을 넘겨주면 KEY 값을 획득할 수 있다.
-
<XCZ.KR> 21번 문제Wargame/XCZ.KR 2021. 11. 3. 12:23
21번 문제 제목이 PHP Obfuscation Crack이다. 말 그대로 PHP 난독화를 풀라는 뜻이다. View source를 통해 소스 코드를 살펴보자. 코드를 분석하기 굉장히 어렵다. PHP Obfuscation Decoder를 통해 풀어보겠다. 그래도 이해하기 굉장히 힘들다. 알아보기 쉽게 변수명을 알파벳 대문자로 바꿔본다. 먼저, h() 함수를 정의한다. $b에 전달받은 $a를 하나씩 아스키코드 숫자로 변환해서 붙이는 것을 확인할 수 있다. 'key'는 GET 방식으로 전송한다. 이 전송한 'key'는 '-'으로 분할하여 배열로 저장한다. 그리고 PHP에서 '@'는 오류 메시지를 표시하지 않겠다는 뜻이므로 코드 중간의 'Error'가 나타나는 반복문은 무시했다. 아래 조건문 4개가 등장한다. ..
-
<XCZ.KR> 18번 문제Wargame/XCZ.KR 2021. 11. 2. 17:22
18번 문제 Title이 Web Basic인걸로 보아 웹 해킹 문제인듯 하다. 우선 View source를 통해 페이지 소스를 먼저 살펴보겠다. 굉장히 보기 힘든 변수들로 이루어진 PHP문이 있다. 우선 읽기 힘든 변수들 먼저 바꿔보겠다. 쿠키로 받은 값을 $A, GET 방식으로 받은 값을 $B, POST 방식으로 받은 값을 $C라 한다. 그리고 $A, $B, $C중 하나라도 비어있다면 'wrong T.T'를 출력한다. $D는 $B와 $A를 이어붙였고, $E는 $C이다. 그리고 test함수가 나와있다. $b는 빈문자열로 시작하고 파라미터로 받은 $a의 길이만큼 반복한다. 한번 반복할때 마다 $b에 '-'와 문자($a의 문자를 아스키코드로 변환한 것)를 이어붙인다. 아래엔 $D와 $E를 test함수에 인수..