Information Security

[Lord Of Sql injection] gremlin 본문

Web Hacking/Lord Of Sql injection 풀이

[Lord Of Sql injection] gremlin

leeeeye321 2017. 12. 13. 13:09

http://los.eagle-jump.org/ 접속 후 [enter to the dungeon]을 클릭하면 회원 가입 후 로그인을 할 수 있다.

 

첫 번째 문제 gremlin을 클릭한다.

 

Sql injection 공격으로 solve("gremlin")이 실행되도록 해야 다음 단계로 넘어간다.

 

if($result['id']) solve("gremlin");

일단 쿼리가 실행되어 결과가 나오면 result에 저장되고, result 배열의 id의 값이 존재하면 solve가 실행될 것이다.

 

$query "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";

URL을 통해 GET 방식으로 외부에서 정의되는 변수는 id와 pw이다.

-> where 절에 의해 id와 pw의 값이 맞아야 결과로 id의 값이 나올 것이다.

★ 그런데 우리는 아이디도 패스워드도 모른다.

 

-id에 아무 값이나 넣고 or를 이용하여 참으로 만들면 db에 저장된 모든 id가 출력된다.

-> 우리는 어떤 아이디든 쿼리의 수행 결과로 출력되도록 해야 하기 때문에 이를 이용하여 문제를 풀면 될 것이다.

-> id는 입력한 값을 string으로(싱글 쿼터) 받기 때문에 싱글 쿼터를 빠져나와 string injection을 시도해야 한다.

 

 

id는 참이 되도록 하고 뒷 부분은 주석 처리를 한다. 

-> result에 id의 값이 존재하게 되고, if 문에서 참으로 동작하여 solve가 실행될 것이다. 

'Web Hacking > Lord Of Sql injection 풀이' 카테고리의 다른 글

[Lord Of Sql injection] darkelf  (0) 2017.12.23
[Lord Of Sql injection] wolfman  (0) 2017.12.23
[Lord Of Sql injection] orc  (0) 2017.12.14
[Lord Of Sql injection] goblin  (0) 2017.12.14
[Lord Of Sql injection] cobolt  (0) 2017.12.14