网站开发工具推荐创新的网站建设公司排名
网站开发工具推荐,创新的网站建设公司排名,做网站营业范围,视频网站开发应用到哪些技术原作者#xff1a; Ziyahan Albeniz在2019年3月13日#xff0c;专注于静态代码分析软件的RIPS科技公司发布了他们在所有版本的WordPress 5.1.1中发现的跨站点脚本(XSS)漏洞的详细信息。该漏洞已在不同类别的各种网站上公布。有些人将其归类为跨站点请求伪造(CSRF)漏洞#x…原作者 Ziyahan Albeniz在2019年3月13日专注于静态代码分析软件的RIPS科技公司发布了他们在所有版本的WordPress 5.1.1中发现的跨站点脚本(XSS)漏洞的详细信息。该漏洞已在不同类别的各种网站上公布。有些人将其归类为跨站点请求伪造(CSRF)漏洞而其他人则将其正确归类为XSS。在本文中我们将分析此WordPress XSS漏洞(编号为CVE-2019-9887)该漏洞导致远程执行代码(RCE)漏洞。WordPress的Pingback和Trackback功能在WordPress中nonce需要一个值来防止CSRF攻击。这是一个随机值在每个请求中都会更改并且只有服务器和用户的浏览器才知道。但是nonce自2009年以来WordPress中的评论部分没有使用过值。这是因为WordPress开发人员做出了两个设计决策限制了安全令牌的正确实现以防止CSRF攻击。WordPress中的pingback和trackback功能要求缺少nonce值才能正常运行pingback功能通知博客他们的文章已从某人的帖子链接。这增加了在其搜索引擎优化中使用反向链接方法在任何搜索引擎上的网站评级。当博主链接到不是使用WordPress构建的网站时会使用引用功能。 WordPress中评论的过滤当攻击者设法重定向经过身份验证的WordPress管理员用户以访问攻击者控制的网站时他们可以代表此管理员用户提交表单以便在用户名称的博客上发布评论。除了WordPress开发人员之外任何人都认为这将是一个严重的漏洞。但是如果要避免破坏pingback则行为是绝对必要的。为了最小化表单提交代表管理员的影响他们实现了一般不会阻止CSRF的nonce。如果设置了正确的现时(如果管理员使用实际表单发布评论)则评论中的HTML代码不会像表单提交是CSRF的结果那样严格过滤。因此如果管理员帐户发出的评论请求中没有nonce令牌WordPress会使用nonce值_wp_unfiltered_html_comment_disabled来检查是否应该从HTML标签中清除评论。分析WordPress的有缺陷的过滤机制RIPS Technologies的一名工程师在静态代码分析期间发现了/wp-includes/comment.php文件中检测和清理机制的缺陷。这是与缺陷相关的代码块。if ( current_user_can( unfiltered_html ) ) { if (! wp_verify_nonce( $_POST[_wp_unfiltered_html_comment], unfiltered-html-comment )) { $_POST[comment] wp_filter_post_kses($_POST[comment]); }}else { $_POST[comment] wp_filter_kses($_POST[comment]);}根据代码如果当前用户没有权限unfiltered_html则注释文本wp_filter_kses将从其中的HTML元素定向到要清理的函数。由于攻击请求将通过登录管理员帐户的浏览器发送并且管理员帐户具有权限unfiltered_html因此代码的缺陷从第一个if语句开始。在第一个条件语句中如果未验证nonce令牌则注释文本将通过一个名为的另一个函数wp_filter_post_kses来清理输入。职能部门之间的主要区别wp_filter_kses并wp_filter_post_kses是wp_filter_kses删除所有的意见除了基本的HTML标签如href属性和锚标记。该wp_filter_post_kses函数清理所有潜在风险的HTML标记但它比wp_filter_kses函数更宽松。使用HTML标签绕过清理RIPS科技公司的工程师发现HTML元素和属性的清理过程存在一个重大缺陷。一旦评论被清理属于标签的属性通过将它们解析为关联数组而针对SEO目的进行优化。例如如果带有标记的属性是href# relnofollow则字符串将被解析为一个数组其中每个属性名称都是键function wp_rel_nofollow_callback( $matches ) { $text $matches[1]; $atts shortcode_parse_atts($matches[1]); ⋮完成此转换后您可以使用以下方式访问href锚标记的功能$atts[href]。接下来WordPress检查注释中的锚标记是否具有该rel属性。重要的是要注意rel锚元素中的属性只有在评论者拥有管理员帐户时才能存在。该wp_filter_kses函数不允许此属性; 该wp_filter_post_kses函数的作用。 if (!empty($atts[rel])) { // the processing of the rel attribute happens here ⋮ $text ; foreach ($atts as $name $value) { $text . $name . . $value . ; } } return ;}使用WordPress漏洞插入XSS Payload如上面以粗体显示的代码行所示连接的字符串值不会以任何方式进行清理。如果攻击者将以下title属性添加到注释中的锚标记则可能会滥用此功能的性质。 onmouseoveralert(1) id 处理后代码行将变为以下内容(注意双引号)希望利用此漏洞的恶意用户必须欺骗具有管理员权限的用户访问将触发和执行有效负载的页面。此时发送具有XSS有效负载的注释请求。为了进行秘密攻击并在提交表单时避免顶级导航表单的响应将定向到具有display:nonetarget属性中指定的样式的隐藏iframe 。最后管理员浏览器将查看带有XSS有效负载评论的博客文章以确保攻击完成。执行攻击后将通过管理面板编辑模板文件。然后攻击者可以执行PHP代码注入并将此XSS攻击转换为远程执行代码(RCE)。修复WordPress中的漏洞如果您使用WordPress解决此问题的最快速最简单的方法是更新到修复漏洞的5.1.1版。此外Netsparker报告任何使用过时WordPress版本的扫描网站并显示当前版本的相关漏洞。这是一个这样的报告的例子。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92493.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!