Lord Of SQL injection 5단계-wolfman
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을 사용하는 게 효과적이다.