Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范_漏洞研究教程-查字典教程网
Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范
Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范
发布时间:2017-01-06 来源:查字典编辑
摘要:一、概述漏洞介绍:http://coolersky.com/leak/programme/bbs/2006/0515/515.html前几天...

一、概述

漏洞介绍:

http://coolersky.com/leak/programme/bbs/2006/0515/515.html
前几天就听Hak_Ban说有人把dvbbs7的一个注入漏洞给发布出去了,一直也没时间看看,下午跟Edward要了个链接看了看:

http://www.eviloctal.com/forum/read.php?tid=22074
本站转贴为:

http://coolersky.com/articles/hack/analysis/programme/2006/0515/238.html
看了看风尘浪子的分析,觉得已经分析的挺明白的了,不过群里还是有几个朋友搞不太明白,索性在本地搭环境测试一下漏洞,感谢keng提供程序,呵呵,实在懒得去网上找。

二、漏洞分析

既然是savepost.asp程序的问题,那就打开改文件,风尘浪子已经提到是ToolsBuyUser参数过滤不足,那就看这个变量。

32行,定义变量:

Private GetPostType,ToMoney,UseTools,ToolsBuyUser,GetMoneyType,Tools_UseTools,Tools_LastPostTime,ToolsInfo,ToolsSetting
111行,置空

ToolsBuyUser = ""
120行,在参数GetPostType为0时,赋值

ToolsBuyUser = "0|||$SendMoney"
123行,在参数GetPostType为1时,赋值
ToolsBuyUser = "0|||$GetMoney"
139行,在参数GetPostType为2时,赋值

ToolsBuyUser = "0@@@"&Buy_Orders&"@@@"&Buy_VIPType&"@@@"&Buy_UserList&"|||$PayMoney|||"
747行,定义sql

SQL="insert into "&TotalUseTable&"(Boardid,ParentID,username,topic,body,DateAndTime,length,RootID,layer,orders,ip,Expression,locktopic,signflag,emailflag,isbest,PostUserID,isupload,IsAudit,Ubblist,GetMoney,UseTools,PostBuyUser,GetMoneyType) values ("&Dvbbs.boardid&","&ParentID&",'"&username&"','"&topic&"','"&Content&"','"&DateTimeStr&"','"&Dvbbs.strlength(Content)&"',"&RootID&","&ilayer&","&iorders&",'"&Dvbbs.UserTrueIP&"','"&Expression(1)&"',"&locktopic&","&signflag&","&mailflag&",0,"&Dvbbs.userid&","&ihaveupfile&","&IsAudit&",'"&UbblistBody&"',"&ToMoney&",'"&UseTools&"','"&ToolsBuyUser&"',"&GetMoneyType&")"
745行,执行sql

Dvbbs.Execute(sql)
我们看到,在整个获得数据到提交的过程中,没有对ToolsBuyUser参数进行安全过滤,导致了sql注入漏洞。

三、漏洞利用

1、注册用户coolersky

2、选择发表新话题

3、在“选择帖子类型”中选中“论坛交易帖设置”

4、在“可购买用户名单限制:”中写入

http://www.eviloctal.com/forum/read.php?tid=22074
0 修改口令后,重新登陆论坛,若使用123456登陆成功,则说明该漏洞尚未修补。

5、获得前台管理员用户名和口令,分别放在自定义头像和签名中,查看用户coolersky的基本资料即可看到。

http://www.eviloctal.com/forum/read.php?tid=22074
1 6、获得后台管理员用户名和口令

http://www.eviloctal.com/forum/read.php?tid=22074
2 7、通过日志查看后台管理密码

http://www.eviloctal.com/forum/read.php?tid=22074
3 8、获得数据库名称

http://www.eviloctal.com/forum/read.php?tid=22074
4 9、日志差异备份webshell

http://www.eviloctal.com/forum/read.php?tid=22074
5 或者

http://www.eviloctal.com/forum/read.php?tid=22074
6 使用最小asp木马客户端连接即可!

10、直接修改管理员口令

通过5、6、7三个步骤可以获得管理员前后台的用户名和密码,至少密码是16位md5,我们可以通过网络查询或者暴力破解获得管理员口令来登录前后台,但是也很可能没办法破解出口令。

而如果也无法获得论坛的物理路径,那么只好通过修改管理员口令来实现了,当然能不改管理员口令还是尽量避免修改,否则马上就被管理员知道被入侵了。

(1)获得前台管理员用户名:

http://www.eviloctal.com/forum/read.php?tid=22074
7 (2)修改前台管理员口令:

http://www.eviloctal.com/forum/read.php?tid=22074
8 (3)获得后台管理员用户名:

http://www.eviloctal.com/forum/read.php?tid=22074
9 (4)修改后台管理员口令:

http://coolersky.com/articles/hack/analysis/programme/2006/0515/238.html
0 (5)登录前台上传mdb构造过的asp一句话后门,后台back为asp或asa文件即可,如何操作不在本文描述过程中。

通过以上操作,只要服务器支持多语句,那么我们还可以对数据库进行更多操作。

四、漏洞修补

1、从dvbbs下载最新补丁

http://coolersky.com/articles/hack/analysis/programme/2006/0515/238.html
1 2、打开savepost.asp文件,将747行

SQL="insert into "&TotalUseTable&"(Boardid,ParentID,username,topic,body,DateAndTime,length,RootID,layer,orders,ip,Expression,locktopic,signflag,emailflag,isbest,PostUserID,isupload,IsAudit,Ubblist,GetMoney,UseTools,PostBuyUser,GetMoneyType) values ("&Dvbbs.boardid&","&ParentID&",'"&username&"','"&topic&"','"&Content&"','"&DateTimeStr&"','"&Dvbbs.strlength(Content)&"',"&RootID&","&ilayer&","&iorders&",'"&Dvbbs.UserTrueIP&"','"&Expression(1)&"',"&locktopic&","&signflag&","&mailflag&",0,"&Dvbbs.userid&","&ihaveupfile&","&IsAudit&",'"&UbblistBody&"',"&ToMoney&",'"&UseTools&"','"&ToolsBuyUser&"',"&GetMoneyType&")"
修改为:

http://coolersky.com/articles/hack/analysis/programme/2006/0515/238.html
3 即用dvbbs.checkstr函数过滤ToolsBuyUser内容。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新漏洞研究学习
    热门漏洞研究学习
    实用技巧子分类