일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- burp suite
- 메소드
- xss game 풀이
- Pwndbg
- property
- 포인터
- sql injection
- lord of sql injection
- document
- 파이썬
- object
- 함수
- 자바스크립트
- github
- window
- 배열
- jQuery
- element 조회
- 백준 파이썬
- python
- 김성엽 대표님
- 객체
- 백준 알고리즘
- IF문
- htmlspecialchars
- 조건문
- blind sql injection
- 사칙연산
- suninatas 풀이
- xss game
- Today
- Total
목록War game/wargame.kr (7)
power-girl0-0
http://www.wargame.kr/challenge Wargame.kr - 2.1 www.wargame.kr 문제 문제 설명에 'strcmp 함수를 우회하면, 플래그가 표시됩니다.' 라고 적혀있다. 문제는 아래와 같다. view-source를 눌렀을 때, 아래와 같이 소스가 출력된다. 풀이 해당 문제는 strcmp()함수의 취약점을 이용하면 쉽게 풀 수 있는 문제이다. strcmp함수는 문자열을 비교해주는 함수이다. 해당 함수는 비교하는 두 개의 문자열이 같으면, 0을 반환한다. 하지만, 문자열과 배열을 비교해도 0을 반환하는 취약점을 갖고 있다. 위 소스코드와 같이 strcmp함수를 통해 비교하는 변수들 중 하나만 배열로 만들면 문자가 풀릴 것으로 예상된다. 따라서, 개발자 도구를 사용하여 아래와..
http://www.wargame.kr/challenge Wargame.kr - 2.1 www.wargame.kr 문제 문제 설명에 자바스크립트 게임이다. 당신은 우회적인 부정행위 방지 시스템을 가지고 클리어할 수 있습니까? 라고 작성되어 있다. 위 사진은 문제화면이다. CLICK TO START.를 클릭하면 아래와 같이 게임이 시작된다. 여기서 벽에 부딪치면 끝나는 게임이다. Game Over후, 출력되는 메시지는 31337점을 받아야 한다고 되어 있다. 풀이 1 문제 설명에서 자바스크립 게임이라고 하였으니, 자바스크립트 부분의 소스를 확인해보자. 위 사진과 같이, 난독화 되어 있는 것을 확인할 수 있다. 그렇다면, 아래 사이트를 이용해서 난독화 된 것을 풀어보자. https://www.strictly..
http://www.wargame.kr/challenge Wargame.kr - 2.1 www.wargame.kr 문제 문제 설명에서는 또 다른 프로그래밍 언어인데, 읽을 수 있겠냐고 물어본다. 위 사진은 문제화면이다. source code.ws를 클릭하면 다운로드하겠냐는 알림창을 띄어준다. 풀이 문제에서 source code.ws를 클릭하면 source_code.ws라는 파일이 다운로드 된다. 'Sublime Text' 라는 툴을 활용하여, source_code.ws파일을 열어보았다. 아무 내용도 출력되지 않는 것을 확인할 수 있다. 하지만, 249줄까지 되어 있으며, 드래그를 해보면 아래와 같은 화면을 볼 수 있다. 즉, 해당 파일에 내용이 있다는 것을 추측할 수 있었다. 그래서 .ws확장자 파일을 ..
http://www.wargame.kr/challenge Wargame.kr - 2.1 www.wargame.kr 문제 문제 설명을 보면 계정은 있지만 차단되어 있어서, 필터링을 우회해서 로그인 하라고 적혀있다. start를 눌러 문제를 확인해보자. 로그인화면을 확인할 수 있다. 소스 코드 분석 로그인 화면 밑에 get source를 눌러서 소스를 분석해보자. id와 ps의 변수의 값이 있으면, lib.php를 포함시킨다. mysql을 사용할 때 연결하는 코드부분이다. 위 코드는 mysql_real_escape_string 함수로 필터링하여 각각 id와 ps 변수에 넣어준다. 또한, $row에 저장된 id와 ps에 대한 값을 가져오는 쿼리문을 넣는 부분이다. 해당 부분에서는 $row에 id변수 값이 존재..
http://www.wargame.kr/challenge Wargame.kr - 2.1 www.wargame.kr 문제 문제 설명을 보면 자바스크립트를 이용한 퍼즐인 것을 알 수 있다. start를 눌러 문제를 확인해보자. QR코드가 퍼즐을 확인할 수 있다. 풀이 해당 문제는 QR코드 퍼즐을 맞추면 flag값을 알 수 있을 것으로 예측된다. 먼저, 소스를 확인해보자! 문제 설명에서 자바스크립트를 이용한 퍼즐이라고 했으므로, 자바스크립트 부분을 먼저 살펴보자. 위와 같이 unescape 함수를 확인할 수 있었다. unescape 란? escape를 통해서 만들어진 URI escape를 디코딩한 것이다. 즉, escape로 된 문자열을 정상적인 문자열로 되돌려주는 역할을 한다. 그렇다면, unescape함수..
http://www.wargame.kr/challenge Wargame.kr - 2.1 www.wargame.kr 문제 및 풀이 문제 설명에 버튼을 클릭하라고 되어있다. 즉, 버튼을 잡으면 flag 값이 출력될 것으로 예상된다. start를 눌러 문제 페이지로 이동하여 확인해보았다. click me! 라는 버튼을 눌르면 flag 값을 준다고 설명되어 있다. 하지만 해당 버튼은 마우스 커서가 이동할 때마다 따라당겨서 click할 수 없게 되어 있다. 따라서, click me! 버튼이 움직이지 않게 하기 위해서 소스를 확인해 보았다. 소스를 확인해보니, position이 absolute로 되어 있다. absolute는 position:static 속성을 가지고 있지 않은 부모를 기준으로 움직인다. absol..
http://www.wargame.kr/challenge Wargame.kr - 2.1 www.wargame.kr 문제 문제 설명을 보면, http 응답 헤더에 플래그 값이 있는 것으로 추측할 수 있다. start를 눌러 문제를 확인해보자. 키를 이미 갖고 있다고 메시지가 출력된다. 풀이 문제 설명과 같이, http 응답 헤더에 플래그 값이 있는 것이 예측된다. 따라서, burp suite툴을 이용하여 response패킷을 확인해 보았다. response 패킷의 헤더에 flag값이 저장된 것을 확인할 수 있다. 해당 flag를 정답란에 입력해주면 아래와 같이 challenge list에서 초록색으로 변한 것을 확인할 수 있다. 문제 clear !!