문제는 http://webgame.wowhacker.com/WoWLv8Auth/login.php
NEW!! WEBGAME LEVEL 9 & BIN LEVEL 2
두 문제 추가(2008.9.21)

-- 풀이 현황 --
웹 게임 바이너리 게임

레벨 : 1 865 명 풀이 완료
레벨 : 2 355 명 풀이 완료
레벨 : 3 201 명 풀이 완료
레벨 : 4 69 명 풀이 완료
레벨 : 5 43 명 풀이 완료
레벨 : 6 45 명 풀이 완료
레벨 : 7 21 명 풀이 완료
레벨 : 8 3 명 풀이 완료
레벨 : 9 2 명 풀이 완료

[ Level. 9, beMax ]
나인
- 2008-10-01 19:03:06 -
마지막 최고레벨 풀이자
레벨 : 1 55 명 풀이 완료
레벨 : 2 10 명 풀이 완료

[ Level. 2, neko ]
It\'s easy and fun.
- 2008-09-17 15:48:03 -
마지막 최고레벨 풀이자
자자 대망의 레벨 8을 향해서 도전
왠지 사람이 갑자기 줄어들어 난이도가 어려운듯 싶네요

Login

ID: PW:


ID Check: 로그인에 실패하였습니다.
는 존재하지 않는 아이디입니다.

일단 생각나는 것은 Sql-injection이죠...

한번 시도해봅시다
허나 sql이 아닌것 같습니다...;;--

guest/guest 로그인을 해보면



login.php, login_submit.php 2개의 화일만 유추가능합니다.

머리가 없습니다 -_- 근데 저 그림이 나중에 이해가 되더군요. 바로 문제의 포인트가 header라는것!

Guest 계정으로 로그인 되었습니다.

admin 계정이 있는것은 확실하네요 음;;;

쿠키의 SSOServer값을 해석해보니

aHR0cDovL3dlYmdhbWUud293aGFja2VyLmNvbS9Xb1dMdjhBdXRoL3Nzbw==
다음과 같이 나옵니다

http://webgame.wowhacker.com/WoWLv8Auth/sso

우리는 이 부분에서 sso를 이용한 것임을 알 수 있음.

guest/guest로 인증한 뒤에 우연히 임의로 웹 프락시 툴로 SSOserver 값을 바꾸는 도중에

Warning: get_headers(http://adfjkafdlafjldjsfalkdfjslkfadkjs/SSOServerChecker.php?sso=UElORw==) [function.get-headers]: failed to open stream: Success in /home/webgame/public_html/WoWLv8Auth/login_submit.php on line 20
Server Check: 로그인에 실패하였습니다.
SSO 서버가 정상적이지 않습니다.

이와 같은 에러메시지가 나왔습니다.

SSOserver값에 이상한 문자들을 집어넣었더니, 저 위와같은 문자가 나왔는데, 혹시나 저 테스트들을 조작해서 끼어 맞추는것이 아닐까

그러면 http://webgame.wowhacker.com/WoWLv8Auth/sso 이거를

http://localhost:8080//SSOServerChecker.php?sso=UElORw== 를 base64로 인코딩 해서 값을 넣어주면

그럼 내가 인증서버 또는 페이지를 만들면 가능하다고 하는건데

그 인증서버에 내가 원하는 코드를 써서 문제를 해결하는 건가

아무내용이나 집어넣어서는, SSO 헤더 형식이 맞질 않습니다 라고,,, 나오고....

SSO설치 솔루션이 있는건가? 아니면 헤더규칙이라도,, 음... 한번 찾아봐야겠네요

에러메시지 정리 *

Warning: get_headers() [function.get-headers]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/webgame/public_html/WoWLv8Auth/login_submit.php on line 20

Warning: get_headers(http://web?????????????????????/SSOServerChecker.php?sso=UElORw==) [function.get-headers]: failed to open stream: Success in /home/webgame/public_html/WoWLv8Auth/login_submit.php on line 20
Server Check: 로그인에 실패하였습니다.
SSO 서버가 정상적이지 않습니다.
   >> SSOServer값을 임의로 조작했을때 나오는 메시지

Server Check:로그인에 실패하였습니다.
SSO HTTP 응답 헤더가 존재하지 않습니다.
  >> SSOServer값이 정상적으로 들어감 -
       get_headers(BASE64_DECODE(SSOServer-Cookie)+"SSOServerChecker.php?sso=UElORw==);

SSOServer값은 http://내웹서버나
                          임이의 php가 돌아가는 환경의 서버주소 http://www.userhost.com (O) -> BASE64로 인코딩하여서 
                                                                                                   http://www.userhost.com/ (X)  --> 뒤에 /가 않붙음
 
- 내 웹서버의 포트를 8080으로 구성하고 Cookie값에다가 http://localhost:8080/ 입력하면 아래 메시지 나옴
<b>Warning</b>: get_headers(http://localhost:8080//SSOServerChecker.php?sso=UElORw==) [<a href='function.get-headers'>function.get-hea
ders</a>]: failed to open stream: Connection refused in <b>/home/webgame/public_html/WoWLv8Auth/login_submit.php</b> on line <b
>20</b><br />
Server Check: 로그인에 실패하였습니다.<br>
SSO 서버가 정상적이지 않습니다.<br>

HTTP와 관련된 표준으로는 다음과 같은 문서들이 있다.  http://www.ietf.org/
  • RFC 1945: Hypertext Transfer Protocol - HTTP/1.0
  • RFC 2068: Hypertext Transfer Protocol - HTTP/1.1
  • RFC 2069: An Extension to HTTP : Digest Access Authentication
http://deadfire.hihome.com/web/HTTP10.htm HTTP 1.0 한글번역 문서

자신의 웹서버에다가 각가의

SSOServerChecker.php파일을 만들어서 어떠한 응답을 보냈을때, 어떠한 메시지가 오는지를 알아야 합니다