Natas Level 10 → Level 11

910·2021년 9월 10일
0

OverTheWrie: Natas

목록 보기
12/15
post-thumbnail

natas11에 접속합니다.

Username : natas11
Password : U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK


쿠키가 XOR 방식으로 암호화 되어있다고 써있습니다.

소스코드를 확인합니다.

data의 default값은 showpassword는 no이고, bgcolor 값은 #ffffff입니다.
data 값을 howpassword"는 yes, bgcolor 값은 #ffffff로 만들어야 합니다.

loadData 함수를 보면 COOKIE의 data 값을 아래와 같은 순으로 디코딩하여 $tempdata를 만들어냅니다.

base64_decode() -> xor_encrypt() -> json_decode()

그렇기 때문에 data 값을 howpassword는 yes, bgcolor 값은 #ffffff 을 아래처럼 역순으로 인코딩하여 쿠키 값으로 설정하면 이 문제를 풀 수 있습니다.

json_encode() -> xor_encrypt() -> base64_encode()


xor_encrypt()를 하기 위해서는 XOR에 사용되는 key를 알아내야합니다.

A^B = C 이면, A^C는 XOR의 성질에 의해 A^C=B가 됩니다. 이 원리를 이용해서 key를 알아낼 수 있습니다.

Cookie로 세팅되어있는 data값을 가지고,
코드를 작성해 key값을 얻어보겠습니다.

얻은 qw8J라는 값으로 다시 Cookie값을 만들어 내는 코드를 작성합니다.

Cookie값을 얻었습니다. burp suite를 이용해서 얻은 쿠키 값으로 요청을 변조합니다.


패스워드를 얻었습니다.

0개의 댓글