본문 바로가기
개인 공부/WEB

[웹해킹] LOS 19 - (Xavis)

by 아메리카노와떡볶이 2021. 6. 19.
728x90
Lord of sql injection - Xavis 풀이

los 19번 Xavis 문제풀이입니다.

admin 계정의 pw를 입력해서 admin 계정의 pw가 맞다면 해결되는 문제입니다.

 

문제 접근

admin계정의 pw를 알아내는 blind sql injection 문제입니다.

필터링을 먼저 살펴보면 like와 regex에 걸려있습니다.

regex는 처음 접해봐서 무엇인지 찾아보니, 다중 like 문을 사용해야 할때 간단한게 줄여주는 함수라고 합니다.

 

우선 문제에 필터링 조건이 많이 없으므로 쉽게 참을 만들 수 있습니다.

Hello admin이 출력되는 모습입니다. 출력 문구를 찾았으므로 brute forcing을 통해 길이를 구해보겠습니다.

 

1. pw 길이구하기

?pw=%27or%20id=%27admin%27%20and%20length(pw)=%27anynumber

간단하게 쿼리문을 참으로 만들 수 있고, anynumber 부분에 숫자를 넣어가면서 길이를 하나씩 넣어서 유추해볼 수 있습니다. 바로 브루트 포싱을 해보겠습니다.

비밀번호의 길이는 12입니다.

 

2. 완전한 pw 구하기

비밀번호 길이 12를 가지고, brute forcing을 진행하였으나 결과값이 아예 출력이 안돼서 이리저리 고민해보다가

결국 힌트를 검색해보았습니다. 그 결과 비밀번호가 일반적인 값이 아니라 hex 값이기때문에 한 자리수당 길이가 1이 아닐수도 있다는.. 것이었습니다.

따라서 hex값의 길이를 다시 계산해보았습니다.

 

그 결과 hex값의 비밀번호의 길이는

24자리입니다.

즉 다시말해서 0~f 에 해당하는 16진법 표기의 문자가 24개로 이루어진 비밀번호라는 뜻입니다.

hex값에 쿼리를 날려서 브루트포싱해줍니다.

결과는 0000 C6B0 0000 0C655 0000AD7 입니다.

 

*검색해보니 마지막에 ad73이 나와야하는데 왜 안나오는지 해결이 안되네요 ㅠ.ㅠ

 

아무튼 헥스값을 한글 형태로 인코딩하면 우 왕 굳 이 됩니다. ! 

 

728x90

'개인 공부 > WEB' 카테고리의 다른 글

[웹해킹] LOS 21 - (Iron Golem)  (0) 2021.07.03
[웹해킹] LOS 20 - (Dragon)  (0) 2021.06.19
[웹해킹] LOS 18 - (Nightmare)  (0) 2021.06.19
[웹해킹] LOS 17 - (Zombie Assassin)  (0) 2021.06.19
[웹해킹] LOS 16 - (Succubus)  (0) 2021.06.19

댓글