Webhacking.kr 6번 문제풀이
문제를 해결하기 위해서 encode, decode함수를 분석해 보겠습니다.
* base64_encode()
* base64_decode()
문제를 해결하기 위해서 $decode_id==admin, $decode_pw==nimda를 base64_encode를 20번 해준 후 특수문자 치환 후 나온 쿠키 값을 user와 pw 쿠키값에 저장해 주면 문제가 해결 될 것입니다.
import base64
val_id = "admin"
val_pw = "nimda"
val_id = val_id.encode('utf-8')
val_pw = val_pw.encode('utf-8')
for i in range(20):
try:
i +=1
val_id = base64.b64encode(val_id)
except:pass
for j in range(20):
try:
j +=1
val_pw = base64.b64encode(val_pw)
except:pass
val_id = val_id.decode()
val_pw = val_pw.decode()
val_id.replace("1", "!")
val_id.replace("2", "@")
val_id.replace("3", "$")
val_id.replace("4", "^")
val_id.replace("5", "&")
val_id.replace("6", "*")
val_id.replace("7", "(")
val_id.replace("8", ")")
val_pw.replace("1", "!")
val_pw.replace("2", "@")
val_pw.replace("3", "$")
val_pw.replace("4", "^")
val_pw.replace("5", "&")
val_pw.replace("6", "*")
val_pw.replace("7", "(")
val_pw.replace("8", ")")
print("id = " + val_id)
print("pw = " + val_pw)
파이썬 코드를 사용하여 admin, nimda의 쿠키값을 Burpsuite를 사용하여 user와 password의 쿠키값을 변조하여 주면 문제를 해결할 수 있습니다.