【代码审计】eduaskcms_v1.0.7前台存储型XSS漏洞分析
0x00 环境准备
eduaskcms官网:https://www.eduaskcms.xin
网站源码版本:eduaskcms-1.0.7
程序源码下载:https://www.eduaskcms.xin/download/show/5.html
默认后台地址:http://127.0.0.1/public/run/user/login.html
默认账号密码:eduask/eduask
测试网站首页:
0x01 代码分析
1、 漏洞文件位置:/eduaskcms/app/home/controller/Feedback.php
2、 public function show()
3、 {
4、 if ($this->request->isPost() /*&& $this->Form->check_token()*/) {
5、
6、 //if(captcha_check(input('post.captcha'))){
7、 $this->Form->data[$this->m]['truename'] = trim($this->Form->data[$this->m]['truename']);
8、 $this->Form->data[$this->m]['mobile'] = trim($this->Form->data[$this->m]['mobile']);
9、 $this->Form->data[$this->m]['title'] = /*$this->Form->data[$this->m]['title'] ? */trim($this->Form->data[$this->m]['title'])/*:menu($this->args['menu_id'],'title')*/;
10、 $this->Form->data[$this->m]['user_id'] = $this->Auth->user('id');
11、 $this->Form->data[$this->m]['ip'] = $this->request->ip();
12、 $this->Form->data[$this->m]['menu_id'] = intval($this->args['menu_id']);
13、
14、 $rslt = $this->mdl->isUpdate(false)->save($this->Form->data[$this->m]);
15、 if ($rslt) {
16、 return $this->message('success','恭喜你!留言成功!');
17、 } else {
18、 $this->assign->error = $this->mdl->getError();
19、 }
20、 //}else{
21、 $this->assign->error[] = '验证码填写错误';
22、 //}
23、 }
这段函数获取参数后,并未对参数进行任何处理,直接保存到数据库中,导致程序在实现上存在存储型XSS跨站脚本漏洞,攻击者通过该漏洞可在页面中插入恶意js代码,获得用户cookie等信息,导致用户被劫持。
0x02 漏洞利用
1、安装完CMS,首页是空白的,需要自己添加测试数据,我们来添加一个留言页面。
2、在首页添加留言,提交xss Payload:
3、当管理员查看后台时,触发js脚本。
0x03 修复建议
1、建议进行全局防护,对部分单点进行过滤;
2、建议对参数做html转义过滤(要过滤的字符包括:单引号、双引号、大于号、小于号,&符号),防止脚本执行。在变量输出时进行HTML ENCODE处理。 PHP应用:可以使用htmlspecialchars对用户参数进行编码 。
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。
【代码审计】eduaskcms_v1.0.7前台存储型XSS漏洞分析的更多相关文章
- 【代码审计】iZhanCMS_v2.1 前台存储型XSS漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- 【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- Java Web开发 - 持久型/存储型XSS漏洞
Java Web开发 - 持久型/存储型XSS漏洞 1.什么是XSS漏洞攻击? XSS是跨站脚本攻击(Cross Site Scripting)的简称,之所以叫XSS而不是CSS相比大家都能明白了吧, ...
- 【代码审计】QYKCMS_v4.3.2 前台存储型XSS跨站脚本漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 74CMS 3.0 存储型XSS漏洞
一. 启动环境 1.双击运行桌面phpstudy.exe软件 2.点击启动按钮,启动服务器环境 二.代码审计 1.双击启动桌面Seay源代码审计系统软件 2.因为74CMS3.0源代码编辑使用GBK编 ...
- 存储型XSS靶场作业
首先进入靶场:http://59.63.200.79:8082/index.php xss平台使用:xss8c 发现CMS版本号,搜索是否此版本号存在可利用漏洞: 找到存储型xss漏洞,在xss平台生 ...
- DVWA之Stored XSS(存储型XSS)
目录 Low Medium High Impossible Low 源代码: <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $m ...
- 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚
首先本地搭建环境,我所使用的是Windows PHPstudy集成环境.使用起来非常方便.特别是审计的时候.可以任意切换PHP版本. 本文作者:226safe Team – Poacher 0×01 ...
- 74CMS3.0储存型XSS漏洞代码审计
发现一个总结了乌云以前代码审计案例的宝藏网站:https://php.mengsec.com/ 希望自己能成为那个认真复现和学习前辈们思路的那个人,然后准备慢慢开始审计一些新的小型cms了 骑士cms ...
随机推荐
- minerd
云服务器 ECS Linux 异常进程 minerd 导致系统 CPU 跑满 问题现象 云服务器 ECS Linux 服务器 CPU 跑满,或者使用服务器越来越慢. 问题原因 使用 top 命令看到有 ...
- ThinkPHP使用memcache缓存服务器
(1)Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件. 服务器装了memcached后想给更改成memecache方式 在Conf/config.p ...
- java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Date
架构使用jsp+servlet+java+mysql mysql里time字段类型为datetime java实体类中该字段类型为Date 页面中,时间字段类型为空的信息显示不出来,且报错信息如下: ...
- JAVA组成原理及使用方法编辑环境及实现过程
JAVA组成原理一.由四方面组成:1.Java编程语言2.Java类文件格式3.Java虚拟机4.Java应用程序接口 当编辑并运行一个Java程序时,需要同时涉及到这四种方面.二.使用文字编辑软件: ...
- lua------------------Unity3D研究院编辑器之打开unity不可识别的文件(十三)
Unity3D研究院编辑器之打开unity不可识别的文件(十三) 雨松MOMO [Unity3D拓展编辑器] 围观8597次 9 条评论 编辑日期:2017-03-02 字体:大 中 小 有些特殊 ...
- Office在线预览及PDF在线预览的实现方式
原文链接:http://www.officeweb365.com/officetoview.html 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office ...
- phpmyadmin配置文件权限错误,不应任何用户都能修改
访问phpmyadmin提示“配置文件权限错误,不应任何用户都能修改” 原因:phpmyadmin目录权限过高,设置了777访问权限 解决: $ phpmyadin 转自: http://www.it ...
- XAMPP permissions on Mac OS X
$ cd /Applications $ XAMPP/ 注意: 改变的是XAMPP目录,而不是htdocs ref: http://stackoverflow.com/questions/904697 ...
- Vue 404页面处理
问题原因: 刷新页面时访问的资源在服务端找不到,因为vue-router设置的路径不是真实存在的路径 解决方案: 第一步:后端配置 Apache <IfModule mod_rewrite.c& ...
- spring cloud feign 上传文件报not a type supported by this encoder解决方案
上传文件调用外部服务报错: not a type supported by this encoder 查看SpringFormEncoder类的源码: public class SpringFormE ...