이번 포스팅은 15단계, 어쌔신 풀이이다!
드디어 반절정도 온 느낌이다.
사실 los를 풀면서 많이 성장했다고 생각한다.
배운 것도 많고, 얻은 것도 많다. 하루 한 문제씩 풀어가는 재미도 쏠쏠하고.
이걸 토대로 더 많은 것을 할 수 있을 것 같은 느낌이다.
빨리 코드부터 확인해보자!
이번에도 코드가 짧다.
신기하게 이번에는 =이 아닌 like로 쿼리문이 구성되어 있다.
단순하게 생각해보면 id를 admin으로 넣어주면 해결 될 것 같은데, 싱글쿼터가 막혀있으니
아무래도 id가 admin 이라는 값을 가진 얘의 pw값을 직접 알아내야할 것 같다.
저번 문제에서는 like 를 = 으로 해석하는 정도까지만 알고있어도 문제가 풀렸지만,
이번 문제에서는 like의 와일드카드를 알고있어야 풀린다.
여기서, like의 와일드카드에 대해 조금 더 자세하게 알아보자!
like는 지정된 패턴을 검색하는데 쓰이는 연산자로,
%와 _ 를 사용하여 검색한다.
%를 사용하여 검색하려면,
값: 1234
like 1% -> 첫글자가 1인 어떠한 값 검색!
like %3% -> 중간 글자가 3인 어떠한 값 검색!
like %4 -> 끝 글자가 4인 어떠한 값 검색!
_를 사용하여 검색하려면,
값: 1234
like 1___ -> 첫글자가 1이고 네글자인 어떠한 값 검색!
like __3_ -> 세번째 글자가 3이고 네글자인 어떠한 값 검색!
like ___4 -> 끝 글자가 4이고 네글자인 어떠한 값 검색!
이렇게 검색 할 수 있다.
간단하게 _는 글자수도 정확해야하고 %는 얼렁뚱땅(?) 대충 값만 맞으면 다 검색~ 하는 느낌이다.
_를 이용해서 글자수를 알 수 있다!
자세한 풀이를 원한다면 더보기 클릭!
?pw=________
언더바 8개만 Hello guest가 뜬다.
12개 까지 시도해보다가 guest라는 얘와 admin이 같은 길이를 가지고 있고,
데이터베이스 내에 guest가 admin보다 위에 있구나! 하고 깨달았다.
그렇다면 첫번째 글자를 알아보자.
?pw=8%
이것도 0~9까지, a~z까지 다 시도해봤는데 guest가 뜬다.
guest도 admin도 모두 첫 자리가 8인 값을 가지고 있다.
두번째 자리를 구해보자.
?pw=83%
두번째 자리마저 똑같다.
세번째 자리는?
?pw=832
드디어 guest와 갈라섰다!
심심해서 guest는 세번째 자리가 뭔지 찾아봤다.
너는 d 였구나!
아무튼 이렇게 어쌔신 클리어!
'Archive > Hacking' 카테고리의 다른 글
Lord of SQL Injection 17단계, succubus풀이 (0) | 2019.11.08 |
---|---|
Lord of SQL Injection 16단계, zombie_assassin풀이 (0) | 2019.11.08 |
Lord of SQL Injection 14단계, giant풀이 (0) | 2019.11.07 |
Lord of SQL Injection 13단계, bugbear풀이 (0) | 2019.11.07 |
Lord of SQL Injection 12단계, darkknight풀이 (0) | 2019.11.07 |