CTFshow-_Web应用安全与防护-Base64多层嵌套解码
CTFshow-_Web应用安全与防护-Base64多层嵌套解码
题目


思路
打开f12,发现密码被操作了很多次
1 2 3 4 5 6 7 8 9 10 11 12 13
| <script> document.getElementById('loginForm').addEventListener('submit', function(e) { const correctPassword = "SXpVRlF4TTFVelJtdFNSazB3VTJ4U1UwNXFSWGRVVlZrOWNWYzU="; function validatePassword(input) { let encoded = btoa(input); encoded = btoa(encoded + 'xH7jK').slice(3); encoded = btoa(encoded.split('').reverse().join('')); encoded = btoa('aB3' + encoded + 'qW9').substr(2); return btoa(encoded) === correctPassword; } }); </script>
|

参考资料:btoa(),slice(),split(),join(),reverse(),substr()
逐步来分析一下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <script> document.getElementById('loginForm').addEventListener('submit', function(e) { const correctPassword = "SXpVRlF4TTFVelJtdFNSazB3VTJ4U1UwNXFSWGRVVlZrOWNWYzU="; function validatePassword(input) { let encoded = btoa(input); encoded = btoa(encoded + 'xH7jK').slice(3); encoded = btoa(encoded.split('').reverse().join('')); encoded = btoa('aB3' + encoded + 'qW9').substr(2); return btoa(encoded) === correctPassword; } }); </script>
|
可以看出这个是一个密码运算的逆向,从结果反推输入,在赛博大厨操作一下就能得到password=T17316
输入密码发现和上题一样要专门的浏览器,hackbar改一下请求头就可以获得flag
Flag
1
| CTF{base64_brute_force_success}
|