通明;红色黑客联盟 www.2cto.com 原创作品转载请注明
本文可以在此和作者交流:http://bbs.2cto.com/read.php?tid=94372
我网上的某个朋友给我一个他的网址导航网站,叫我帮他宣传宣传,我看他这站满强大地,比hao123等网站多了许多实用功能,我想他这程序应该很安全把,朋友把程序打包给我后,我检测了一下,程序发现一些超低级的漏洞,请大家往下看
登陆验证漏洞,这程序有个用户登陆的地方,在这地方因为登陆不严格导致出现"or=or漏洞我们来看源码
登陆地址为http://nihao188.com/user/login.htm我们来看他的处理表单文件login.asp代码
<%dim pw,vtime,myname //定义三个变量
myname=trim(request("username")) //通过request对象接受客户端发来的帐号,程序员编写不严谨,不定义是用具体哪方法来接受,而且只过滤了空格
pw=md5(trim(request("pw")),16) //这代码一样,也只过滤了空格
vtime=request("vtime")
set rs=server.createobject("adodb.recordset")
rs.open"select * from my_user where username="&myname&" and password="&pw&"",conn,1,3
//直接带入数据库查询了
以下略------------------
我在这段代码后面加上注释,方便大家看
通过上面的代码大家看懂了把,直接用or=or登陆
这是一个漏洞,在首页里面有个新站登陆,这是提交用户新站的页面,在这个页面有跨站漏洞,在后台就可以显示用此漏洞我们可以得到cookie等信息,甚至挂马!!!
我们来看看这页代码
地址为http://www.nihao188.com/url.html
处理文件为url.asp文件
set rs=server.createobject("adodb.recordset")
Login_UrlNmae=Request.Form("webname")
Login_Url=Request.Form("weburl")
Login_Class=Request.Form("webtype")
alexa=Request.Form("alexa")
Login_Email=Request.Form("email")
qq=Request.Form("qq")
friend=Request.Form("friend")
Login_Menu=Request.Form("Login_Menu")
if Login_Menu="Add" then
rs.open"select * from Login where Login_Url="&Login_Url&"",conn,1,3
if not rs.eof and not rs.bof then
Response.Write("<script language=javascript>alert(贵站已提交过,请不要重复提交!);this.location.href=/;</script>")
Response.End()
end if
rs.close
rs.open"select * from Login",conn,1,3
rs.addnew
rs("Login_UrlNmae")=Login_UrlNmae
rs("Login_Url")=Login_Url
rs("Login_Class")=Login_Class
rs("alexa")=alexa
rs("Login_Email")=Login_Email
rs("qq")=qq
rs("friend")=friend
看上面代码看出上面没做任何过滤就直接带入数据库查询
在主页有个网友留言那一样有跨站漏洞
地址:http://www.nihao188.com/quality.html
代码为
Message=trim(request("requireddescription"))
if Message="" then
Response.write"<SCRIPT language=JavaScript>alert(请提出您对nihao188网址导航的意见和建议!);"
Response.write"javascript:location.replace(/)</SCRIPT>"
else
Set rsAdd = Server.CreateObject("ADODB.Recordset")
sql="select * from Message"
rsAdd.open sql,conn,1,3
rsAdd.addnew
rsAdd("Message")=Message
rsAdd("date")=now()
rsAdd.update
rsAdd.close
response.write"<SCRIPT language=JavaScript>alert(您的留言已经提交!感谢您对本站的支持!);"
response.write"javascript:location.replace(/)</SCRIPT>"
response.end
只过滤了空格!!!
所以这程序安全性还是很有问题
最后我宣传宣传该站
2009最火爆的网址之家,网址导航,网址大全,实用网址一网打尽
大家来捧场,请转载本文章时加上通明博客链接:http://hi.baidu.com/tongming133