CVE-2020-22394 YzmCMS XSS漏洞复现


YzmCMS V5.5存在XSS跨站脚本漏洞,在编辑会员投稿的时候可触发。

XSS漏洞:恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

复现环境

kali,php7.4.11,mariadb10.5.8,apache2.4.46

环境搭建

我这里使用了apache2。首先需要开启伪静态。

$ a2enmod rewrite
$ vim /etc/apache2/apache2.conf
将/var/www/html字样下面的AllowOverride None替换为AllowOverride all
$ systemctl restart apache2

将YzmCMS文件夹下的内容复制到/var/www/html目录(或者是自定义的apache2目录)下,浏览器访问http://localhost/yzmcms(这里的yzmcms替换为相应文件夹的名字),正常情况下会进入安装界面,点击开始安装。

注意:我之前尝试了好几次安装,但都没有成功,后来查到可能需要将www/目录及其子目录、子文件的权限更改为最高,即chmod 777 -R /var/www/,我尝试了一下发现安装成功了。

在安装过程的第二步可能会出现一些问题,如果是文件权限问题,则使用chmod命令更改文件目录权限;如果上面curl扩展库哦提示未启动,则输入apt install php-curl安装php的curl扩展库。之后可能会发现无法进入下一步,需要更改上面的url,将step=2改为step=3,只要检测通过,这一步不会做任何实际性操作(至少我没发现做什么了,而且后面安装也不影响)。

需要先开启数据库,并创建一个名字为yzmcms的数据库。其他信息随意填。填写完成后点击创建数据,就会进行安装。

安装成功后,根据提示进入后台管理。如果出现以下界面,说明是真的安装成功了。验证码无法加载是因为PHP扩展GD库未开启,输入apt install php-gd可安装,安装后需要重启。默认用户名和密码均为yzmcms。

登录成功。

漏洞复现

在会员管理界面创建一个会员账户。

访问/member/index/login.html,登录会员账户。

登录后,点击左侧栏最上面的“在线投稿”,在里面随便填写一点内容,然后提交。提交成功后,选择该稿件点击编辑,然后打开BurpSuite抓取编辑稿件提交的包(注意:不是抓取新建稿件提交的包,两个包并不相同,根据url可以区分)。

将该包发送到reapter,然后删除最后一行content=后面的内容,改为xss的payload,比如<img+src%3d1+onpointerout%3dalert(1)>,发送。(Proxy中抓到的包已经可以放行了)

然后再次进入该稿件的编辑界面,会发现在内容栏中输入的字符串不见了,取而代之的是一个损坏图片的图标。当鼠标滑过该图标时,将触发xss。也可以使用其他的payload,产生的效果也会有不同。

参考链接


文章作者: 恰醋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 恰醋 !
评论
  目录