웹 문제이다.

400점 짜리라 그런지 꽤 고생했던 문제.

이 문제를 풀고나면 교훈을 얻을 수 있다.



우선, README 게시글을 클릭하면 위와 같은 팝업창을 확인할 수 있을 것이다.

아래 문장을 보니 SQL Injection 해주세요라고 말하는 것 같다.


"select szPwd from T_Web13 where nIdx = '3' and szPwd = '"&pwd&"'"


우리가 만약 ssaemo를 입력한다면, 쿼리는


select szPwd from T_Web13 where nIdx = '3' and szPwd = ' ssaemo '


위와 같은 쿼리가 입력될 것이다. 쿼리 전체를 감싸는 ""는 영향을 받지 않으므로 생략하겠다.


위와 같은 쿼리에서 패스워드를 맞추지 않고 값을 가져오려면

' or 2>1 -- a

와 같이 입력해주면 된다.


select szPwd from T_Web13 where nIdx = '3' and szPwd = ' ' or 2>1 -- a '


싱글 쿼터로 쿼리를 닫고(') or 참(2>1), 그리고 주석(-- a)이다. 뒤의 ' 쿼리를 주석처리 하기위해.

sql injection이 성공하면 auth_key를 획득할 수 있다.


그런데 클리어 인증이 되지 않는다. 무언가가 더 있는 것일까? 다른 게시글에 뭐가 또 있나?

여기서 많이 헤맸다.


접근권한이 없습니다라는 메시지는 왜 뜨는 것일까? 문제 출제자의 실수인가?









위 메시지 또한 문제의 일부이다.

메시지가 뜬 순간의 URL를 잘 보자.








http://suninatas.com/Part_one/web06/view.asp?num=3&passcode=wkdrnlwnd


페이지가 어딘가로 이동하려는데, 우리에게는 해당 페이지의 접근 권한이 없다.

지금 우리가 할 수 있는 건 접근 권한을 얻어내는 것이다.

지금 우리가 가지고 있는 힌트는 auth_key이다. 이걸 어디에 활용할 수 있을까?











정답은 Cookie에 숨겨져있다.



auth_key라는 쿠키가 있었다. %3F는 '?'가 URL Encoding된 것. 우리가 얻은 auth_key를 여기에 넣으면 된다.

엥 그런데 넣어도 안된다. 뭐가 문제지?












우리가 생각않고 있던 힌트. 인코딩 사이트다. 우리는 여기서 auth_key를 인코딩 해야한다는 것을 알 수 있다.

여기서 passcode를 인코딩하고 장귀중 검색해보고 별의 별 삽질을













MD5로 인코딩된 auth_key를 입력해주면, 페이지가 정상적으로 뜨는 것을 확인할 수 있다.

필자는 ?가 %3F로 URL 인코딩 되어있어서 계속 URL Encoding하고 있었음.

그리고 저 사이트 MD5 인코딩 너무 느리므로 다른 사이트 이용 추천(너무 느려서 MD5는 아니겠네라고 단정지어버림.)


어쨌든, 여기까지는 왔는데. 여기서 뭐하라는거지? 키가 어딨음? 키를 찾아보자.























페이지 소스를 보면, KEY_HINT 이름을 가진 form 태그를 확인할 수 있다. 옆에는 Rome's First Emperor라고 적혀있다.

이게 auth_key인가?! 아니다.

구글링해보면 영문 위키피디아에서 Augustus 이 분이 로마 최초 황제라는 것을 알 수 있다.


이게 바로 auth_key. 인증하면 클리어다.

근데 이게 또 augustus라고 인증하면 안돼요. 너무하시네

괜히 답까지 찾아놓고 대소문자 때문에 삽질하는 사람은 없기를..


이 문제에서 본인은 auth_key encoding 부분에서 애를 먹었는데.

교훈은.

넣을 수 있는 건 다 넣어보자.

URL Encode에 속지말자.


어쨌든 힘들게 클리어했다.

아맞다 그리고, 서니나타스는 asp를 쓰는 것으로 보아 윈도우 서버, MSSQL을 사용하는 것으로 추측되는데

mysql 에서는 or 1이 참으로 취급되나, MSSQL에서는 or 1은 쿼리 오류이다. 참고.



'Wargame Writeup > SuNiTaTaS' 카테고리의 다른 글

[SuNiNaTaS] 7번 문제  (0) 2015.11.05
[SuNiNaTaS] 5번 문제  (5) 2015.11.05
[SuNiNaTaS] 4번 문제  (0) 2015.11.04
[SuNiNaTaS] 3번 문제  (0) 2015.11.04
[SuNiNaTaS] 2번 문제  (0) 2015.11.04

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/