当前位置:编程学习 > asp >>

ASP漏洞及安全建议(3)

答案:     8、ASP聊天室程序的漏洞
   问题描述:
   如果聊天室ASP程序设计不当,很容易会给他人利用来做坏事:可以踢人,穿墙,捣乱.
   首先,我们看看聊天室里有什么漏洞,大家看看下面这段代码:
  
  <html>
  <head>
  <body BGCOLOR="008888" TEXT="FFFFFF">
  …………………………
  ………………
  ………
  <form NAME="sendmsg" ACTION="chatt.asp" METHOD="POST" target="mtalk1"
  OnSubmit="return chksend();">
  <input type="hidden" name="username" value="测试者">******
  <input type="hidden" name="易做图" value="boy">********
  <input type="hidden" name="message" value="">
  <input type="hidden" name="a_method" value="sendtalk">
  <div align="center"><center>
  <table CELLSPACING="0" CELLPADDING="0"> <tr>
  <td>发言: <input type="text" name="msg" size="60"> </td>
  <td><input type="submit" value="发 言"> </td>
  </tr>
  <tr>
  <td>悄悄:<input type=checkbox name=mtalk value=1>
  对象:<input type="text" name="betalk" size="10">
  表情:<select NAME="exp" onChange="document.sendmsg.msg.focus();documen
  t.sendmsg.msg.select();" size="1">
  ………
  ……………
  ……………………
  </form>
  <form name="getout" ACTION="chatt.pl" METHOD="POST">
  <input type="hidden" name="username" value="测试者">!!!!!!
  <input type="hidden" name="a_method" value="getout">!!!!
  <input type="submit" value="退 出"></td>
  </form>
  </body>
  </html>
   以上这段代码是我在某个聊天室用"测试者"作代号登陆后在发言帧当下来的, 这只是一小部份,但在这一小部份代码里面就有两个漏洞。
   第一个漏洞
   大家看看上面的代码加上"*"号的那两句,其中第一句中的"测试者"就是我登陆的名字,还有,第二句中的"boy"是登陆时的性别,还有再看看下面我加上"!" 号的两句,第一句里还是有我登陆时的名字,这几句都是我现在想说的两个漏洞所在点。如果想在这个聊天室里穿墙的话,只要把发言帧的代码当下来另存,把"form"的"action"改成聊天室的地址,然后把再"*"号的第一句的“测试者”两字改成想要的名字就可以了。也可以变换性别,只要把第二句的 "boy"改成"girl"。这就是所谓的穿墙术了。你甚至可以把它改成在线人的名字,然后发言,这样就冒充别人的姓名谈话。
   第二个漏洞
   踢人的漏洞就是这个了,我们看一下带"!"号的第一句,上面有是合法用户登陆的名字,再看第二句,他有”getout”,再加上上面还有一段"form"标签,这段就是我们退出聊天室时的代码,这个有什么用呢?我们先试试看,首先还是把"form"标签的"action"改成 聊天室的地址,不然就不知道提交给哪个家伙了。然后把"风风"改成你想踢下去的人的名字然后单击“退出”,那就把那个人踢出聊天室了。这个就是聊天室踢人的漏洞。
   这两个漏洞主要的原因是这两个漏洞使服务程序不识别客户发出的指令是不是合法用户。 以上两漏骗服务程序来更名发出发言,或更名退出,使得真正的使用者受害。
   当然上面的程序中还有一个漏洞,输入框没有对HTML语句和javascript语句做过滤。这个问题我们在漏洞5中已有详细分析,这里就不谈了。
  
   问题解决或者建议:
   在程序设计中让服务程序能识别到底是哪个家伙发出的指令就可以了,具体做法可以为每个聊天者发一个识别码,象五笔字一样,也可以用每个聊天者的密码识别,也可以把聊天者的密码随机加密后用作识别等等 ,反正能使你的服务程序识别到底是谁发出的指令就可以了。
  
  9、NT iss4.0_AuthChangeUrl? 漏洞
   问题描述:
   在NT iis4.0,当输入如下命令时
  http://someurl/_AuthChangeUrl?<font%20size=7%20color=red>你好
  你看到发生了什么吗?<font size=7 color=red>被解释成功
  出现了红色的放大的“你好”字
   我们再来看看以下的命令:
  http://someurl/_AuthChangeUrl?<img%20src=http://old.zzzyk.com/article/Article/file:///c:/1.jpg>
   上面的命令将显示c:根目录下的1.jpg图片,如果1.jpg存在的话。
  http://someurl/_AuthChangeUrl?<a%20href=>
   上面的命令将下载C:根目录下的install.exe文件。
   按照这种方法还能打开对方服务器上一个已经知道的文本文件。
  
  10、微软开发的两个动态库存在后门允许用户查看ASP文件源程序和下载整个网站
   问题描述:
   随IIS和Frontpage Extention server而来的动态库程序,存在后门,允许用户远程读取asp、asa和CGI程序的源代码。但这个动态库要求有密码,这个后门的密码是: "Netscape engineers are weenies!"
   程序路径为: /_vti_bin/_vti_aut/dvwssr.dll
  一般安装了 Frontpage98的 IIS服务器都有这个路径和文件。这个程序要求解码后才能发挥读取asp等源程序,有趣的是,这个密码正是嘲弄其竞争对手Netscape的。
   现提供一个有该漏洞的国外网站给安全技术人员参考:
   http://62.236.90.195
  关于读取源程序,请下载这个测试程序,用法为:
  [john@Linux john]$ ./dvwssr1.pl 62.236.90.195 /cqsdoc/showcode.asp
  测试程序: http://www.cnns.net/exploits/nt/dvwssr1.pl
  
  11、漏洞名称:IIS4.0受HTTP的D.O.S攻击漏洞
   问题描述:
   受影响的版本:IIS 4.0以及更早的版本
   这是一个很简单的方法.发送很多的"Host:aaaaa...aa"到IIS:
  GET / HTTP/1.1
  Host: aaaaaaaaaaaaaaaaaaaaaaa....(200 bytes)
  Host: aaaaaaaaaaaaaaaaaaaaaaa....(200 bytes)
  ...10,000 lines
  Host: aaaaaaaaaaaaaaaaaaaaaaa....(200 bytes)
  
   发送了象上面所写的两次请求后,对方的IIS在接受了这些请求后就会导致内存溢出.当然,它就不能对更多的请求作出反应。因为对方正缺乏虚拟内存,服务器也将停止运行。事后,对方不能通过重起web service来解决问题,而必须重启服务器。
  
  12 漏洞名称:IIS5.0超长URL拒绝服务漏洞
   问题描述:
   Microsoft IIS 5.0在处理以".ida"为扩展名的URL请求时,它会有两种结果。一个可能的结果是服务器回复"URL String too long"的信息;或类似"Cannot find the specified path" 的信息。另一种可能就是服务器端服务停止,并返回"Access Violation"信息(即成功的实现了对服务器端的拒绝服务攻击)
   当远端攻击者发出类似如下的请求时:
   http://someurl/...[25kb of '.']...ida
   服务器端会崩溃(导致拒绝服务攻击)或返回该文件不在当前路径的信息(暴露文件物理地址)
  问题解决或者建议:
   大多数情况下,站点很少使用扩展名为".ida"和".idq"的文件,可在ISAPI脚本映射中,将扩展名为".ida"和".idq"的应用程序映射删除。
  
  13请求不存在的扩展名为idq或ida 文件,会暴露服务器上得物理地址.
   问题描述:
   通过请求一个不存在的扩展名为idq或ida得文件,IIS会暴露文件在服务器上得物理地址.这样会给攻击者提供了不必要的信息,而且,这对攻击一个Web站点来说,是很有价值的第一步。
  测试程序:
  通过请求如:
  http://someurl/anything.ida
  http://someurl/lunwen/anything.ida
  或:
  http://someurl/anything.idq
  一个远端用户可以收到类似:'The IDQ d:\http\anything.idq could not be found'的响应。
  这样的一个响应就会让攻击者获得了Web站点的物理路径,并且还可以获得更多的有关该站点在服务器上的组织与结构。
  
  14、NT Index Server存在返回上级目录的漏洞
   问题描述
   受影响的版本:Microsoft Index Server2.0 [WinNT4.0,WinNT 2000.0]
   Index Sserver2.0是WinNT4.0 Option Pack中附带的一个软件的工具,其中的功能已经被WinNT 2000中的Indexing Services所包含。当与IIS结合使用时,Index Server

上一个:实现聊天室的悄悄话功能(上)
下一个:ASP漏洞及安全建议(2)

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,