`
solem
  • 浏览: 34324 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

ASP网站黑客防范编程技巧

    博客分类:
  • ASP
阅读更多
如何更好的达到防范黑客攻击,本人提一下个人意见!第一,免费程序不要真的就免费用,既然你可以共享原码,那么攻击者一样可以分析代码。如果在细节上注意防范,那样你站点的安全性就大大的提高了。即使出现了SQL Injection这样的漏洞,攻击者也不可能马上拿下你的站点。 由于ASP的方便易用,越来越多的网站后台程序都使用ASP脚本语言。但是, 由于ASP本身存在一些安全漏洞,稍不小心就会给黑客提供可乘之机。事实上,安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则会给自己的网站带来巨大的安全隐患。目前,大多数网站上的ASP程序有这样那样的安全漏洞,但如果编写程序的时候注意一点的话,还是可以避免的。

  1、用户名与口令被破解

  攻击原理:用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。

  防范技巧:涉及用户名与口令的程序最好封装在服务器端,尽量少在ASP文件里出现,涉及与数据库连接的用户名与口令应给予最小的权限。出现次数多的用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及与数据库连接,在理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户修改、插入、删除记录的权限。

  2、验证被绕过

  攻击原理:现在需要经过验证的ASP程序大多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入。

  防范技巧:需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。

  3、inc文件泄露问题

  攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。

  防范技巧:程序员应该在网页发布前对它进行彻底的调试;安全专家则需要加固ASP文件以便外部的用户不能看到它们。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件使用户无法从浏览器直接观看文件的源代码。inc文件的文件名不要使用系统默认的或者有特殊含义容易被用户猜测到的名称,尽量使用无规则的英文字母。

 4、自动备份被下载

  攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个.bak文件,如你创建或者修改了some.asp,编辑器会自动生成一个叫some.asp.bak文件,如果你没有删除这个bak文件,攻击者可以直接下载some.asp.bak文件,这样some.asp的源程序就会被下载。

  防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。

  5、特殊字符

  攻击原理:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏;如果该输入框涉及数据查询,他们会利用特殊查询语句,得到更多的数据库数据,甚至表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过。

  防范技巧:在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、javaScript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但要在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。

  6、数据库下载漏洞

  攻击原理:在用Access做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的Access数据库的路径和数据库名称,那么他也能够下载这个Access数据库文件,这是非常危险的。

  防范技巧:

 (1)为你的数据库文件名称起个复杂的非常规的名字,并把它放在几层目录下。所谓 “非常规”, 打个比方说,比如有个数据库要保存的是有关书籍的信息, 可不要给它起个“book.mdb”的名字,而要起个怪怪的名称,比如d34ksfslf.mdb, 并把它放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了。

 (2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:

  DBPath = Server.MapPath(“cmddb.mdb”)

  conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath

  假如万一给人拿到了源程序,你的Access数据库的名字就一览无余了。因此建议你在ODBC里设置数据源,再在程序中这样写:

  conn.open“shujiyuan”

 (3)使用Access来为数据库文件编码及加密。首先在“工具→安全→加密/解密数据库”中选取数据库(如:employer.mdb),然后按确定,接着会出现“数据库加密后另存为”的窗口,可存为:“employer1.mdb”。

  要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。

  接下来我们为数据库加密,首先打开经过编码了的 employe

r1.mdb,在打开时,选择“独占”方式。然后选取功能表的“工具→安全→设置数据库密码”,接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他也是无法看到 employer1.mdb中的内容。

 7、防范远程注入攻击

  这类攻击在以前应该是比较常见的攻击方式,比如POST攻击,攻击者可以随便的改变要提交的数据值已达到攻击目的.又如:COOKIES 的伪造,这一点更值得引起程序编写者或站长的注意,不要使用COOKIES来做为用户验证的方式,否则你和把钥匙留给贼是同一个道理.

  比如:

  If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd") =”fqy#e3i5.com” then

  ……..more………

  End if

  我想各位站长或者是喜好写程序的朋友千万别出这类错误,真的是不可饶恕.伪造COOKIES 都多少年了,你还用这样的就不能怪别人跑你的密码.涉及到用户密码或者是用户登陆时,你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一个信息,SessionID,它的随机值是64位的,要猜解它,不可能.例:

  if not (rs.BOF or rs.eof) then

  login="true"

  Session("username"&sessionID) = Username

  Session("password"& sessionID) = Password

  ‘Response.cookies(“username”)= Username

  ‘Response.cookies(“Password”)= Password

  下面我们来谈谈如何防范远程注入攻击,一般的攻击都是将单表提交文件拖到本地,将Form ACTION=”chk.asp” 指向你服务器中处理数据的文件即可.如果你全部的数据过滤都在单表页上,那么恭喜你,你将已经被脚本攻击了.

  怎么才能制止这样的远程攻击?好办,请看代码如下: 程序体(9)

  <%

  server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))

  server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))

  if mid(server_v1,8,len(server_v2))<>server_v2 then

  response.write "<br><br><center>"

  response.write " "

  response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱改参数!"

  response.write "



"

  response.end

  end if

  %>

‘个人感觉上面的代码过滤不是很好,有一些外部提交竟然还能堂堂正正的进来,于是再写一个.

  ‘这个是过滤效果很好,建议使用.

  if instr(request.servervariables("http_referer"),"http://"&request.servervariables("host") )<1 then response.write "处理 URL 时服务器上出错。

如果您是在用任何手段攻击服务器,那你应该庆幸,你的所有操作已经被服务器记录,我们会第一时间通知公安局与国家安全部门来调查你的IP. "

  response.end

  end if

  程序体(9)

  本以为这样就万事大吉了,在表格页上加一些限制,比如maxlength啦,等等..但天公就是那么不作美,你越怕什么他越来什么.你别忘了,攻击者可以突破sql注入攻击时输入框长度的限制.写一个SOCKET程序改变HTTP_REFERER?我不会。网上发表了这样一篇文章:

  ------------len.reg-----------------

  Windows Registry Editor Version 5.00

  [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\扩展(&E)]

  @="C:\Documents and Settings\Administrator\桌面\len.htm"

  "contexts"=dword:00000004

  -----------end----------------------

  -----------len.htm------------------

  

  ----------en

d-----------------------

  用法:先把len.reg导入注册表(注意文件路径)

  然后把len.htm拷到注册表中指定的地方.

  打开网页,光标放在要改变长度的输入框上点右键,看多了一个叫扩展的选项了吧

  单击搞定! 后记:同样的也就可以对付那些限制输入内容的脚本了.

  怎么办?我们的限制被饶过了,所有的努力都白费了?不,举起你de键盘,说不。让我们继续回到脚本字符的过滤吧,他们所进行的注入无非就是进行脚本攻击。我们把所有的精力全都用到ACTION以后的页面吧,在chk.asp页中,我们将非法的字符全部过滤掉,结果如何?我们只在前面虚晃一枪,叫他们去改注册表吧,当他们改完才会发现,他们所做的都是那么的徒劳。

8、ASP木马

  已经讲到这里了,再提醒各位论坛站长一句,小心你们的文件上传:为什么论坛程序被攻破后主机也随之被攻击者占据。原因就在……对!ASP木马!一个绝对可恶的东西。病毒么?非也.把个文件随便放到你论坛的程序中,您老找去吧。不吐血才怪哦。如何才能防止ASP木马被上传到服务器呢?方法很简单,如果你的论坛支持文件上传,请设定好你要上传的文件格式,我不赞成使用可更改的文件格式,直接从程序上锁定,只有图象文件格式,和压缩文件就完全可以,多给自己留点方便也就多给攻击者留点方便。怎么判断格式,我这里收集了一个,也改出了一个,大家可以看一下:

  程序体(10)

  '判断文件类型是否合格

  Private Function CheckFileExt (fileEXT)

  dim Forumupload

  Forumupload="gif,jpg,bmp,jpeg"

  Forumupload=split(Forumupload,",")

  for i=0 to ubound(Forumupload)

  if lcase(fileEXT)=lcase(trim(Forumupload(i))) then

  CheckFileExt=true

  exit Function

  else

  CheckFileExt=false

  end if

  next

  End Function

  ‘验证文件内容的合法性

set MyFile = server.CreateObject ("Scripting.FileSystemObject")

  set MyText = MyFile.OpenTextFile (sFile, 1) ' 读取文本文件

  sTextAll = lcase(MyText.ReadAll): MyText.close

  '判断用户文件中的危险操作

  sStr ="8 .getfolder .createfolder .deletefolder .createdirectory 

  .deletedirectory"

  sStr = sStr & " .saveas wscript.shell script.encode"

  sNoString = split(sStr," ")

  for i = 1 to sNoString(0)

  if instr(sTextAll, sNoString(i)) <> 0 then

  sFile = Upl.Path & sFileSave: fs.DeleteFile sFile

  Response.write "<center><br><big>"& sFileSave &"文件中含有与操作目录等有关的命令"&_

  "<br><font color=red>"& mid(sNoString(i),2) &"</font>,为了安全原因,<b>不能上传。<b>"&_"</big></center></html>"

  Response.end

  end if

  next

  程序体(10)

  把他们加到你的上传程序里做一次验证,那么你的上传程序安全性将会大大提高.

  什么?你还不放心?拿出杀手锏,请你的虚拟主机服务商来帮忙吧。登陆到服务器,将PROG ID 中的"shell.application"项和"shell.application.1"项改名或删除。再将”WSCRIPT.SHELL”项和”WSCRIPT.SHELL.1”这两项都要改名或删除。呵呵,我可以大胆的说,国内可能近半以上的虚拟主机都没改过。只能庆幸你们的用户很合作,否则……我删,我删,我删删删……

分享到:
评论

相关推荐

    ASP网站漏洞解析及黑客入侵防范方法

    但是, 由于ASP本身存在一些安全漏洞,稍不小心就会给黑客提供可乘之机。事实上,安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则会给自己的网站带来巨大的安全隐患。目前,...

    ASP.NET服务器黑客程序

    本主题将深入探讨ASP.NET服务器可能面临的黑客程序及其防范措施。 1. **SQL注入攻击**:ASP.NET应用通常与数据库交互,如果代码没有正确处理用户输入,就可能导致SQL注入。黑客可以通过构造恶意SQL语句,窃取、修改...

    编程人员应常去的网站

    30. **电脑编程技巧与维护**:包含编程技巧、系统维护和硬件知识。 31. **中国电子网**:电子技术行业的信息平台,涵盖硬件设计和嵌入式系统。 32. **编程中国**:提供编程教程、软件下载和开发工具。 33. **...

    ASPsafeDOC(ASP脚本攻防手册)

    在ASP编程中,了解和掌握安全攻防技巧至关重要,因为不安全的脚本可能导致数据泄露、服务器被黑、用户信息被盗等严重后果。手册首先可能讲解了ASP的基本语法和常用函数,以便读者对ASP有一个基础的理解,然后逐步...

    ASP.NET源码——ASP.NET Web BackDoor.zip

    ASP.NET Web BackDoor可能是一个恶意开发者或者黑客创建的组件,其目的是为了远程控制或监视使用ASP.NET技术构建的网站。 **源码分析** 1. **编码与解码**:ASP.NET后门可能会使用各种编码技术来隐藏其真实意图,...

    ASP.NET编程中的十种安全措施

    ASP.NET编程中的安全措施至关重要,因为它们保护了网站和用户数据免受各种威胁。以下是针对标题和描述中提到的十个安全措施的详细说明: 1. **MD5加密用户密码**:MD5是一种广泛使用的哈希函数,用于将密码转换为不...

    asp.net语句过滤

    ASP.NET是一种基于.NET Framework的服务器端编程环境,用于构建动态Web应用程序。在处理用户输入时,ASP.NET提供了语句过滤机制,以防止恶意代码注入,确保应用的安全性。语句过滤是防止SQL注入、跨站脚本攻击(XSS)...

    ASP注入工具检查工具.rar

    然而,由于编程不当或者安全配置不足,ASP应用可能会成为黑客攻击的目标,其中最常见的就是SQL注入。 SQL注入是一种攻击方式,攻击者通过输入恶意的SQL语句来欺骗服务器执行非预期的操作,获取敏感数据或篡改数据库...

    各大Asp後門萬能密碼

    根据提供的文件信息,主题集中在“各大Asp后门万能密码”上,这是一个涉及网络安全、Web应用安全以及黑客技术的话题。下面将深入探讨与ASP后门相关的知识,包括后门的概念、常见类型、攻击原理以及防范措施。 ### ...

    webshell,包含asp,php,aspx,jsp

    Webshell是一种特殊的后门程序,通常被黑客用来远程控制服务器,尤其在Web应用程序中。它允许攻击者在服务器上执行命令、上传或下载文件、甚至完全控制受感染的Web服务器。这里我们将深入探讨asp、php、aspx和jsp四...

    浅谈计算机网络安全漏洞及防范.pdf

    网络软件安全漏洞则涉及到匿名FTP、电子邮件、域名服务和Web编程语言编写的应用程序漏洞,如CGI、ASP、PHP等,这些都可能为黑客提供攻击的渠道。 文章还探讨了计算机网络安全漏洞存在的原因。信息获取的便捷性以及...

    pzqr.rar_Internet/IE编程_版本管理

    标题中的“pzqr.rar”可能是一个压缩文件的名称,它涉及到的主题是“Internet/IE编程”和“版本管理”。这表明我们可能要讨论的是与...同时,了解黑客技术也有助于开发者更好地防范潜在的安全威胁,提升软件的安全性。

    ASP脚本攻防手册.doc

    随着互联网的发展,ASP系统因其易用性和广泛的兼容性而受到很多网站管理员的欢迎,但也因此成为黑客攻击的目标。 攻击者通常利用诸如SQL注入、暴库、旁注和Cookies欺骗等手段来获取管理员权限。SQL注入是其中一种...

    ASP网上拍卖系统设计与实现(论文+源代码+开题报告).zip

    通过分析源代码,可以学习到系统的设计模式、编程技巧以及问题解决策略。 8. 结合Android标签: 虽然标题中提到"Android",但主要介绍的是ASP系统。如果涉及到Android,可能是指存在一个移动版的拍卖应用,通过ASP...

    ASP漏洞集.rarASP漏洞集.rarASP漏洞集.rar

    ASP(Active Server Pages)...了解并防范这些ASP漏洞,可以帮助开发者构建更安全的Web应用,减少被黑客利用的风险。对于研究者来说,深入研究这些漏洞的原理和利用方式,有助于提升网络安全技能,更好地防御潜在威胁。

    黑盟专用版原代码ASP,自己可以进行修改

    1. ASP编程:学习如何编写和理解ASP脚本,了解服务器端脚本如何与客户端交互。 2. 后门技术:理解后门的工作原理,如何创建和部署,以及它们在网络安全中的角色。 3. 免杀技术:学习如何使恶意代码避开安全扫描,...

    Char's ASP.NET Webshell V1.1

    ASP.NET Webshell,通常被称为Web后门或Webshell,是一种恶意代码,黑客在入侵Web服务器并获取控制权后,会植入此类工具以方便远程管理受感染的系统。Char's ASP.NET Webshell V1.1是其中一种特定版本,由开发者Char...

    asp提权木马

    【ASP提权木马】是一种针对ASP(Active Server Pages)平台的恶意代码,通常被黑客用来获取对服务器的更高权限,从而控制整个系统或者执行非法操作。提权,即提升权限,指的是攻击者通过特定手段从低级别的用户权限...

    asp源码企业源码

    ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于生成动态网页或Web应用程序。...在ASP源码中,"企业源码...同时,系统的安全性也是至关重要的,需要定期更新和修补以防范潜在的黑客攻击和安全漏洞。

Global site tag (gtag.js) - Google Analytics