다음 문자열이 있습니다."VGxkTk1GcHFTWGRhUjBacFkycENhMWx0VFRWT1IxazBUMVJXYUZwSFNUQmlWR1JxVGtSVmVVOVZjR3RhYWtFOQ%3D%3D"
그리고 for 루프:
for(var i=0,k=3,l=643; (i<=20 && l>200) || k>8;i++,k--){
console.count();
}
md5를 얻는 방법?
function display() { var cookie = "VGxkTk1GcHFTWGRh UjBacFkycENhMWx0 VFRWT1IxazBUMVJX YUZwSFNUQmlWR1Jx VGtSVmVVOVZjR3Rh YWtFOQ%3D%3D"; for(var i=0,k=3,l=643; (i<=20 && l>200) || k> 8;i++,k--){ console.count() } }
document.write("Here is your cookie: "+cookie+" It's md5, isn't!");
// To solve this you must know about md5 hash
// Go to https://en.wikipedia.org/wiki/MD5 and read about it ;)
}
답변1
문자열은 base64로 인코딩된 다음 URL로 인코딩될 수 있는 것처럼 보입니다. 끝에 있는 "%3D%3D"는 두 개의 등호가 됩니다.
그만한 가치가 있기 때문에 이를 Base64 디코더에 전달하면 유효한 Base64 인코딩처럼 보이는 또 다른 문자열이 생성됩니다. Base64 디코더를 총 3번 거치면 완전히 다른 모습을 얻게 됩니다...
echo "VGxkTk1GcHFTWGRhUjBacFkycENhMWx0VFRWT1IxazBUMVJXYUZwSFNUQmlWR1JxVGtSVmVVOVZjR3RhYWtFOQ==" \
| base64 -d | base64 -d | base64 -d |od -t x1z
결과 :
0000000 35 63 34 66 32 30 64 61 62 72 30 64 62 63 39 34 >5c4f20dabr0dbc94<
0000020 66 38 39 35 61 64 62 34 6d 37 63 34 35 32 39 4a >f895adb4m7c4529J<
0000040 64 66 30 >df0<
갑자기 우리는 모든 소문자와 숫자를 얻었습니다. Base64 디코딩을 추가로 시도하면 일부 인쇄할 수 없는 문자가 발생하고 Base64 디코더에서 "잘못된 입력"이 발생합니다. 그래서 그것은 아마도 뭔가를 의미할 수도 있고 아닐 수도 있습니다.
표준 MD5 체크섬보다 3개의 문자가 더 있으며... 세 문자 모두 유효한 md5sum 문자 목록 외부에 있습니다("r", "m" 및 "J"). 이것을 제거하면 16진수를 얻게 됩니다.할 수 있다이론적으로는 MD5 체크섬입니다.무엇.