ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • |Lord of SQL_injection| #19 Xavis
    Wargame Site/SQL injection 2019. 2. 20. 17:52


    요.녀.석. 만만치 않은 녀석이다 ...






     19단계 문제 xavis 이다. 필터링된 것들도 별로없고, 처음에는 간단히 뭐야.. 쉽잖아? 라고... 생각했다. 왜냐하면 pw 를 ' or id='admin' and [확인할 조건들] 로 주면 끝나는 문제라고 생각했기 때문이다. 


    기존의 코드와 동일한 방법으로 접근해보았다.







    하지만, 그 뒤로 출력된 문자는 없었다.. 이럴 경우는 어떻게 해야할까??


    우선은 URL 창에 다음과 같이 입력해보았다.






    pw 의 첫번째 글자의 ord 값이 5000 을 넘는다는 것이었다.


    그래서 이런 저런 방법을 동원해보다가 hex로 바꾸는 방법을 생각해냈고, 실행결과 또한 빨리나왔다.


    Hex 가 될 수 있는 '0123456789abcdefghijklmnopqrstuvwxyz' 를 문자열로 두고 비교하는 방식을 사용해보았다.









    다음과 같은 결과가 나왔다.





    0000c6b00000c6550000ad73 우선 이루어져 있는 단위가 중요하다!!


    pw 의 1 번째 자리를 5000과 비교했을 때 5000 보다 크다고 했으니 한 단어의 바이트 단위는 2byte 를 초과한다는 것을 Catch 할 수 있다.


    우선 4 Byte 로 그 단위를 잡았다.


    4 바이트로 잡으니 형태가 그럴싸하게 나왔다.


    그 뒤 각각을 decimal 단위로 환산했다!!









    역시나!!










    1 부터 8 까지의 값이 같은 걸로 보아 4 Byte 라는 강한 확신이 들었다.








    각각을 변환해보니 다음과 같이 "우왕굳" 이 나왔다.












    짜잔 !!








    정말... 답답했던 문제였다.


    문자 표현 방식 차이 하나 때문에 정말 풀기 어려웠던 거 같았다 


     Xavis 도 PASS 






    댓글

Designed by Tistory.