Information Security
[Lord Of Sql injection] assassin 본문
Web Hacking/Lord Of Sql injection 풀이
[Lord Of Sql injection] assassin
leeeeye321 2017. 12. 26. 21:49[Lord Of Sql injection] assassin
쿼리의 결과로 id가 admin이어야 한다.
$query = "select id from prob_assassin where pw like '{$_GET[pw]}'";
where 절에서 = 대신 like 절을 사용하여 패스워드를 확인하고 있다.
이를 이용하여 문제를 풀어야 할 것 같다.
https://www.w3schools.com/sql/sql_like.asp
llike 절은 컬럼에서 wildcard 문자를 사용하여 특정 문자열을 조회할 수 있다.
_를 사용하여 패스워드가 8글자인 것을 알아냈다.
if($result['id']) echo "<h2>Hello {$result[id]}</h2>";
if($result['id'] == 'admin') solve("assassin");
id가 admin이면 문제가 바로 풀리므로 guest와 admin의 패스워드를 겹치도록 설정해놓은 것 같다.
쿼리가 참이면 Hello guest가 출력된다.
패스워드가 숫자인지 문자인지 모르겠지만 숫자라고 가정하고 첫 번째 글자를 추측했다.
1% ~ 8%까지 조회한 결과 패스워드는 8로 시작하는 것을 알게 되었다.
그다음 같은 방법으로 두 번째 자리도 알아냈다.
세 번째 자리를 알아내던 중 문제가 풀렸다.
세번째 자리부터 guest와 admin의 패스워드가 겹치지 않는 것 같다.
Hello admin이 출력되면서 문제가 해결되었다.
'Web Hacking > Lord Of Sql injection 풀이' 카테고리의 다른 글
[Lord Of Sql injection] succubus (0) | 2017.12.27 |
---|---|
[Lord Of Sql injection] zombie_assassin (0) | 2017.12.26 |
[Lord Of Sql injection] giant (0) | 2017.12.25 |
[Lord Of Sql injection] bugbear (0) | 2017.12.25 |
[Lord Of Sql injection] darkknight (0) | 2017.12.25 |