动网论坛7.1sp1,博客存在安全漏洞及解决

我们在boke.asp文件后边的参数加入"'",如 boke.asp?lantian.index.html 加个"'" 变成boke.asp?'lantian.index.html,发现报错。

这一下为sql注入开了方便之门。

分析boke.asp等文件得知,读取查询参数的语句在boke/Cls_Main.asp中,打开此文件,发现Request.ServerVariables("QUERY_STRING")有三处,而均没有过滤单引号"'"。

我们在url参数上加"'",注意是在最左边和第一个"."前加单引号,因为程序会对QUERY_STRING按照"."进行拆分,这样便可进行sql注入了。

boke/Cls_Main.asp里有这样的语句,Sql = Sql & " where BokeName = '"&BokeName&"'" ,其中bokename是通过拆分第一个查询参数得到的。

我们可以写入这样的语句 ' or userid=(select userid from dv_boke_user) or bokename=',要处理好空格。

如果boke和bbs装在了同一数据库,取得前台管理员权限不是难事。想怎么用就看你兴趣了。

====

笔者对攻击行为不感兴趣,所以发现了漏洞所在就贴出来了。解决方法很简单,直接把

Request.ServerVariables("QUERY_STRING")

都替换成

replace(Request.ServerVariables("QUERY_STRING"),"'","")

就ok了,过滤掉单引号。

按理说,动网不应犯如此低级的错误,但是人总有疏忽的时候。若不是笔者管理的一个大型论坛突然出现了陌生的管理员,跟其沟通说是他发现了boke有漏洞,将自己弄成了管理员,不然仍然不会发现boke有这个漏洞。

声明:注入未真正实践,所说方法可能存在错误。测试版本:sql版7.1sp1,与boke同一数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值