본문 바로가기
war game/웹 워게임(los)

load of sqlinjection goblin

by 강깅꽁 2016. 9. 6.
반응형

싱글쿼터 더블쿼터 등등이 막혀있다. 따라서 문자열을 주입하는 것은 힘들어보인다.


if(preg_match('/prob|_|\.|\(\)/i'$_GET[no])) exit("No Hack ~_~"); 


  if(
preg_match('/\'|\"|\`/i'$_GET[no])) exit("No Quotes ~_~"); 
  
$query "select id from prob_goblin where id='guest' and no={$_GET[no]}"



if($result['id'] == 'admin'solve("goblin");


중요한것은 get으로 받는 곳이 no이고 id가 guest로 잡혀 있지만 solve 조건이 id가 admin이어야 한다는 것.

따라서 no=123 || id=0x61646d696e 로 주게 되면

앞에 구문이 거짓이 되고 16진수로 바꾼 admin이 id에 들어가게 된다.

주의 id='guest' and no'' 이부분이 참이 되면 id에 guest가 들어가게 되어 해결하지 못함