梦之奇迹注册网页漏洞+解决方法
发的第一个帖子,相信具有绝对的权威性,自己曾在多个网站试验过均成功.由于刚才在一个人气比较汪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 "<script language=javascript>alert(\n\n帐号信息错误,请重新填写!);history.back()</script>"
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, ", )
商业完整版游戏发布站程序免费下载:www.98youx.com
漏洞 梦之注册系统的所有!
漏洞原因,由于梦之的编写者对用户的输入根本没采取什么过滤,只是简简单单的通过提交的表单来限制用户的输入长度,而且对一些最起码的 "'",'='都没有过滤掉,而这个是编程的大忌,现在很多高中生都知道过滤的重要,不知道这样的系统为什么会发布并在网上流传!
拿来源代码一看,整个系统能渗透的地方很多.在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 "<script language=javascript>alert(\n\n帐号信息错误,请重新填写!);history.back()</script>"
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, ", )
商业完整版游戏发布站程序免费下载:www.98youx.com
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论