某cms两处全站xss漏洞

2020-03-18 约 82 字 预计阅读 1 分钟

声明:本文 【某cms两处全站xss漏洞】 由作者 爱吃猫的闲鱼 于 2020-03-18 09:55:19 首发 先知社区 曾经 浏览数 164 次

感谢 爱吃猫的闲鱼 的辛苦付出!

1. 前言

在cnvd上看到有人爆了 这款cms的几个sql注入,本想着下载下来复现一下,也算是学习下代码审计,然后下载最新版的发现基本已经被修复了,然后想着能不能找到新的漏洞,最后也就以两处惨淡的xss漏洞收场,大佬勿喷

2.前台反射型xss漏洞

首先给出payload

http://127.0.0.1:81/index.php?a=login&c=member&m=%3Cimg%20src=1%20onerror=alert(1)%3E


从输出形式上来看是没有找到该文件,错误回显导致的问题
首先定位到代码位置 /core/lib/application.class.php文件中的load_controller函数

看到ROUTE_C ROUTE_M 全局搜索,定位到/core/func/basic.fun.php,可以看到传进来的 $var["m"] = ROUTE_M; $var["c"] = ROUTE_C; $var["a"] = ROUTE_A

综上可以看出对通过url传进来的 $m和$filename进行了拼接然后然后去寻找是否存在该路径,并没有对输入的$m和$filename进行过滤直接输出了。

3.后台反射xss漏洞

和前台反射xss类似,只是换了一个调用的函数而已
定位到函数位置:/core/lib/YUNYECMSAdmin.class.php

可以看到是直接拼接了ROUTE_C,也就是url传进来的c参数,这个反射型的xss不论是前台还是后台都是由于直接拼接了url传进来的参数导致的xss

4.前台留言处xss漏洞

url: http://127.0.0.1:81/index.php?a=customform&catid=12

前台增加留言处

XSS payload  <marquee onstart=prompt(1)><marquee>
触发cookie   <input onfocus=prompt(document[`coo`+`kie`])>
此前一直想尝试在xss平台上获取cookie,但是由于过滤了//导致一直没有成功,附上一个不成功的payload,有大佬可以获取cookie,还请不吝赐教
<input onfocus=document.body.appendChild(document[`cr`+`eateElement`](`scr`+`ipt`)).src=http://127.0.0.1`>

首先抓包定位到函数位置为core\app\content\index.php中的formadd()函数,可以看到对传进来的参数都使用了usafestr()函数

在/core/func/core.fun.php定义了该函数 然后跟进到usafestr函数,然后看到过滤了一堆东西

在core\extend\classes\safestring.php中的过滤规则

然后可以看到过滤了很多东西,很高大上,结合模糊测试和白盒审计找到几个没有过滤的可以用来触发xss的,发现基本过滤了onerror alert onmouseover等危险字符,onfocus onstart 可以用

在搜集的xss payload里寻找,找到一个可用的payload

<marquee onstart=prompt(1)><marquee>

在后台可以看下payload形式,是绕过了xss过滤的

触发点在点击删除的时候的确认提醒处

然后在F12查看源代码

5.后台xss漏洞

后台的可触发XSS比较鸡肋,但是如果只是拥有了一个低权限的账户,同时具有写留言的功能,能获取到高权限的cookie,这样就不显的那么鸡肋了
还是以后台的留言处为例

url:http://127.0.0.1:81/admin.php?c=content&a=customform_add&usv_ixIW=egksuBNTW6

跟进到\core\admin\content.php函数中的customform_add() 函数,只对传入进来的catid进行了usafestr过滤,并没有对其他进行过滤,然后payload可以随便写

关键词:[‘安全技术’, ‘漏洞分析’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now