【代码审计】YUNUCMS_v1.0.6 前台反射型XSS跨站脚本漏洞分析
0x00 环境准备
QYKCMS官网:http://www.yunucms.com
网站源码版本:YUNUCMSv1.0.6
程序源码下载:http://www.yunucms.com/Download/index.html
测试网站首页:

0x01 代码分析
1、漏洞文件位置:/app/index/controller/Tag.php 第1-12行:
- <?php
- namespace app\index\controller;
- use think\Db;
- class Tag extends Common
- {
- public function index(){
- $input = input();
- $input['title'] = urldecode($input['title']);
- 10. $this->assign($input);
- 11. return $this->fetch();
- 12. }
这段函数中接收title参数,进行urldecode处理,然后带入引擎解析,可以发现参数未经任何过滤或处理,直接输出到前端,导致程序在实现上存在XSS跨站脚本漏洞,攻击者通过该漏洞可在页面中插入恶意js代码,获得用户cookie等信息,导致用户被劫持。
0x02 漏洞利用
1、构造链接:
http://127.0.0.1/index.php/index/tag/index?title=1111</title><script>alert(/xss/)</script><title>

0x03 修复建议
1、建议进行全局防护,对部分单点进行过滤;
2、建议对参数做html转义过滤(要过滤的字符包括:单引号、双引号、大于号、小于号,&符号),防止脚本执行。在变量输出时进行HTML ENCODE处理。 PHP应用:可以使用htmlspecialchars对用户参数进行编码 。
安全代码示例:
- <?php
- $aa=$_GET['dd'];
- echo htmlspecialchars($aa)."123";
- ?>
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

【代码审计】YUNUCMS_v1.0.6 前台反射型XSS跨站脚本漏洞分析的更多相关文章
- 【代码审计】711cms_V1.0.5前台XSS跨站脚本漏洞分析
		0x00 环境准备 711CMS官网: https://www.711cms.com/ 网站源码版本:711CMS 1.0.5 正式版(发布时间:2018-01-20) 程序源码下载:https: ... 
- 【代码审计】QYKCMS_v4.3.2 前台存储型XSS跨站脚本漏洞分析
		0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ... 
- 【代码审计】EasySNS_V1.6 前台XSS跨站脚本漏洞分析
		0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/ind ... 
- 【代码审计】LaySNS_v2.2.0 前台XSS跨站脚本漏洞
		0x00 环境准备 LaySNS官网:http://www.laysns.com/ 网站源码版本:LaySNS_v2.2.0 程序源码下载:https://pan.lanzou.com/i0l38 ... 
- 渗透测试学习 十七、 XSS跨站脚本漏洞详解
		一般用途:拿cookie进后台,将后台地址一起发送过来 特点:挖掘困难,绕过困难 大纲: XSS漏洞基础讲解 XSS漏洞发掘与绕过 XSS漏洞的综合利用 XSS漏洞基础讲解 XSS介绍: 跨站脚 ... 
- DWVA-关于反射型xss的漏洞详解<xss reflected>
		反射型xss low级别 代码如下: <?php header ("X-XSS-Protection: 0"); // Is there any input? if( arr ... 
- seacms_6.4.5 前台任意代码执行漏洞分析
		环境搭建 1.下载安装包 下载地址: 链接:https://pan.baidu.com/s/1uw_VnxnvG4GGEae4TRsGGw 密码:cd48 2.常规安装 漏洞复现 poc1: http ... 
- 渗透测试学习 十八、 XSS跨站脚本漏洞详解 续
		XSS平台搭建 ISS+zkeysphp 首先在IIS中新建一个网站,详细过程可以看我之前写搭环境的文章 (下面的写入选项不需要选中) 安装ZKEYS PHP 修改数据库配置 用户名:root 密码: ... 
- 渗透测试学习 十九、 XSS跨站脚本漏洞详解 续2
		二阶注入环境搭建 74cms 3.4 直接将源码放在PHPstudy的www路径下,在地址栏中输入127.0.0.1回车 然后进入网站首页,在填写简历里面存在二阶注入 先注册一个账号 创建简历 前面的 ... 
随机推荐
- 转载:Gitlab备份和恢复操作记录
			转载:Gitlab备份和恢复操作记录 包含了备份和数据恢复的操作记录,实验可行 前面已经介绍了Gitlab环境部署记录,这里简单说下Gitlab的备份和恢复操作记录: 1)Gitlab的备份目录路径设 ... 
- how to generate an analog output from a in-built pwm of Atmega 32AVR microcontrloller?
			how to generate an analog output from a in-built pwm of Atmega 32AVR microcontrloller? you need a re ... 
- Spark:几种给Dataset增加列的方式、Dataset删除列、Dataset替换null列
			几种给Dataset增加列的方式 首先创建一个DF对象: scala> spark.version res0: String = .cloudera1 scala> val , , 2.0 ... 
- 微软BI 之SSIS 系列 - 变量查询语句引起列输出顺序不一致的解决方法
			开篇介绍 这个问题来自于 天善BI社区,看了一下比较有意思,因为我自己认为在 SSIS中处理各种类型文件的经验还比较丰富(有一年的时间几乎所有ETL都跟文件相关),但是这个问题确实之前没有特别考虑过. ... 
- 使用PostgreSQL存储时序数据
			操作系统 :CentOS7.3.1611_x64 PostgreSQL版本 :9.6 问题描述 在InfluxDB中存储时序数据时,当tag值和时间戳都相同时会执行覆盖操作.在PostgreSQL中能 ... 
- list与Set、Map区别及适用场景
			1.List,Set都是继承自Collection接口,Map则不是 2.List特点: 元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放 ... 
- libmongoc关于\$pullAll和\$addToSet的一个使用问题记录
			问题描述及测试结果 在使用mongodb时,对一个document中的数组成员进行更新的时候,可以使用$pull $push $pop $addToSet $pullAll和$each $positi ... 
- 用命令让vbox的虚拟硬盘文件转换成vmware的vmdk
			VirtualBox的生成备份功能只是个系统还原点 这个生成备份功能备份速度非常快,其实它并不是备份,而是相当于xp系统中的建立系统还原点.但是要注意的是如果你的虚拟硬盘文件(***.vdi)在别的V ... 
- B+树索引和哈希索引的区别[转]
			导读 在MySQL里常用的索引数据结构有B+树索引和哈希索引两种,我们来看下这两种索引数据结构的区别及其不同的应用建议. 二者区别 备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BTRE ... 
- Android 使用WebView加载含有Canvas的页面截屏处理
			无法截屏主要原因是webview渲染方式所导致:只需要AndroidManifest.xml中设置属性Android:hardwareAccelerated=”false”. 
