My Drive

webhacking #1 본문

writeup

webhacking #1

sunnyeo.park 2014. 9. 29. 15:48

webhacking #1.


 

 

index.phps

  1. <?
  2. if(!$_COOKIE[user_lv]// "user_lv"라는 이름의 쿠키가 없으면
  3. {
  4. SetCookie("user_lv","1");   // "user_lv"라는 이름의 "1"값을 가진 쿠키 생성
  5. echo("<meta http-equiv=refresh content=0>"); // 새로고침(?)
  6. }
  7. ?>
  8. <html>
  9. <head>
  10. <title>Challenge 1</title>
  11. </head>
  12. <body bgcolor=black>
  13. <center>
  14. <br><br><br><br><br>
  15. <font color=white>
  16. ---------------------<br>
  17. <?
  18.  
  19. $password="????";
  20.  
  21. if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1; // user_lv의 값이 0 ~ 9 이면 user_lv의 값 = 1
  22.  
  23. if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1; // user_lv의 값이 6이상 이면 user_lv의 값 = 1
  24.  
  25. if($_COOKIE[user_lv]>5) @solve(); // user_lv의 값이 5보다 크면 해결!   
  26.  
  27. echo("<br>level : $_COOKIE[user_lv]");
  28.  
  29. ?>
  30. <br>
  31. <pre>
  32. <a onclick=location.href='index.phps'>----- index.phps -----</a>
  33. </body>
  34. </html> 

 => user_lv의 쿠키값을 5 ~ 6 으로 바꿔주면 해결!!

 

burp suite 툴을 이용해서 바꿀 수 있다.






 

user_lv의 값을 5보다 크고 6보다 작은 값으로 바꿔주면...

 





※cookie

- 인터넷 웹사이트의 방문기록을 남겨 사용자와 웹사이트 사이를 매개해 주는 정보.

 

※setcookie

setcookie : 쿠키생성

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

$naem : 쿠키의 이름

$value : 쿠키의 값 - 이 값은 클라이언트 컴퓨터에 저장됨

$expire : 유지시간

- 표준 유닉스 시간, time()이나 mktime() 함수 사용

  ex) time()+60*60*24*30 : (60seconds, 60minutes, 24hours, 30days) 30일 후 만료, 0 : 브라우저를 닫으면 사라짐

$path : 경로 - 특정 디렉토리에서 사용할 경우 설정 ("/" : 전체도메인, "/foo/" : 일부디렉토리)

$domain : 쿠키를 사용할 도메인 (" www.abc.com " : www에서만 사용가능, " .abc.com " : 모든 서브 도메인에서 사용가능)

$secure : https에서만 사용할 경우 true , http와 https를 동시에 사용할 경우 false (보안수준을 요하는 쿠키에서만 사용)

$httponly : http에서만 사용할 경우 true , javascript 등에서도 사용할 경우 false (보안수준을 요하는 쿠키에서만 사용)

 

* name을 제외한 모든 인수들은 선택적

* 공백, <html>, <head> 태그보다 앞서 출력되어야 함

* echo문 다음에 setcookie() 올 경우 에러 남

 

※meta tag(메타 태그)

(x)html 태그 중 하나, '메타', 즉 문서 그자체를 설명하는 태그

'empty tag' 중 하나, 즉 닫는 태그 없음. <meat ... />

<meta 속성 = "값" content = "내용물" />

 

* http-equiv 속성

메타 요소에서 정의된 명령을 먼저 실행한 후에 페이지를 로딩

속성 값

1) content-language : 전처리될 기본 언어 지정

 ex) <meta http-equiv="content-language" content="ko" />

2) contetn-type : 문자 인코딩 선언

 ex) <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

3) default-style : 대체 스타일시트 집합의 이름 설정

 ex) <meta http-equiv="content-style-type" content="text/css">

4) refresh : 페이지를 지정한 시간이후 새로고침

 ex) <meta http-equiv="refresh" content="10, www.naver.com">

5) 그 외

 ex) <meta http-equiv="expires" content="wed, 02 may 2011 00:00:01 GMT">

     <meta http-equiv="Content-Script-Type" content="text/javascript">

 

※eregi()

eregi('찾을 문자열', '원본문자열'); //대소문자 구분 안함

* ereg('찾을 문자열', '원본문자열'); //대소문자 구분

 

 

 

 

 

 

'writeup' 카테고리의 다른 글

webhacking #17  (0) 2014.09.29
webhacking #15  (0) 2014.09.29
webhacking #14  (0) 2014.09.29
webhacking #6  (0) 2014.09.29
webhacking #4  (0) 2014.09.29
Comments