WordPress 4.8中的跨站点脚本(XSS)

Admin 2020-04-22 126人围观 ,发现0个评论 WordPressWordPress跨站脚本WordPress漏洞xss跨站

跨站点脚本或XSS是Web应用程序中常见的安全漏洞。基本上,它允许攻击者在网站访问者的浏览器中执行潜在的恶意脚本代码。


跨站点脚本或XSS是Web应用程序中常见的安全漏洞。基本上,它允许攻击者在网站访问者的浏览器中执行潜在的恶意脚本代码。

这个漏洞已经存在了几十年,近年来一直在增长。根据HackerOne的说法,XSS仍然是主要的威胁媒介。随着新Web技术的不断发展,更容易迁移到这个漏洞上。


关于WordPress中的漏洞


不久前,WebARX安全研究人员Luca做了WordPress4.8的研究,他发现$file_Description和$Description没有过滤wp-admin/hem-Editor or.php中模板的名称,使得攻击者能够执行XSS攻击。这是漏洞的完整记录,以及如何发现该漏洞。


从这段代码中,我们可以看到$file_Description=get_file_Description($filename);正在声明代码,然后在页面上的<;li><a>标记下打印模板名。<;?phpecho$file_Description;?></a></li>


$file_Description变量在显示给用户之前应该被过滤。例如,使用htmlSpecialchars()特性。


如果受害者单击包含XSS的有效内容的文件,XSS将因为$Description=get_file_Description($Relative_file)而被执行;它将显示此人正在编辑的活动文件的名称。

$file_description = get_file_description( $filename );
if ( $filename !== basename( $absolute_filename ) || $file_description !== $filename ) {$file_description .= '<br /><span class="nonessential">(' . $filename . ')</span>';
}
if ( $absolute_filename === $file ) {
$file_description = '<span class="highlight">' . $file_description . '</span>';
}
$previous_file_type = $file_type;
?>
<li><a href="theme-editor.php?file=<?php echo urlencode( $filename ) ?>&theme=
<?php echo urlencode( $stylesheet ) ?>"><?php echo $file_description; ?></a></li>
<?php
endforeach;
?>


那么,如果我们在模板名之后插入XSS工作负载怎么办:?

WordPress 4.8中的跨站点脚本(XSS) Web安全 第1张


大奖!

WordPress 4.8中的跨站点脚本(XSS) Web安全 第2张



按照步骤

转到外观>编辑器

选择要编辑的文件(不要选择已经具有名称的文件,例如Archives,Theme Footer)。Luka使用了“ back-compat.php”

在文件的最上方添加以下注释: /* Template Name: <script>confirm(document.cookie);</script> */

手动单击更新文件。

将提示XSS Popup。

大多数流行和现代的Web开发框架都使用现成的XSS保护随附的模板引擎。他们还为开发人员提供了允许执行脚本代码的选项,这就是发生XSS的地方。WordPress是一个不错而且很有有用的CMS,在市场上很少有他的竞争对手


已按照负责的披露政策向WordPress团队报告了此Web安全漏洞。在4.8.2版中对其进行了修补。

寻找XSS的初学者有四个简略的过程:

在进行任何测试之前,请确保您了解它的作业原理和功用。


其时只关注一个组件,例如WordPress模板


找出动态零件的来源(您能够与它们互动吗?)示例:模板称号


输入有用负载,查看它们是否在实践代码中出现。


在开放源代码项目中寻找错误时,了解其代码将是一大优势。具有杂乱的代码也对安全研讨人员有利。如果很难阅览,则有必要很难维护。

请发表您的评论
请关注微信公众号
微信二维码
不容错过
Powered By 蚁人博客