[LOS] xavis 풀이 (st.19)
Wargame/LOS

[LOS] xavis 풀이 (st.19)

풀이

 

이번 Blind SQLi에서는 regex, like를 Filtering한다.

부등호를 이용해 pw의 길이를 먼저 찾아내자.

 

Query:  ?pw=1' or id='admin' and length(pw)=12%23

 

pw는 12자이다. 이제 길이를 알았으니, 파이썬을 이용해 pw값을 알아내자.

라고.. 생각했는데 뭔가 이상하다. 값이 하나같이 전부 0으로 나온다.

혹시나 하고, substr(pw,1,1)의 길이를 확인해봤다.

 

Query:  ?pw=1' or id="admin" and length(substr(pw,1,1))=4%23  -> True

 

??? UTF-8이라면 1이어야 정상인데 4가 참이란다..

다른 값도 확인해보니 2, 3도 4byte이고, 나머지는 값이 없었다.

4byte * 3 = 12이므로, length(pw)가 12가 나온 것이었다.

 

이제는 수작업을 통해, 1, 2, 3번째를 정수로 바꾼 값을 대충 추론해보자.

다음 Query문을 이용해, 어디 사이에 위치해 있는지 추론할 수 있다.

 

Query: ?pw=1' or id="admin" and ord(substr(pw,1,1))>50000%23

 

이렇게 계속 추론해나가자.

대충 값이 줄어들면 이제는 파이썬을 이용해 pw값을 알아내자.

 

 

이제 우리가 알아볼 수 있는 문자로 변환하자.

https://unicode-table.com/en/ 

 

Unicode Character Table

Unicode web service for character search. Find, copy and paste your favorite characters: 😎 Emoji, ❤ Hearts, 💲 Currencies, → Arrows, ★ Stars and many others 🚩

unicode-table.com

'Wargame > LOS' 카테고리의 다른 글

[LOS] succubus 풀이 (st.16)  (0) 2020.05.29
[LOS] bugbear 풀이 (st.13)  (0) 2020.05.29
[LOS] orc 풀이 (st.4)  (0) 2020.05.29
[LOS] cobolt 풀이 (st.2)  (0) 2020.05.28
[LOS] goblin 풀이 (st.3)  (0) 2020.05.28