보안공부/워게임

Lord of SQL injection 8번 문제(troll)

SJK1104 2020. 2. 17. 22:18

8번 문제

이번 문제는 소스가 되게 간결하다 전문제들이랑 다른 점은 @ereg가 생겼다는 것이다. ereg는 첫번째 문자열 값이 두번째 문자열에 값이 있나 체크하는 함수이다. 즉 get['id']에 admin이면 필터링되는 것인대 ereg의 우회법은 굉장히 간단하다. 일단 ereg는 대소문자를 구별하여 필터링한다. 다른 함수로 eregi함수가 있는대 이것은 대소문자 구별 안하고 필터링을 한다. 즉 ereg는 대소문자를 구별하지 않기 때문에 ADMIN값을 넣으면 필터링된다. 

 

문제 해결

이번 문제도 ereg함수가 어떤 함수인지 알면 문제해결하기 쉬운 문제였다. 추가 지식으로 ereg함수와 eregi는 php버전에 따라서 맨앞에 %00(null byte)를 넣음으로써 우회할수도 있다고 한다.