los - skeleton
·
Lord_of_SQL-Injections_I
id='guest' 값이 고정으로 들어가고, 입력한 pw 다음에 'and 1=0'이 실행된다. 마지막 'and 1=0' 조건이 거짓이 되고 쿼리 내 존재하는 모든 조건이 'and' 연산자로 묶여 있기 때문에 무조건 거짓이 된다. 따라서 뒤에 있는 조건을 실행되지 않게 하면서 id='admin'을 뽑으면 된다. http://localhost/skeleton_a857a5ab24431d6fb4a00577dac0f39c.php?pw=%27%20or%20id=%27admin%27%23
los - vampire
·
Lord_of_SQL-Injections_I
이전 'troll'과 유사한 문제이다. 'admin'을 str_replace 함수를 통해 필터링을 하고 있지만 역시 대소문자 구분에 따른 필터링은 하지 않는다. http://localhost/vampire_e3f1ef853da067db37f342f3a1881156.php?id=AdMin
los - troll
·
Lord_of_SQL-Injections_I
실행되는 쿼리 결과값이 id='admin' 일 때 클리어 되는 문제지만, 필터링 부분을 보면 'admin' 문자열 자체를 검사하고 있다. 'admin'을 입력해야 하는데, 'admin'을 필터링하고 있으니 말도 안된다고 생각할 수 있지만, 필터링 하는 함수를 보면 'admin' 만큼은 'ereg' 함수를 사용하고 있다. 해당 함수의 가장 큰 문제점은 대소문자 필터링이 불가능하다는 것이다. 즉, 'admin'은 필터링이 되어도 'AdMiN', 'admiN' 등은 필터링이 되지 않는다. http://localhost/troll_05b5eb65d94daf81c42dd44136cb0063.php?id=AdMiN