发的第一个帖子,相信具有绝对的权威性,自己曾在多个网站试验过均成功.由于刚才在一个人气比较汪4F网站做测试被封.其实很早就发现这个漏洞了.只是一直没有公布,一直在测试,今天发这个个帖子目的不是教你们怎么去做,只希望引起4F网管的注意!!!
漏洞版本 梦之奇迹注册系统的所有版本!
漏洞原因,由于梦之奇迹的编写者对用户的输入根本没采取什么过滤,只是简简单单的通过提交的表单来限制用户的输入长度,而且对一些最起码的 "'",'='都没有过滤掉,而这个是编程的大忌,现在很多高中生都知道过滤的重要,不知道这样的系统为什么会发布并在网上流传!
拿来源代码一看,整个系统能渗透的地方很多.在usezs.asp中有这么一段
accountname=request.form("username") password=request.form("password") character=request.form("userchr")
if instr(accountname,"")<>0 then response.end if instr(accountname,"=")<>0 then response.end if instr(accountname,"%")<>0 then response.end
if accountname<>"" and password<>"" then
connstrs = "DBQ="+server.mappath(lifedbnames)+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" ...... 他知道对用户提交的名字进行了过滤,单没对用户提交的密码过滤,而直接带入数据库中,大家看: ...... end if
end if
set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from MEMB_INFO where memb___id = "&accountname&" and memb__pwd="&password&""
rs.open sql,conn,1,1
if rs.eof or rs.bof then
response.write ""
response.end
看见了么?我们就可以利用这段代码sql="select * from MEMB_INFO where memb___id = "&accountname&" and memb__pwd="&password&"" 输入一个构造的特殊的语句. 比如 1;select * from character;-- 这样你就可以操作数据库的character表,并可以通过insert,update等命令操作数据库,添加任何你想要的东西,级别,这样任何人都可以当GM了.
希望用 梦之奇迹 注册系统的4F网管注意了!
解决方法很简单.
象上面过滤用户名一样,把用户密码的提交也过滤了 relpace(ddddd, ", )
免责声明:57sf.com登载此文出于传递更多信息之目的,并不意味着57sf.com赞同其观点或证实其描述
|