Lord Of SQL injection [3.Goblin ]

2017. 9. 8. 18:43WebHacking/Lord of SQL injection

 


preg_match함수를 사용하여 ' , " , ` 등등 문자열들을 사용할 수 없도록 막아놓았다

URL: https://los.eagle-jump.org/goblin_5559aacf2617d21ebb6efe907b7dded8.php?no=1 or id=admin

=> id 는 문자열변수이고 입력한 admin은 ' 가 없어서 문자열로 인식되지 않고 열이름이나 쿼리문으로 인식됩니다

=> 따라서 해당 쿼리문은 오류가 발생되고 실행되지 않습니다

=> 어떻게하면 ' 를 쓰지않고 문자열을 비교할 수 있을지 생각해봅시다


문자열을 숫자로 변환하여 비교하도록 합니다

ord()함수 : 문자열을 아스키코드값(10진수)으로 변환한다

URL: https://los.eagle-jump.org/goblin_5559aacf2617d21ebb6efe907b7dded8.php?no=1 or ord(id) = 97

ord()함수는 하나의 문자만 아스키코드로 변환합니다. 따라서 ord(id)의 값은 다음과 같습니다

ord( admin ) = ord(a) = 97

=> SELECT id FROM prob_goblin WHERE ( id='guest' and no=9999 ) or ord(id) = 97