6번 문제 index.phps를 확인해보면 Cookie user에 아무값도 없다면 id와 password에 각각 'guest' , '123qwe'를 넣고 base64암호화를 20번한 뒤에 그 문자열에 들어간 1~8까지의 숫자를 기호로 치환한다.
우리는 decode_id와 decode_pw를 admin으로 맞춰 주었을때 6번 문제를 풀 수 있다. 그러기 위해선
문자열 'admin' 를 base64 암호화를 20번하고 1~8을 기호로 치환해서 cookie에 담아서 request를 보내면 solve.
base64.encodestring()를 사용하는 바람에 엄청난 삽질을 했다.
base64 모듈의 encodestring() 의 API문서를 확인해보니
Encode the string s, which can contain arbitrary binary data, and return a string containing one or more lines of base64-encoded data.
encodestring() returns a string containing one or more lines of base64-encoded data always including an extra trailing newline ('\n').
문자열이 길어지게 되면 \n 개행문자를 포함하는것이다.
그래서 base64.encodestring()대신에 base64.b64encode()를 사용하여 간단한 스크립트를 짰다.
proxy tool인 paros를 이용하여 request 쿠키값을 변경한뒤 보내줘도 되지만 좀 더 깔끔하게 스크립트로 해결한다.
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 47번 (0) | 2018.04.11 |
---|---|
Webhacking.kr 25번 (0) | 2018.04.11 |
Webhacking.kr 18번 (0) | 2018.04.11 |
Webhacking.kr 39번 (0) | 2018.04.10 |
Webhacking.kr 01번 (0) | 2018.04.10 |