Prerequisites level 1 : 소스 보기 하면 답이 있다.
Prerequisites level 2 : fopen: could not open file '/www/htdocs/missions/basics/pre/2/dontlookinhere/password.txt';
이런게 나오는데 저 경로의 파일을 열수 없다는 뜻이다. 현재 url의 경로가 /missions/basics/pre/2/
이므로 뒤에 /dontlookinhere/ 를 더 쳐보면 디렉터리 리스팅. password.inc가 있다.
Prerequisites level 3 : 소스를 보면..
<script type="text/javascript"><!--
google_ad_client = "pub-3510677882072679";
/* missions */
google_ad_slot = "5010874605";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
구글 구글 구글... /robots.txt를 들어가보면 /f0rk가 있고 거기에 config.inc가 있다.
Spoofing One : 프록시를 사용해서 들어오라고 한다. HTTP_X_FORWARDED_FOR 변수를 스크립트가
감지한다고 한다. 찾아보니 프록시 서버를 통해서 거쳐갈때 저 변수가 설정되서 아이피가 바뀌어도
저 변수를 통해서 어떻게 나를 찾아낸다고 한다(맞나..?)
더 찾아보니 변수는 이런식으로 설정해준다고한다. X-FORWARDED-FOR: 내 아이피주소, 프록시
헤더에 X-FORWARDED-FOR: 1.2.3.4. 처럼 추가하면 된다.
Spoofing Two : EnigmaFox브라우저가 필요하다고 한다. 유저 에이전트를 저걸로 바꿔주면 된다.
Spoofing Three : admin.enigmagroup.org 여기서 와야 된다고 한다. referer헤더의 주소값을
저기로 바꿔주면 된다.
Spoofing Four : 모든 enigmagroup의 관리자는 해상도가 1337x1337 라고 한다. 소스를 보면
<script language="javascript">
<!--
function writeCookie()
{
var today = new Date();
var the_date = new Date("December 31, 2023");
var the_cookie_date = the_date.toGMTString();
var the_cookie = "res="+ screen.width +"x"+ screen.height;
var the_cookie = the_cookie + ";expires=" + the_cookie_date;
document.cookie=the_cookie
window.location = "index.php";
}
writeCookie();
//-->
</script>
요렇게 쿠키값에 해상도를 설정하는 부분이 있다. 쿠키값에 res=1337x1337을 추가해서 보내면 된다.
Spoofing Five : 그냥 인증 실패라고 뜬다. 쿠키값에 authorized라는 쿠키와 false라는 값이 있는데
true로 바꿔주면 된다.
URL Manipulation level 1 : 아무거나 입력해보면 password.php에서 내가 입력한 값을 찾는데
에러가 났다고 한다. 그리고 url에는 /missions/basics/um/1/index.php?file=login.php
로 딱봐도 file뒤의 인자파일을 불러온다는걸 추측해볼 수 있다.
그럼 password.php를 불러오게 하면 된다...
http://www.enigmagroup.org/missions/basics/um/1/index.php?file=password.php
URL Manipulation level 2 : 관리자가 폴더를 만들었는데 이름이 %27이라고 한다.
우리의 목표는 여기에 들어가는거라고 한다. 그냥 url에 %27을 덧붙이면 '로 디코딩되어 들어가므로
한번더 인코딩해서 %2527을 뒤에 덧붙이면 된다.
URL Manipulation level 3 : GET방식으로 전달하되 splitme.php를 두개로 잘 나눠서 split me.php
로 출력되도록 하라고 한다. splitme.php?url=split%20me.php처럼 하면 당연히 안된다.
sqli에서 공백 우회하듯이 splitme.php?url=split%0ame.php 로 %0a로 우회해주면 된다.
'webhacking > etc' 카테고리의 다른 글
xcz.kr 18번. (0) | 2014.12.07 |
---|---|
GoogleBig - HackGame (0) | 2014.12.01 |
overthewire natas 11 (0) | 2014.11.24 |
overthewire natas 1~10 (0) | 2014.11.24 |
wargame.kr type_confusion (0) | 2014.10.30 |