power-girl0-0

[webhacking.kr-old] 6번 본문

War game/webhacking.kr

[webhacking.kr-old] 6번

power-girl0-0 2021. 6. 19. 18:44
728x90

주소 : https://webhacking.kr/old.php

 

Webhacking.kr

 

webhacking.kr


 [ 풀이 ] 

guest라는 id와 pw가 출력되어 있으며, 소스코드를 볼 수 있게 링크가 적혀있다.

 

소스코드를 살펴보자.~ㅁ~

 

앞부분 코드를 먼저 살펴보자.

위 코드를 살펴보면, guest와 123qwe를 base64로 20번 인코딩하고 문자열을 치환하여 쿠키값을 저장하였음을 알수 있다. 쿠키를 살펴보니, password와 user라는 쿠키가 있는 것을 확인할 수 있다.

 

그렇다면 아래 코드를 살펴보자.

아래 php코드만 살펴보면, 위에서 인코딩했던 쿠키값을 가져와서 디코딩해주는 소스코드이다.

이를 해줌으로써, 맨 처음 문제 화면에 id와 pw를 출력해주었던 것이다.

 

또한, 가장 중요한 단서로 id가 admin이고 pw를 nimda일 시 문제가 풀리는 것을 알아내었다.

 


 

자자!! 그럼 정리를 해보면, 디코딩은 알아서 해주는 것이 아닌가?!!

즉, 인코딩해서 쿠키값에 넣어두면 알아서 디코딩되어서 정답처리를 시켜준다는 의미이다.

 

오오~~ 이번 문제는 술술 풀리는 군 ㅎ_ㅎ

위 인코딩 코드를 가져가서, python에 맞춰 바꿔준 뒤 실행해주었다.

아래는 해당 코드 및 그에 따른 결과 값이다.

import base64

val_id="admin".encode()
val_pw="nimda".encode()

for i in range(20):
    val_id = base64.b64encode(val_id)
    val_pw = base64.b64encode(val_pw)

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 : {}".format(val_id))
print("pw : {}".format(val_pw))


위에서 나온 결과 값은 각 쿠키값에 넣고, F5를 눌러 새로고침하니 아래와 같이 문제가 클리어 되었다.

순탄한 문제였다 ^_^ 

 

얄루~~ 클리어 >_<

728x90

'War game > webhacking.kr' 카테고리의 다른 글

[webhacking.kr-old] 8번  (0) 2021.06.20
[webhacking.kr-old] 7번  (0) 2021.06.20
[webhacking.kr-old] 5번  (0) 2021.06.19
[ webhacking.kr-old ] 4번  (2) 2021.06.19
[webhacking.kr-old] 3번  (0) 2021.06.18
Comments