2019. 1. 3. 18:06ㆍWeb Hacking/Webhacking.kr
안녕하세요!
이번에는 100점 보다는 조금 어려운
하지만 그렇게 어렵진 않은!
200점 문제 하나를 풀어 볼게요!
바로 webhacking.kr 첫 번째 1번 문제입니다!
자 일단 1번 문제로 들어가면 아래와 같이
화면이 바뀝니다!
이 문제도 지난번 문제와 마찬가지로
그냥 닥치고 index.phps 보세요...
라고 저희에게 말하고 있네요!
그래서 현재 주소창에서 뒤에다가 index.phps를
입력해 보겠습니다!
자 ! 아래에 코드가 있는데요!
한 줄 씩 분석해 보겠습니다!
if(!$_COOKIE[user_lv]) 이 뜻은
COOKIE 값중에서 user_lv가 있는데,
이것이 존재하지 않을 때 => !
어떻게 한다?
if문 안을 들어가면, SetCookie("user_lv","1");
SetCookie함수는 저희가 쿠키값을
설정할 수 있는 함수인데,
user_lv의 값을 1로 설정해라!
결국 이 소리네요!
다시 말해, user_lv의 쿠키가 없으면
이를 1로 설정해라!
밑에 echo는 그냥 출력문이므로
지나치겠습니다!!
이후에, eregi 함수가 나왔네요!
eregi함수는 지난 번에도 말씀드렸듯이,
사용자가 지정한 문자열이 검색되면 발동되는
그런 놈인데요!
eregi 함수는 현재 php 버전에서는 취약점이
존재해서 없어진 그런 함수입니다!
%00(널바이트)를 입력하면
eregi 함수는 입력이 완료된 줄
착각하거든요!
어쨌든, eregi 함수 안에 있는 인자를 보면
^0-9 이렇게 되어 있네요!
우선 ^의 경우 eregi 함수에서 제외, ~을 예외로 하고
이런식으로 쓰이네요!
다음으로 -의 경우는 eregi에서 범위를 지정할 때 사용 됩니다!
다시말해 user_lv 쿠키가 1-9인 경우를 제외하고,
나머지의 문자들은 모두 user_lv를 1로 설정한다!
이렇게 되겠네요!
"1~9로 시작하는 거 아니면 그냥 다
user_lv는 1이야!"
그리고 밑에 user_lv 쿠키값에 대한 if문들이 두 개가 있네요!
user_lv 값이 6보다 크거나 같으면
user_lv값을 1로 바꾼다
user_lv값이 5보다 크면 풀린다!!!
흠 그러면 부등식의 영역으로 종합해보면
5<user_lv<6이네요
그러면 뭐 소수점 밖에 없는데...
그래서 일단 editthiscookie 툴을 사용해서
쿠키 확인을 하니 user_lv 쿠기가 있네요!!!
그래서 일단은 3.1처럼 소수점이 입력이 되나
user_lv값에 입력해보았습니다!
그리고 적용을 누르고
F5를 통해 새로고침을 해봤습니다!
그랬더니!
level : 1에서
level :3.1로 바뀌었네요!
만약에 eregi에 걸렸다면
level : 1 이렇게
출력됐었어야 했는데!
소수점도 필터링 안되는거 확인했구요!!
흠! 그러면 저희가 생각한대로!
5.1과 같은 소수점을 입력하러 가봅시다!
아까처럼 user_lv 쿠키 창에
5.1을 입력하니!
아래와 같이 뜨네요!
고생하셨습니다!
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
[어설픈] webhacking.kr 25번 문제풀이 (0) | 2019.01.07 |
---|---|
[어설픈] webhacking.kr 6번 문제풀이 (0) | 2019.01.04 |
[어설픈] webhacking.kr 26번 문제풀이 (0) | 2019.01.02 |
[어설픈] webhacking.kr 24번 문제풀이 (0) | 2019.01.01 |
[어설픈] webhacking.kr 4번 문제풀이 (0) | 2018.12.31 |