经典论坛's Archiver

shw3588 发表于 2008-7-1 17:17

fso的应用实例《网站防欼改》

<html>
<head><title>bak</title>
<script language="JavaScript">
function myrefresh(){
   window.location.reload();
}
setTimeout('myrefresh()',1000); //指定1秒刷新一次
</script>
</head>
<body>

<%
response.write"<span style='color:red;'>现在是:"
response.write(year(now())&"年"&month(now())&"月"&day(now())&"日"&hour(now())&"时"&minute(now())&"分"&Second(now())&"秒<br></span>")
Set objFileObj = CreateObject("Scripting.FileSystemObject")
sFile =server.MapPath("index.asp")
sFile1 =server.MapPath("dmsb\default.asp")
Set objFile = objFileObj.GetFile(sFile)
Set objFile1 = objFileObj.GetFile(sFile1)
response.write"<br>"
response.write"<br>"
response.write"管理员设定的首页修改时间:2008-6-16 16:50:14<span style='color:red;font-size:12px;'>&nbsp;&nbsp;&nbsp;如果和最后一次修改时间不一样,程序将启动安全行为,时时还原!</span><br>"
response.write"管理员设定的代码申报系统首页修改时间:2008-7-1 15:01:00<span style='color:red;font-size:12px;'>&nbsp;&nbsp;&nbsp;如果和最后一次修改时间不一样,程序将启动安全行为,时时还原!</span><br>"
response.write"<br>"
response.write"<br>"
Response.Write("首页最后一次修改时间:"&objFile.DateLastModified )
Response.Write("代码申报系统首页最后一次修改时间:"&objFile1.DateLastModified )
dt=cdate("2008-6-16 16:50:14")
dt1=cdate("2008-6-16 16:50:14")
response.write"<br>"
response.write"<br>"
response.write"<br>"
if DateDiff( "s", dt,objFile.DateLastModified )>1 or DateDiff( "s", dt,objFile.DateLastModified )<0 then
        response.Write"时间不一样了,相差"
        response.write("<span style='color:red;'>"&DateDiff( "s", dt,objFile.DateLastModified )&"</span>")
        response.write"秒"
        response.write"<br>"
        response.write"<br>"
        response.write"<br>程序将自动把还原备份文件"
        objFileObj.CopyFile ""&server.MapPath("note\Tobk.asp")&"",""&server.MapPath("index.asp")&""
        txtname=replace(now(),"-","")
        cc=cstr(txtname)&".txt"
        Set   MyFile=objFileObj.CreateTextFile(""&server.MapPath(""&year(now())&month(now())&day(now())&hour(now())&minute(now())&Second(now())&".txt")&"")
        MyFile.WriteLine("首页被修改记录,网站首页于"&year(now())&month(now())&day(now())&hour(now())&minute(now())&Second(now())&"被尝试修改,程序已经记录此动作,并恢复")
        MyFile.close
elseif DateDiff( "s", dt1,objFile1.DateLastModified )>1 or DateDiff( "s", dt1,objFile1.DateLastModified )<0 then
        objFileObj.CopyFile ""&server.MapPath("dmsb\Dmdb_A.asp")&"",""&server.MapPath("dmsb\  Default.asp")&""
        txtname=replace(now(),"-","")
        cc=cstr(txtname)&".txt"
        Set   MyFile=objFileObj.CreateTextFile(""&server.MapPath(""&year(now())&month(now())&day(now())&hour(now())&minute(now())&Second(now())&".txt")&"")
        MyFile.WriteLine("修改记录,代码申报系统性首页于"&year(now())&month(now())&day(now())&hour(now())&minute(now())&Second(now())&"被尝试修改,程序已经记录此动作,并恢复")
        MyFile.close
        else
        response.write"当前状态:页面正常"
end if
'删除index.htm,index.html,dmsb/index.htm,dmsb/index.html,Default.htm、Default.asp等其它默认首页
Sub delfile(filepaths)
        Set fs = Server.CreateObject("Scripting.FileSystemObject")
        File = Server.MapPath(filepaths)
        on Error Resume Next
        fs.DeleteFile File, True '强制删除只读文件
        If Err.Number = 53 Then
                Response.Write File & ""&filepaths&"文件不存在!"
                Response.Write ""&filepaths&"成功删除文件!" & File
        End If
End Sub
Call delfile("index.html")
Call delfile("index.htm")
Call delfile("Default.htm")
Call delfile("Default.html")
Call delfile("Default.asp")
Call delfile("dmsb/index.htm")
Call delfile("dmsb/index.html")
Call delfile("dmsb/Default.htm")
Call delfile("dmsb/Default.html")
%>
</body>
</html>

shw3588 发表于 2008-7-1 17:20

保护首页index.asp,和dmsb下的defult.asp,

mackson 发表于 2008-7-2 08:42

先修改note\Tobk.asp在修改index.asp还不如直接给 index.asp只读权限,其他权限全部删除

faeng220 发表于 2008-7-2 08:55

程序既然是楼主写的,为什么不给个明白点的说明呢?

页面每隔一秒刷新一次,ASP程序检测index.asp有没有被修改,如果有被修改,则复制server.MapPath("note\Tobk.asp")为server.MapPath("index.asp")
也检测dmsb\default.asp有没有被修改,如果有被修改,则复制
server.MapPath("dmsb\Dmdb_A.asp")为server.MapPath("dmsb\Default.asp")


你觉得这样有用吗?

首先,你这个页面打开不能关闭..也就是说你得找一台机器一直开着这个网页.如果有N个人都打开了这个网页.然后不停的刷新,你觉得它们之间不会存在一些意想不到的事?

其次,每刷新一次,向服务器请求一次.等于是一直占了IIS的一个连接数.

最后,既然别人可以修改你的index.asp那为什么不顺便也修改你的程序里面所指的备份的文件呢????

据我所知,现在的批量挂马.可都是遍历目录,给指定文件添加恶意代码的..
你的备份文件[note\Tobk.asp,dmsb\Dmdb_A.asp]都被搞了..那你再恢复,它不还是带着恶意代码的网页吗?



不太明白,你写这段程序的意图是什么.

bluewjzhhr 发表于 2008-7-2 09:18

你这样似乎是没有用处的,除非将这个文件的所有内容全部存到数据库中,发现有问题的话,点击还原,但似乎不能批量还原。

最直接最简单的方法不是FTP上传,没有其它的办法了。

ciker 发表于 2008-7-2 12:07

把程序写好点、写安全点,还用费那些劲?:o [排除ARP和主机权限问题]

另外:
1、正如小秦说的那样,现在批量挂马很容易,所有文件都有恶意代码,你怎么恢复?
2、只保护首页,这个想法很幼稚。。别的链接呢?

我感觉保护数据库,比保护"首页"更现实一些。

shw3588 发表于 2008-7-2 16:52

具体情况具体分析吧
  当前的情况是这样的,垃圾的服务器连FTP都不能用,用户修改FTP ,SQL密码都要打电话过去让那边客服修改,
我试图找到网站的程序注入,可没有,扫描服务器站点中发现有一个企业站能注入,难道是?
服务器的权限设置不严格,阿江探针能列出所有用户进程和其它很多信息,
那时我曾经想在本地写个程序时时访问网站,当出现异常的时候自动激活FTP,上传本地备份文件到服务器上的,可FTP用不了
,HACK确实遍历了我所有文件夹, 每个目录下都有他放的首页文件,但用户访问输入网址后看到的第一张页面不能出问题,宁可打不开也不要出其它的东西,对方要想知道我的备份和检测文件是哪个就一定得人工来看,除非他想删除我的所有文件,那就没办法了, 虽然不能常常看网站,但二天也会看一次,到时人工弄回来,再过半年要换服务商了,到时候我在本地做个软件时时监控远程FTP文件的变化和恢复就行了,

保护程序谁没想过,我想到的地方我都找不到漏洞, 这可是请大公司1.5W的开发费用出来的,

我能做的就这样,坚持 等到换服务器再用自己做的软件时时检测FTP,

服务器那边我无语中,, 无奈中,, 上传更新都得去U盘考到他们那去才行,FTP用不了。

更加说设置服务器这些了, 想要些服务器日志都拿不到,

现在的方法只是补补, 工具和软件如果只想覆盖首页的话 些方法还能起点作用,HACK要删除所有文件再上传他的首页的话当然是没办法了,那就不叫挂马了, 那是攻击服务器,

有兴趣的朋友可以检测下我这1.5W的程序 ,网站不公开,要检测的朋友发站内信息给我!

gingerkang 发表于 2008-7-2 17:57

1.5w也要看什么程序哦,1.5w都掏了,怎么还选个连个ftp都没有的服务商,真是奇了怪了

shw3588 发表于 2008-7-2 18:08

服务商说真的,我都不想提了, 是中国电信!一年好几千呢,100MB 。
上次要修改个FTP密码都打电话,发传真 搞的我都想死。。。 哎!

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.