webhacking/client

webhacking.kr 1번.

qkqhxla1 2014. 8. 11. 14:56


<?

$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]");

?>


1번 문제 소스입니다. 일단 eregi함수는 필터링으로 해당 문자가 있는지 확인하는 내용

입니다. sql인젝션 문제에서 자주 등장하니 형태를 익혀두시는게 좋을거에요.

http://c_study_s.blog.me/30133211775 참고하시기 바랍니다...

첫번째 패턴 부분인 [^0-9,.]에서 ^는 제외한다는 뜻, 0-9는 0~9사이의 숫자라는 뜻.

,는 0-9와 .을 구분하기 위한 ,이고 .은 임의의 한 글자를 뜻합니다.

즉 [^0-9,.]은 0~9사이의 숫자를 제외한 나머지 아무 한 글자를 뜻합니다.

또 $_COOKIE[]변수는 쿠키값을 뜻하고, 내부의 인자는 쿠키 이름입니다.

$_COOKIE[user_lv]는 user_lv라는 이름의 쿠키가 있다고 보시면 됩니다.

즉 if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;

는 user_lv라는 쿠키에 0~9사이의 숫자를 제외한 한 글자가 있으면 user_lv쿠키의

값을 1로 설정하라. 라는 이야기입니다. 딱히 길게 설명할 줄은 이줄밖에 없네요.

바로 아랫줄은 user_lv쿠키의 값이 6 이상이면 1로 설정하라는 소리입니다.

그 아랫줄은 user_lv쿠키의 값이 5 초과이면 @solve()로 문제를 클리어시키는 함수를

실행시키네요. 더 설명은 하지 않겠습니다. 쿠키 변경 툴로 5와 6 사이의 수로 설정

해주면 됩니다. 쿠키 변경 툴은 익스플로러에서 '쿡시툴바' 나 크롬에서

'edit this cookie' 를 추천드립니다.


쿡시툴바

http://blog.serpong.tk/220017225421


edit this cookie

https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko

'webhacking > client' 카테고리의 다른 글

codeshell.kr readonly  (0) 2014.09.24
webhacking.kr 12번  (0) 2014.08.31
webhacking.kr 5번  (0) 2014.08.19
webhacking.kr 12번  (0) 2014.08.15
webhacking.kr 6번  (0) 2014.08.10