webhacking/etc

Enigmagroup basic/Prerequisites, Spoofing, URL Manipulation

qkqhxla1 2014. 11. 30. 13:31

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