彻底分析良精企业通用建站系统

2010, April 8, 9:56 AM. 漏洞分析
Submitted by admin

注:转载请标明 んㄗ葑訫鎖愛'Blog www.virusest.com
大家好,上次给大家分析了良精企业网站建站系统,分析的比较浅,今天给大家一次深入的分析!我就以良精通用企业建站系统v2009做分析!

一,SQl注入漏洞

1,典型的Cookies注入

漏洞文件:Shownews.asp

问题代码:id=cstr(request("id"))
Set rsnews=Server.CreateObject("ADODB.RecordSet")
sql="update news set hits=hits+1 where id="&id
conn.execute sql
sql="select * from news where id="&owen
rsnews.Open sql,conn,1,1
title=rsnews("title")
if rsnews.eof and rsnews.bof then
response.Write("数据库出错")

很明显,id参数没有经过过滤直接代入数据库查询,其中cstr只是将数值型转换成字符型,但是直接输入注语句会提示出错,因为头文件包含Error processing SSI file
防注入系统,但它只对Get和Post过滤,却没有对Cookies过滤,这样就可以进行Cookies注入了,具体方法可以用注入中转或者GreenBrowser自带的Js插件,我就不多说了,详细步骤可以看我以前的文章。

2,字符型注入

漏洞文件:UserEditPwd.asp
问题代码:Action=trim(request("Action"))
UserName=trim(request("UserName"))
if Action="" and session("UserName")="" then
response.redirect "UserServer.asp"
end if
if Action="Modify" and UserName<>"" then
Set rsUser=Server.CreateObject("Adodb.RecordSet")
sqlUser="select * from [User] where UserName='" & UserName & "'"
rsUser.Open sqlUser,conn,1,3
显然username只过滤了空格边代入数据库查询。这是字符型的注入,而且程序员很配合的没有使用防注入系统,注入就产生了。由于用了session验证,利用时首先注册一用户,我就以用户shaun为例,注入语句如下:http://localhost/UserEditPwd.asp?Action=Modify&UserName=shaun' and '1'='1;
http://localhost/UserEditPwd.asp?Action=Modify&UserName=shaun' and '1'='2;

3,搜索型注入

漏洞文件:News_search.asp
问题代码:key=Trim(request("key"))
otype=Trim(request("otype"))
BigClass=request("BigClass")
省略部分代码
Set rs= Server.CreateObject("ADODB.Recordset")
if otype="title" then
sql="select * from news where title Like '%"&key&"%' order by id desc"
else
sql="select * from news where content Like '%"&key&"%' order by id desc"
end if
rs.open sql,conn,1,1

可以看到,key未经过过滤就进行了数据库查询,因此造成了搜索型注入,
注入语句参考:
http://localhost/News_search.asp?otype=title&Submit=搜索&key=1%' and 1=1 '%'='
http://localhost/News_search.asp?otype=title&Submit=搜索&key=1%' and 1=2 '%'='

二,跨站漏洞

漏洞文件:FeedbackSave.asp
问题代码:Add=trim(request.form("Add"))
Postcode=trim(request.form("Postcode"))
Mobile=trim(request.form("Mobile"))
Fax=trim(request.form("Fax"))
email=trim(request.form("email"))
Language=trim(request.QueryString("Language"))
省略部分代码
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from Feedback"
rs.open sql,conn,1,3
省略部分代码
rs("CompanyName")=trim(request.form("CompanyName"))
rs("Add")=Add
rs("Postcode")=Postcode
rs("Receiver")=trim(request.form("Receiver"))
rs("Phone")=trim(request.form("Phone"))
rs("Mobile")=Mobile
rs("Fax")=Fax
rs("email")=email
rs("title")=trim(request.form("title"))
rs("content")=htmlencode2(request.form("content"))
rs("Publish")=trim(request.form("Publish"))
if Language="ch" then
rs("Language")="0"
else
rs("Language")="1"
end if
rs("time")=date()
rs.update
rs.close

这里Add,Postcode,Mobile,Fax,email等均没有进行过滤,可以再主题和Email那里填写代码,



三,上传漏洞,

漏洞文件:upfile_Other.asp
问题代码:fileExt=lcase(file.FileExt)
Forumupload=split(UpFileType,"|")
for i=0 to ubound(Forumupload)
if fileEXT=trim(Forumupload(i)) then
EnableUpload=true
exit for
end if
next
if fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" then
EnableUpload=false
end if
if EnableUpload=false then
'msg="这种文件类型不允许上传!\n\n只允许上传这几种文件类型:" & UpFileType

这个是大家很常见的上传漏洞,可以上传php文件或者本地提交加空格绕过过滤,我就不多说了。

至此,良精的这套系统就分析到这了,网上的许多企业网站系统也都借用了这套系统的源码,漏洞如出一辙,大家自己去发掘吧!

Tags: 良精

« 上一篇 | 下一篇 »

只显示10条记录相关文章
良精微博系统上传漏洞 (浏览: 12503, 评论: 0)
良精所有产品通杀 (浏览: 8694, 评论: 0)
良精企业管理系统注入漏洞 (浏览: 13133, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):