War Game/LOS(lord of sql injection)

[LOS] Orc 문제 풀이

zyari 2019. 7. 30. 02:01
반응형

문제


풀이

우선 밑에서 3번째 줄 if문을 보면 결국 패스워드가 모두 일치해야 이 문제가 풀림을 알 수 있다. 이런 문제 유형을 blind sql injection이라고 한다. 

여기서 blind sql injection이란, 직접적으로 우리가 원하는 값을 출력할 수 없는 형태에서 여러가지 함수를 이용하여 특정 값을 추적해나가는 방식을 말한다.

이 문제를 풀기 위해서는 패스워드를 정확하게 입력해야만 한다. 

그래서 우선 패스워드의 길이를 알아내가 위해 문자열의 길이를 나타내는 length함수를 이용하여 패스워드의 길이를 알아낸다.

쿼리문이 참이 아닐때는 아무것도 나타나지 않다가 참일 때 Hello admin 글자가 나타나는 성질을 이용해 length에 0부터 대입하여 pw의 길이를 알아낼 수 있다.

 

알아낸 이후에는 substr 함수를 이용하여 패스워드의 자리를 모두 대입하여 각각 알아내본다.

첫번째 자리

두번째 자리

세번째 자리

네번째 자리

다섯번째 자리

여섯번째 자리

일곱번째 자리

여덟번째 자리

이를 모두 조합해보면 결국 비밀번호는 095a9852 임을 알 수 있고, 이를 대입해보면 문제가 풀리게 된다.

반응형

'War Game > LOS(lord of sql injection)' 카테고리의 다른 글

[LOS] Darkelf 문제 풀이  (0) 2019.08.02
[LOS] Wolfman 문제 풀이  (0) 2019.08.02
[LOS] Goblin 문제풀이  (0) 2019.07.29
[LOS] Cobolt 문제풀이  (0) 2019.07.29
[LOS] Gremlin문제풀이  (0) 2019.07.29