LOS : https://los.rubiya.kr/
✔️ 문제
문제는 다음과 같다.
이번에는 admin이 막혀있는 것을 볼 수 있다.
✔️ 풀이
풀이를 위한 코드는 다음과 같다.
if($result['id'] == 'admin') solve("troll");
id 값이 admin 이여야하는데, admin이 막혀있다..
우선 id=admin 이라는 구문을 삽입하게 되면,
약올리는 것을 확인할 수 있다.
그런데 이런 생각이 들었다. id값이 admin이여야 하는데,
php는 대소문자를 구분하지 않는다고 알고 있다.
그렇다면 preg_match는 정확하게 admin 만을 필터링하기 때문에
Admin, adMiN 이런식으로 작성해서 우회하면 되지 않을까라는 생각이 들었다.
예상대로 쉽게 풀 수 있었다..
이에 대한 정보는 여기에서 확인할 수 있다.
다음과 같이 대소문자에 대한 대체 키워드라던지,
이전 문제에서 본 주석처리 등을 활용할 수 있다.
https://www.php.net/manual/en/function.strcasecmp.php
PHP: strcasecmp - Manual
A simple multibyte-safe case-insensitive string comparison: Caveat: watch out for edge cases like "ß".
www.php.net
추가적으로 php에서는 대소문자를 구분하기 위해서
strcasecmp 라는 함수를 사용한다고 한다.
화이팅 💪
'보안 > LOS' 카테고리의 다른 글
[LOS] skeleton (0) | 2022.12.21 |
---|---|
[LOS] vampire (0) | 2022.12.21 |
[LOS] orge (0) | 2022.12.20 |
[LOS] darkelf (0) | 2022.12.20 |
[LOS] wolfman (0) | 2022.12.20 |