los 1번 문제 gremlin문제이다. php안에 있는 코드를 highlight_file이라는 함수를 이용해서 소스코드를 출력해 주고 있다.
preg_match라는 정규표현식 함수를 이용해서 검사하고 있는데 여기서 정규표현식이란, 문자열에서 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 검색 패턴이다.
preg_match | 해당 문자열에서 전달받은 정규 표현식과 일치하는 패턴을 검색 후 존재하면 1, 존재하지 않을경우 0을 반환. |
즉, 여기서는 get으로 받는 id와 pw라는 변수에서 preg_match를 이용하여 "prob" , "_" , "." , "( )" 이 포함된 경우, "no hack"이라는 문장을 띄우면서 exit하게 된다.
그리고 코드를 계속 읽어보면 result라는 변수와 $query라는 변수가 보이는데 result변수가 query에서 받은 id와 pw값을 result라는 변수에 넣어주겠다는 의미이고 이 result라는 변수에서 id가 존재하기만 하면 solve가 되어지게 php코드가 작성이 되어있다.
따라서 나는 여기에서 id 에 admin'-- - 을 넣어주었다. 그러면 id는 admin이 들어가게되고 그 뒤는 주석처리가 되어지는 쿼리가 들어가게 된다.
GREMLIN Clear라는 문장이 뜨면서 문제가 풀렸다.
'Write-up > LOS' 카테고리의 다른 글
los 3번 goblin (0) | 2020.04.29 |
---|---|
los 2번 cobolt 문제 (0) | 2020.04.29 |