wow webgame
[level 1]
우선 레벨1을 시작해보자
링크와 힌트가 주어져 있다.
위 링크를 따라가보면
이런 페이지를 볼 수가 있다.
이상한 문자열들이 있고, 힌트가 나와있다.
힌트를 보아서는 php파일의 소스코드를 웹에서 봐야 할 것 같다.
우선 이 페이지에서 소스보기를 해 보았다.
별다른 코드를 발견할 수가 없었다.
일반적으로 html 소스에서는 php 소스를 볼 수가 없다. php는 서버에서 문서를 해석하여 결과를 보여주는 서버 사이드 언어이기 때문이다.
따라서 우리는 php 소스를 볼 수 있도록 해야한다.
URL의 php파일 맨 뒤에 s를 붙여보자
그럼 보이지 않던 php소스가 노출된 것을 볼수 있다.
소스를 보자.
하나하나 자세하게 볼 것이다.
<?
?>
이부분은 php소스 부분이라는 것이다. php를 사용하려면 php의 시작을 알리는 기호가 필요하다.
echo는 c의 printf와 같이 문자열을 웹 브라우저로 출력시켜주는 명령어이다.
echo "?key="; 는 ?key= 을 출력해준다
echo "$_GET[key]"; 는 GET메소드로 받아온 key변수를 출력해준다
echo "<br>"; 은 개행을 해준다.
if($_GET[key]=="wowhacker_hardware"){
include "./../key/key1";
} else echo "Can not open a key file";
만약 get메소드로 key를 받아왓다면, 그 자리에 ./../key/key1이 인클루드 된다.
include는 그 위치에서 페이지를 불러오는 것이다.
여기서는 WEBGAME KEY 를 출력하는 소스가 있는 페이지가 불러온다.
else이면 key파일을 열 수 없다고 출력한다.
그래서 ?key=wowhacker_hardware 를 뒤에 붙여서 치면
이렇게 key를 볼 수 있게 된다.
이제 level2로 ㄱㄱ
결론:
- 아파치의 경우, php 소스가 노출되는 경우, php소스를 보는 방법을 이해한다
- get메소드 방식을 이해한다
- get메소드 방식에서 url에 데이터를 보내는 방식을 이해한다