이번에 처지할 몬스터는 orc!
일단 코드를 봐보면
전 문제와 다른 게 싱글쿼터('), 더블쿼터(") 필터링이 사라지고 admin 아이디의 pw를 알아내는 문제 같다.
일단 pw 부분을 한번 ' or 1=1 #을 이용해 한번 참으로 만들어 보았다.
그 결과 Hello admin 알림이 나왔다. 이 상황으로 보아 옛날에 DVWA에서 풀었던 Blind SQL Injection 문제가 생각났다.
Blind SQL Injection 이란 쿼리의 결과를 참, 거짓으로만 출력되는 페이지에서 시행하는 공격으로 참, 거짓만 출력되므로 이를 이용해 데이터베이스 내용을 추측해야 된다.
방금 확인했던 것처럼 참일 경우 Hello admin이 출력된다.
그러면 pw를 알아내기 위해서 일단 pw의 길이부터 알아내보자.
1부터 차근차근 대입한 결과 8에서 Hello admin이 출력되었다.
길이를 알아냈으니 이제 pw의 자세한 값을 알아내보자.
여기서 사용할 함수는 substr() 함수인데 문자열을 잘라서 출력해 주는 함수이다.
간단하게 예를 들어 substr('apple',1,2)라고 하면 apple의 1번째 자리부터 2개 출력. 즉, ap가 출력된다.
이걸 이용해서 pw의 첫자리부터 마지막 자리까지 알아내보자.
이 방법을 계속 반복하여
095a9852를 pw에 입력한 결과
굿굿!
다음 몬스터 잡으러 가자~!
'Web > Lord of SQL Injection' 카테고리의 다른 글
Lord of SQL Injection 6단계 (darkelf) (0) | 2023.03.09 |
---|---|
Lord of SQL Injection 5단계 (wolfman) (0) | 2023.03.08 |
Lord of SQL Injection 3단계 (goblin) (0) | 2023.03.08 |
Lord of SQL Injection 2단계 (cobolt) (0) | 2023.03.07 |
Lord of SQL Injection 1단계 (gremlin) (0) | 2023.03.07 |