Information Security
[Lord Of Sql injection] gremlin 본문
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 |