이번에 처치할 몬스터는 assassin!
이번 코드를 보면 보기엔 너무 간단해 보였다.
딱 보자마자 id를 admin으로 바꿔주면 되는 거 아닌가 했는데 싱글쿼터(')가 필터링되어 있어서 어떻게 해야 되나 한참 고민했다.
지난 문제들처럼 no 인수값을 받는 것도 아니고...
id를 바꿀 수는 없는 거 같아 admin에 해당하는 pw값을 직접 찾아봐야 될 것 같다.
그래서 생각해 본 게 문제에서 괜히 =을 안 쓰고 like를 쓴 이유가 있지 않을까 해서 like에 대해 검색을 해봤다.
따란~
와일드카드 문자가 있었다 와일드카드는 옛날에 리눅스 터미널 쓸 때 경험해 봤다.
간단하게 설명하면
예를 들어 "s"로 시작하는 모든 이름을 검색하려면 "s%"를 입력하면 되고
이름의 길이와 해당 문자들을 알면 "s_n"와 같이 "_"을 사용하면 된다.
이를 이용하여 찾아본 결과
9일 때는 guest가 출력되는 거 보니 guest의 pw는 9로 시작되는 것 같은데 아무리 다른 문자를 입력해도 admin이 출력되지는 않았다...
처음에는 방법이 틀린 줄 알았는데
모든 pw값을 출력해 봤더니 guest가 출력된다는 것은 그냥 guset가 첫 번째 레코드에 있어서 먼저 출력되는 것 같았다.
고로 유추해 볼 수 있는 사실이 guest와 admin은 둘 다 pw가 9로 시작된다.
이 사실을 토대로 대입한 결과
문제를 풀 수 있었다.
guset의 pw도 90으로 시작해 두 번째 자리까지는 guest로 출력되어 시간이 오래 걸렸다.
간단할 줄 알고 손으로 했는데 다음부터는 파이썬코드 짜서 하는 게 건강에 좋을 듯싶다.
다음 몬스터 잡으러 가자~!
'Web > Lord of SQL Injection' 카테고리의 다른 글
Lord of SQL Injection 17단계 (zombie assassin) (0) | 2023.03.28 |
---|---|
Lord of SQL Injection 16단계 (succubus) (0) | 2023.03.28 |
Lord of SQL Injection 14단계 (giant) (0) | 2023.03.17 |
Lord of SQL Injection 13단계 (bugbear) (0) | 2023.03.17 |
Lord of SQL Injection 12단계 (darkknight) (0) | 2023.03.16 |