포렌식/SuNiNaTaS

SuNiNaTaS # 22

묘나 2021. 3. 19. 13:45
728x90
반응형
SMALL

문제를 열어보니 이런 화면이 나온다.

 

Blind SQL Injection이라고 나와있다.

LOS 문제들에서 계속 다뤄왔었는데,,,

써니나타스에서는 어떻게 해결해야할지 생각해보자!

 

 

힌트는 이렇게 나와있다.

 

그래서 확인해보니,

이렇게 되어있다.

id는 'admin'으로 확정이 되어있고, pw를 찾으면 되나보다.

 

그리고 이 문제에서는 친절하게도 필터링되는 문자들을 모두 나열해서 보여주고 있다.

select / Union / or / white space / by / having
from / char / ascii / left / right / delay / 0x ..........

 

 

pw에 1을 넣어보니,

이런식으로 fasle 가 출력된다.

 

그리고 저기 나와있는 필터링되는 문자를 pw에 입력해주자,

이렇게 나온다.

 

 

id에 'admin'을 넣어주고 pw부분은 -- 을 통해 주석처리 해주었다.

#을 통해서도 주석처리가 가능하지만, 이 문제에서는 불가능했다.

(아마 데이터베이스 종류의 차이인것 같다....

LOS는 DB, SuNiNaTaS는 MySQL 사용)

 

pw 부분을 주석처리 잘해주면 밑의 사진처럼 나오게 된다.

 

이제 본격적으로 시작해보자.

 

 

먼저 pw의 길이를 구해야한다.

지금까지 내가 풀었던 LOS의 Blind SQL Injection 문제들과 똑같은 과정, 방법들을 사용할 예정이다.

 

 

len() 함수를 이용해주자.

 

id에는 admin' and len(pw)<10--

pw에는 아무거나(1)를 적어줬다.

 

 

그러자 이렇게 나온다.

 

이런식으로 확인해보니 pw의 길이는 10이다.

이제 이 10글자를 하나하나 확인해주면 된다.

필터링이 꽤 많이 되고 있으므로, 이것들을 우회해줘야 하겠다.

 

파이썬으로 코드를 짜줬다.

 

이렇게 하니 pw가 나왔고

이걸 입력해주니 이렇게 나왔다.

근데 플래그는 나오지 않았다...

auth key에 그냥 pw 값을 입력해주면 되는 거였다.

 

성공

728x90
LIST