Dvbbs8.1 0DAY(通杀Access和mssql版本)

[复制链接] 5
回复
2657
查看
打印 上一主题 下一主题

86

主题

525

帖子

525

积分

荣誉会员

Rank: 4

积分
525
QQ
跳转到指定楼层
1#
发表于 2008-1-10 09:39:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多郧西好友

您需要 登录 才可以下载或查看,没有帐号?注册

x
看代码UserPayasp行12-64
  1. If Request("raction")="alipayreturn" Then
  2. AliPayReturn()
  3. DvbbsFooter()
  4. ResponseEnd
  5. ElseIf Request("action")="alipayreturn" Then
  6. AliPayReturn()
  7. DvbbsFooter()
  8. ResponseEnd
  9. 'ElseIf Request("action")="Reinmoney" Then
  10. ' Reinmoney()
  11. ' DvbbsFooter()
  12. ' ResponseEnd
  13. End If
复制代码
无论用户提交的raction为alipayreturn还是action为alipayreturn都调用了AliPayReturn()过程。AliPayReturn()的代码原型在行329-351,代码如下:
  1. Sub AliPayReturn()
  2. If DvbbsForumChanSetting(5) <> "0" Then
  3.   AliPayReturnOld()
  4.   Exit sub
  5. Else
  6.   Dim Rs,OrderNo,EnCodeStr,UserInMoney
  7.   OrderNo=Request("outtradeno")
  8.   Set Rs = DvbbsExecute("Select * From [DvChanOrders] Where OIsSuc=3 And OPayCode=&#39;"&OrderNo&"&#39;")
  9.   If not(RsEof And RsBof) Then
  10.    AliPayReturnOld()
  11.    Exit sub
  12.   End if
  13.   ResponseClear
  14.   Set Rs = DvbbsExecute("Select * From [DvChanOrders] Where OIsSuc=0 And OPayCode=&#39;"&OrderNo&"&#39;")
  15.   If RsEof And RsBof Then
  16.    ResponseWrite "N"
  17.   Else
  18.    ResponseWrite "Y"
  19.    DvbbsExecute("Update DvChanOrders Set OIsSuc=3 Where OID = " & Rs("OID"))
  20.   End If
  21.   ResponseEnd
  22. End If
  23. End Sub
复制代码
如果DvbbsForumChanSetting(5) <> "0" 就执行下面的sql语句,我们来看看数据库里默认的ForumChanSetting吧。
  1. 1,1,0,0,[email]pay@aspskynet[/email],0,b63uvb8nsvsmbsaxszgvdr6svyus0l4t,1,1,1,1,1,1,1,100,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
复制代码
ForumChanSetting(5)缺省为0,好了你接着看就会笑了
  1. OrderNo=Request("outtradeno")
  2.   Set Rs = DvbbsExecute("Select * From [DvChanOrders] Where OIsSuc=3 And OPayCode=&#39;"&OrderNo&"&#39;")
复制代码
直接把获取的OrderNo放到sql里面去了。
回顾一下DVbbs80的Userpayasp同样一个函数看代码:
  1. Sub AliPayReturn()
  2. If DvbbsForumChanSetting(5) <> "0" Then
  3.   AliPayReturnOld()
  4. Else
  5.   ResponseClear
  6.   Dim Rs,OrderNo,EnCodeStr,UserInMoney
  7.   OrderNo = DvbbsCheckStr(Request("orderno"))
  8.   Set Rs = DvbbsExecute("Select * From DvChanOrders Where OIsSuc=0 And OPayCode = &#39;"&OrderNo&"&#39;")
  9.   If RsEof And RsBof Then
  10.    ResponseWrite "N"
复制代码

86

主题

525

帖子

525

积分

荣誉会员

Rank: 4

积分
525
QQ
2#
 楼主| 发表于 2008-1-10 13:42:04 | 只看该作者
用DVBBS的朋友请尽快删除此文件等官方补丁

15

主题

133

帖子

133

积分

初级会员

Rank: 1

积分
133
QQ
3#
发表于 2008-1-11 10:35:22 | 只看该作者
有些头晕了

86

主题

525

帖子

525

积分

荣誉会员

Rank: 4

积分
525
QQ
4#
 楼主| 发表于 2008-1-11 19:14:20 | 只看该作者
可以通过DVBBS购买道具过滤不严来伪造一个注入点
就可以得到管理员用户名和密码

15

主题

133

帖子

133

积分

初级会员

Rank: 1

积分
133
QQ
5#
发表于 2008-1-14 10:48:40 | 只看该作者
把SQL玩的得很透的人,我佩服,老子一定很灵活

86

主题

525

帖子

525

积分

荣誉会员

Rank: 4

积分
525
QQ
6#
 楼主| 发表于 2008-1-14 10:57:52 | 只看该作者
长在俺身上自己使使还算不错吧

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

郧西论坛微信公众号
快速回复 返回顶部 返回列表