SQL injection/lord of SQL

Lord Of SQL injection 5단계-wolfman

ys.k 2022. 1. 4. 13:26

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.

5단계 소스코드이다.

여전히 pw는 필터링 중이고 이번엔 공백을 허용하지 않는 듯한 문자열이 보인다.

이번엔 db의 table_name이 prob_wolfman으로 노출된 듯하다. 

또한 id 값이 admin 이어야 해결이 되는 것 같다.

일단 guest로 인증 우회에 성공했다.

이제 admin 아이디로 로그인 후 인증 우회를 하면 된다. 

하지만 공백 문자열이 필터링되어있는데 이를 우회할 수 있는 방법을 찾아야 한다.

여러 번 시도를 한 후 ( ) -> 공백 (+) ->덧셈기호 등의 문자열이 필터링되어있는 걸 찾을 수 있었다.

이를 우회하기 위해 여러 가지 방법이 있다.

1. Tab // %09   -> 커서를 한 tab만큼 이동시키는 개행 문자

2. Line Feed // %0a  -> 커서를 다음 줄로 이동시키는 개행 문자

3. Carrage Return // %0d  -> 커서를 줄의 맨 앞으로 이동시키는 개행 문자

4. 주석 // /**/ 

5. 괄호 // ()  

6. 더하기  // + 

 

하지만 6번 항목은 이미 필터링되어있는 걸 확인하였다.

근데 여러 번 시도를 했지만 문제는 풀리지 않았다....

문제는 주석처리에 있었다.

주석을 그냥 #으로 입력했을 때와

%23으로 입력했을 때의 결과가 달랐던 거다...

왜 이런 문제가 발생했는지 더 공부해봐야겠다.

정말 너무 허무하다..

    ㄴ나는 --+- 의 주석처리 방법을 많이 사용하는데 이는 화이트 스페이스 필터링에서 걸려 제대로 주석처리가 되지          않는다. 그래서 %23을 사용하는 게 효과적이다.