存档

文章标签 ‘safe’

com1不能删除
com1是不能直接创建的,攻击者可以利用\\.\漏洞来创建文件。
在资源管理器中不能直接删除,删除的时候用unc路径即可。
如果是隐藏只读文件,del是不能删除的
attrib \\.\E:\***\com1.asp -s -r -h
del \\.\E:\***\com1.asp
在Windows XP新建文件、文件夹或快捷方式时,系统的保留特殊设备名:CON,PRN,LPT,COM1,COM2,COM3,COM4,NUL、AUX,……不允许直接使用,但以特殊方法使用它们作为文件名或文件夹名后又能产生新的特别功能。如用下面命令建立新文档,不管文件类型扩展名是什么,文档中有无内容都不能正常打开,除非使用特殊方式打开浏览文档和对文档进行操作:
copy con \\.\d:\设备名.txt (文件扩展名可以为.RTF,.XLS,DOC,.WAV,.HTML,.MP3,.RM……)
MD \\.\D:\CON 或其它设备名,可以建立起能打开但不能删除的文件夹。
del \\.\D:\设备名.txt
RD \\.\D:\CON 或其它设备名
还有一个漏洞,是.\文件夹漏洞,很早以前我在博客中提到过,经常被病毒利用。下面就攻击者的使用性来说这两个漏洞的区别。

<%
set fso=server.createobject("Scripting.FileSystemObject")

‘几个特殊文件的建立和删除方法
‘asp可以创建,可以删除
‘cmd可以创建,可以删除
‘直接 创建 不可创建,不可删除,可浏览目录,不可查看文件
con = "\\.\" & Server.Mappath("con")
‘fso.createfolder con
fso.deletefolder con

‘ .\ 漏洞
‘asp可以创建,不可以删除
‘cmd可以创建,可以删除
‘直接 创建 不可创建,不可删除,不可浏览目录,不可查看文件
con = "\\.\" & Server.Mappath("abv") & [...]

六 28th, 2010 | Filed under ASP, Share(分享)

在网上下载的CMS虽然是开源,作者也称安全,但是还是有些让人不能放心。今天闲来没事,研究研究给我的程序加一道锁。要做就做万用锁,而且什么CMS都可以使用。用Session来实现,在后台公共引用页面加入判断,如果Session(“safe”)为空,跳转到admin.asp,代码如下:

< %if session("safe")="" then response.redirect "admin.asp"%>

然后写一个admin.asp,将HTTP-REFERER保存到Session,如果登陆成功释放Session,然后跳转到HTTP-REFERER记录的页面,这样即使知道我们的后台账号,密码,也不能进入我们的后台。

<!–#include file="inc/md5.asp"–>
< %
‘定制服务请与我联系
‘Design By +飞猫(QQ:77068320;Mail:mqycn@126.com)
if request.querystring="Login_"&date()&"-"&replace(time(),":","-") then
%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>安全模式登陆</title><style type="text/css">*{margin:0px;}body{margin:0px;background:#666;text-align:center}h3{background:#BBB}div{border:#CCC solid 10px;margin-left:auto;margin-right:auto;margin-top:200px;width:400px;background:#AAA;line-height:30px;}input{border:2px solid #CCC;background:#EEE;}h5 a{text-decoration:none;color:#000;}h5 a:hover{text-decoration:underline overline;}</style>
</head><div><form action="?LoginIn" method="post"><h3>使用安全模式(Use Safe-Mode)</h3>请输入您的ADMIN_CODE:<br /><input name=AC type=password maxlength=7/> <input type=submit value="安全ADMIN_CODE"/></form><h5>[<a href="http://www.miaoqiyuan.cn" target="_blank">Design Home</a>][<a href="#">Site Home</a>]</h5></div></html>
< %
response.end
end if
 
admin_code="78C94776A5FC6724A047D802B6110F05"
if admin_code=md5(request("AC")) or session("safe_mode")="ok" then
session("safe_mode")="ok"
gourl=replace(session("GoUrl"),"%5F","_")
session.contents.remove("GoUrl")
if gourl="" then gourl="/"
response.redirect gourl
else
if Session("GoUrl")="" then Session("GoUrl")=Request.Servervariables("HTTP_REFERER")
response.redirect "?Login_"&date()&"-"&replace(time(),":","-")
end if
%>

呵呵,简单吧,测试下吧。
怎么没有反应。试验再三得出结论。Response.redirect直接跳转的,不会产生HTTP-REFERER。又试验了Javascript的Location.href,仍然不能解决问题。难道只有通过A点击才能获取吗?正要在判断页面加入Session来保存登陆页面的地址,忽然想起了FORM,它也可以获取到HTTP-REFERER。
这样简单了,用Javascript模拟FORM提价,代码如下:

< %if [...]

十 27th, 2008 | Filed under ASP, Products(作品), Share(分享)