본문 바로가기
computer/web hacking

[LOS] prob_golem

by Paranyo 2018. 4. 30.

 

LOS 11번 문제인 golem이다.


이것도 Blind SQL Injection 문제인듯 싶다.

여기서는


or, and, substr( 문자열과 = 기호를 필터링한다.


이전에도 사용했듯,


or, and는 ||과 &&으로 사용해 볼 것이다.

substr(을 필터링하니 그와 비슷한 특성(?)처럼 사용할 수 있는 mid() 함수를 사용해볼 것이다.

그리고는 앞의 블라인으 SQL INJECTION 문제와 동일하게 풀면 된다!


일단 패스워드의 길이를 알아내야 한다.

length(pw) like 8을 통해 패스워드의 길이는 8인 것을 알 수 있다.


좀 더 자세히 살펴보자면

query : select id from prob_golem where id='guest' and pw='' || id like 'admin' && length(pw) like 8#' 


빨간색 ||과 &&는 or, and 문자열을 필터링하기 때문에 사용해주었다.

파란색 like는 =기호를 필터링하기 때문에 사용해주었다.



이제 패스워드를 알아내야 한다!!


이번엔 substr을 사용할 수 없으므로 다른 방식으로 비교해 보아야 한다.

그래서 mid 함수를 사용하기로 했다.

substr과 비슷하게 mid(pw, n, i)  라면

pw의 n번째에서 i만큼의 데이터를 가져온다라는 것이다.


둘이 각기 다른 함수건 아니건 우리의 목적에 맞게 사용할 수 있는 함수이다.


그래서 pw의 첫번째 문자열의 아스키 코드 값이 56인지를 물었다.


서버는 맞다고 한다!


이것도 스크립트를 작성해 모든 패스워드를 구했다.



그래서 패스워드는 '88e3137f' 이다!!



음, 인증이 잘 되는군

'computer > web hacking' 카테고리의 다른 글

[LOS] prob_bugbear  (0) 2018.04.30
[LOS] prob_darkknight  (0) 2018.04.30
[LOS] prob_skeleton  (0) 2018.04.28
[LOS] prob_vampire  (0) 2018.04.28
[LOS] prob_troll  (0) 2018.04.28