发布时间:2014-08-13 15:58:32作者:知识屋
本文可以在此和作者交流:
红黑联盟
今天在中国站长网发现一个今天更新的程序,这程序是2009-12-10 13:05:53一点钟更新的,到我现在写这文章为止20.15分已经有云起企业建站系统CommonSite下载地址(已被下载8699次) 那么大的下载量了,我觉得这程序应该可以吧,后初步分析一下,这程序问题较大,
下面是该程序下载地址
一.后台登陆
我们来看management目录的login.asp文件
<%
if request.Form("submit")<>"" then
if request.Form("userid")="" or request.Form("password")="" then
response.Write("<script language=javascript>alert(用户名或者密码不能为空!);history.back();</script>")
response.end
end if
set rs=conn.execute("select * from gly where uid="&trim(request.form("userid"))&" and pwd="&trim(request.form("password"))&"")
是不是程序员写程序写错了???只用trim函数过滤了空格,然后后面写的“&"")”这个啥意识?,可能程序员本是要用replace函数替换"但是没写这个函数,这样一来就直接出现了从客户端传递过来的数据,直接带入数据库查询了,这样我们就可以用or=or登陆了.
二.暴库漏洞
我们来看该程序的数据库链接文件。
文件的路径在inc目录下文件名为conn.asp,还有个文件名为webconn.asp
两个文件代码是一样的,我们来看看代码
<%
db="../data/#CommonSite.asp" 数据库
on error resume next 尝试连数据库,一直到超时,但可以加强SQL注入过滤
connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(db)
connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
<!--#include file="config.asp"-->
看见没有,虽然程序里面有on error resume next这句容错语句,但是前面居然用注释掉了,这句话就没有起作用了这样还是造成暴库了
三.跨站漏洞,这程序很多地方有跨站漏洞
我随便找出一个给大家看看我们来看后台的basic.asp文件,这文件在management目录下这文件作用是修改网站基本信息,如标题等
我们来看其中的一段代码
if trim(request("do"))="edt" then
m_site_name = trim(request("site_name"))
m_keyword = trim(request("keyword"))
m_description = trim(request("description"))
m_copyright = trim(request("copyright"))
m_tel = trim(request("tel"))
conn.execute("update basic set site_name="&m_site_name&",keyword="&m_keyword&",description="&m_description&",copyright=
"&m_copyright&",tel="&m_tel&" where id=100")
response.Write("<script language=javascript>alert(修改成功);window.location.href=basic.asp;</script>")
response.End()
end if
看见没有,只用trim函数过滤了空间就直接带入数据库进行修改操作了
所以这样我们只要插入代码就可以跨站了如<script>alert("fsfs")</script>
下面是演示效果
总结,这程序在安全方面做的太垃圾,看出该程序员对脚本安全并不在行,整个程序只有注入上做了一些防范措施,我们来看下面一段程序
if isnumeric(trim(request("c")))=false then
response.write("Id Err!")
response.End()
end if
用了isnumeric函数进行防注入,这招够狠的,呵呵完全杜绝了注入呵呵!!我这次初步分析了这程序,下次我会进一步分析,谢谢观看
转载请加入链接通明博客
本人QQ:452879303欢迎喜欢研究脚本安全的朋友加我!欢迎在搜索我发布的其他原创文章!
2011-06-17
电脑开机时出现lass.exe进程是病毒吗?
自拍须谨慎!教你如何通过照片定位查看拍摄地点
电脑病毒最基础知识
黑客学员必须了解的C语言技术
精典详细内网渗透专题文章
教你破解Tp-Link的无线路由密码
解决SecureCRT中文显示乱码
QQ电脑管家和360哪个好?横评实测对比
攻防实战:无线网络路由入侵过程