【代码审计】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 ...
随机推荐
- Android学习之SQLite基础
1.新建MySQLiteHelper类继承自SQLiteOpenHelper public class MySQLiteHelper extends SQLiteOpenHelper { privat ...
- Linux系统中如何校验SHA1和MD5?
来自:系统之家:http://www.xitongzhijia.net/xtjc/20160316/69125.html 我们在网络上下载或在U盘中复制的文件正常来说和源文件是一样的,但有时在下载或拷 ...
- 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理
第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...
- [转]android ANR产生原因和解决办法
ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(AN ...
- 生成基于Maven的项目文档站点
在Maven中,可以使用“mvn site”,为您的项目信息生成文档站点. mvn site 生成的网站是在项目的“target/site”文件夹中. mvn site 示例 请参见通过“mvn si ...
- e815. 监听当前选择的的菜单或菜单项
The currently selected menu or menu item in a JMenu or JPopupMenu is tracked by MenuSelectionManager ...
- Dataguard 主库与备库的Service_Name 不一致时,如何配置客户端TNSName
ORA11G_DG= (DESCRIPTION_LIST= (FAILOVER=on) (DESCRIPTION= (ADDRESS=(PROTOCOL = TCP)(HO ...
- Linux 下 Nginx + JDK + Tomcat + MySQL 安装指南
转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52026342 Nginx 是一款高性能的 http 服务器/反向代理服务器/电子邮 ...
- objelement = event.target || event.srcElement;
objelement = event.target || event.srcElement; function updateProductVideo(e){ e = window.event || a ...
- jsp连接mysql----------第一篇技术类文章
今天做作业连了一天的mysql. 最后我痛定思痛,决定从0開始学习jsp.省的又面临不会的局面. 忙活了一晚上.最终把数据库连接上了,只是.好伤心啊,我连个数据库都这么墨迹. . . <%@ p ...