반응형
8.Troll 풀이.
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
if(@ereg("admin",$_GET[id])) exit("HeHe");
일단 ereg() 함수는 패턴과 일치하는 문자열이 발견될 경우에는 TRUE,
발견되지 않을 경우는 FALSE. 중요한 건 대소문자를 구분을한다.
ereg(string pattern, string string, array[regs]);
if($result['id'] == 'admin') solve("troll");
id = 'admin'를 만족하면 문제를 풀린다.
ereg 때문에 admin은 쓰지는 못하지만 대소문자 구별은 하니까 Admin을 사용.
(mysql에서는 기본적으로 대소문자 구별).
Cf) ereg는 정규 표현 패턴과 일치하면 참인 함수.
즉 'admin(소문자)랑 id가 일치하면 안된다.
문제는 ereg에 있는 admin은 소문자라서 대문자를 삽입하는 것은 가능.
그래서 admin 대신해서 ADMIN으로 대신하면 $query에서는 ADMIN을 입력했지만,
php는 admin으로 보낼 것이고, $result['id']의 값은 admin으로 온다.
즉 id=ADMIN으로 입력.
Cf) 좀만 생각하면 된다.
반응형
'# Related site issues > LOS' 카테고리의 다른 글
10.Skeleton. (0) | 2018.05.07 |
---|---|
9.Vampire. (0) | 2018.05.07 |
7.Orge. (0) | 2018.05.07 |
6.Darkelf. (0) | 2018.05.07 |
5.Wolfman. (0) | 2018.05.07 |