[Webhacking.kr] 1번 index.phps
2017. 8. 31. 23:32
1번 문제다. 정말 아무것도 안적혀있다;
--------------------- level : 1 ----- index.phps ----- |
위에 보이는 저게 다다;
index.phps에서 phps란 PHP Source의 약자로 php로 되어있는 확장자를 phps로 바꾸어 요청하면, 일부 설정을 잘못한 페이지들은 소스가 그대로 노출된다.
그러므로 http://webhacking.kr/challenge/web/web-01/index.php에 index.phps로 바꾸어서 요청하면 소스코드가 그대로 보여진다.
문제페이지에서 오른쪽클릭으로 보는 소스보기와는 완전히 다른.. php소스까지 다 보여지기 때문에, 웹 개발자 입장에서는 저런 실수를 한다면 꽤나 치명적일것이라고 본다.
근데 웃긴건.. 이게 개발자의 실수가 아니란점(아니 실수일수도 있겠다. 편의를 위해 만들어놓은 기능을 안지워서 생긴것일수있으니)
어쨋든, index.phps로 해서 들어가면 소스를 볼수 있다.
<html><head><title>Challenge 1</title></head><body bgcolor=black><center><br><br><br><br><br><font color=white>---------------------<br><br>level : 1<br><pre><a onclick=location.href='index.phps'>----- index.phps -----</a></body></html>그냥 소스보기로 보면 <a onclick=location.href='index.phps'>----- index.phps -----</a> 를 발견할수 있다.클릭하면 알아서 index.phps로 이동하므로 바로 소스 전체를 볼 수 잇다.위와 같은 소스 코드이다.<?if(!$_COOKIE[user_lv]){SetCookie("user_lv","1");echo("<meta http-equiv=refresh content=0>");}?><html><head><title>Challenge 1</title></head><body bgcolor=black><center><br><br><br><br><br><font color=white>---------------------<br><?$password="????";if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1;if($_COOKIE[user_lv]>5) @solve();echo("<br>level : $_COOKIE[user_lv]");?><br><pre><a onclick=location.href='index.phps'>----- index.phps -----</a></body></html>쿠키값을 통해서 문제를 해결해야하는 것 같다.
if(!$_COOKIE[user_lv]){SetCookie("user_lv","1");echo("<meta http-equiv=refresh content=0>");}$password="????";if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;//쿠키 값이 숫자 0-9를 제외한 값으로 나오면 쿠키 값을 1로if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1;if($_COOKIE[user_lv]>5) @solve();자... 먼저 쿠키값이 설정되있지 않으면 user_lv를 1로 설정한다.그 후 eregi 문자열 필터링 함수를 이용해 쿠키값에 0~9이외의 값이 있으면 쿠키값을 1로 설정한다.그러니 숫자만 들어가야한다.숫자만 있는 문자열을 찾을 경우 : "^[0-9]$" : 0~9까지 숫자만있는 문자열
숫자를 제외한 문자열을 찾을 경우 : "[^0-9]" : 0~9까지 숫자를 제외한 문자열그 후 if문이 실행되는데 중요한건 @solve(); 인것같다. 저게 문제를 푸는 부분인것같다.쿠키값이 6이상이면 쿠키값을 강제로 1로 설정하고 5를 초과한 값이면 @solve();이다.애매하다 애매해; 5보다는 크고 6보다는 작은 쿠키값이 있으면 성공할듯싶다.쿠키값을 변조시키는 웹툴은 찾아보면 많이 있다. 필자는 크롬 확장프로그램에서 EditThisCookie를 이용해서 쿠키값을 바꿔보겠다.5보다는 크고 6보다는 작은 정수값만 생각했었는데, 꼭 정수가 아니라도 되는걸 깨닫고. 5.5로 쿠키값을 변조해보앗다.문제가 풀렷다.
You have cleared the 1 problems.
Score + 200
'Wargame > 웹해킹(Webhacking.kr)' 카테고리의 다른 글
[Webhacking.kr] 14번 (0) | 2017.09.04 |
---|---|
[Webhacking.kr] 6번 (0) | 2017.09.03 |
[Webhacking.kr] 4번 base64 & SHA1 (0) | 2017.09.03 |
[Webhacking.kr] 2번 Blind SQL Injection (0) | 2017.09.03 |
[Webhacking.kr] 00. 가입 (0) | 2017.08.31 |