当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP漏洞及安全建议(3)

ASP
asp分页(自己整理的2个分页程序)
ASP常用的系统配置函数
雨哲防采集策略之列表篇
雨哲浅谈关于防采集而不影响收录内容篇
asp数据库连接函数
ajax XMLHTTP Post Form时的表单乱码综合解决
ASP注入详细命令40条
用ASP实现MSSQL用户密码破解
ASP创建对象的两种方法比较
ASP字符串转换为整形、双精度型、布尔
ASP计算str2在str1中出现的次数
asp采集抓取网上房产信息的代码
ASP注册登陆实例代码
ASP中使用FileSystemObject时提高性能的方法
分享一个好东东,动态Include文件 (Dynamic File Includes)
解决 JScript 中使用日期类型数据时出现类型错误的问题
在ASP里面创建GUID
在JScript中使用缓存技术的实际代码
ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
海阳2006+功能中的潜水王

ASP漏洞及安全建议(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 117 ::
收藏到网摘: n/a

       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="sex" 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>被解释成功
  出现了红色的放大的“你好”字
&