<?
$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 |