主题:管理员注意了-网上出现论坛注册机
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
/**
*
* @author vlinux
*/
public class AutoRegister {
/**
* 发送请求到目的站点
* site 目的站点
* port 目的端口
* content 发送的内容
* 发送成功返回true,但是不保证一定能在业务逻辑上的成功,仅仅是发送过去了而已
* 发送失败,比如找不到服务器等就返回false
*/
public boolean sendRegister(String site, int port, String content) {
boolean result = false; //返回
Socket socket = null;
try{
/*
* 与对方站点建立连接
*/
socket = new Socket(site,port);
PrintWriter pw = new PrintWriter( socket.getOutputStream() );
/*
* 发送信息
*/
pw.write( content );
pw.flush();
/*
* 到这一步发送成功,返回true
*/
result = true;
} catch (IOException ioe) {
/*
* 如果发送过程中出现意外则返回false
*/
result = false;
} finally {
/*
* 不管是否发送成功,我们都得关闭连接
*/
try {
socket.close();
} catch (IOException ex) {
/*
* 关闭连接的时候发生异常
*/
ex.printStackTrace();
}
return result;
}
}
/**
* 从文件中获取注册时候的Http Header
*/
public String getRegisterHttpHeader(String headerFilename) throws FileNotFoundException {
/*
* 因为找不到文件是不可修复的异常,
* 所以继续抛出
*/
BufferedReader br = new BufferedReader( new FileReader( new File(headerFilename) ) );
StringBuffer sb=new StringBuffer();
try {
while(br.ready()){
sb.append( br.readLine()+"\n" );
}
} catch (IOException ex) {
/*
* 这里在这里软件中不会有异常抛出
* 所以就让异常死在这里了
*/
//ex.printStackTrace();
}
return sb.toString();
}
/**
* 注册用户
* username 帐号名和密码
* site 被注册的站点
* port 该站点web服务的端口号,一般是80
*/
public void register( String username, String site, int port ) throws FileNotFoundException {
/*
* 因为找不到文件是不可修复的异常,
* 所以继续抛出
*/
String header = getRegisterHttpHeader("programfan_hacker_register.txt");
/*
* @替换字符串中的帐号和密码
* 我在抓FireFox2.0发出去的Http Header的时候用户名和密码贪图省事都是一样的
* 都是vlinuxGXU1,所以这里也全部都替换成为一样的,呵呵。
*/
header = header.replaceAll("vlinuxGXU1",username);
/*
* 开始注册
*/
if( sendRegister(site,port,header) == true ) {
System.out.println( "注册成功,用户名称:"+username+",密码:"+username );
} else {
System.out.println( "注册"+username+"失败." );
}
}
/**
* 主方法
* @author vlinux
*/
public static void main(String... args) {
AutoRegister ar = new AutoRegister();
try {
/**
* 帐号和密码都是 knockerkao
* 当然,当你看到这个代码的时候knockerkao早就被我注册了
* 对了,顺便提醒一句,你起的帐号名必须要超过7个字符以上
* 否则会和我的 Content-Length: 256 对不上
* 因为你至少要超过这个数字才能正确被服务器识别
*/
ar.register("knockerkao","www.programfan.com",80);
} catch (FileNotFoundException ex) {
System.out.println( "找不到文件: "+ex.getMessage() );
}
}
}
POST http://www.programfan.com/user/saveuser.asp?action=person HTTP/1.1
Host: www.programfan.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1) Gecko/20061023 SUSE/2.0-30 Firefox/2.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://www.programfan.com/user/register.asp
Cookie: style=1; ASPSESSIONIDQATDRQTQ=KEDFEAFBAMMDEGCDPABJGDJB; userid=; username=
Content-Type: application/x-www-form-urlencoded
Content-Length: 256
username=vlinuxGXU1&password=vlinuxGXU1&repassword=vlinuxGXU1&name=vlinuxGXU1&sex=%C4%D0&email=vvv%40gxu.edu.cn&question=vlinuxGXU1&answer=vlinuxGXU1&city=%C9%CF%BA%A3&year=1920&month=1&day=1&qq=&website=&address=&zipcode=&phonenumber=&Submit=%C8%B7+%B6%A8
出处:http://bbs.bc-cn.net/dispbbs.asp?boardID=8&ID=115823&page=1
不知道管理员怎么看........
个人觉得登入的时候应该有验证码,可能会有效果
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
/**
*
* @author vlinux
*/
public class AutoRegister {
/**
* 发送请求到目的站点
* site 目的站点
* port 目的端口
* content 发送的内容
* 发送成功返回true,但是不保证一定能在业务逻辑上的成功,仅仅是发送过去了而已
* 发送失败,比如找不到服务器等就返回false
*/
public boolean sendRegister(String site, int port, String content) {
boolean result = false; //返回
Socket socket = null;
try{
/*
* 与对方站点建立连接
*/
socket = new Socket(site,port);
PrintWriter pw = new PrintWriter( socket.getOutputStream() );
/*
* 发送信息
*/
pw.write( content );
pw.flush();
/*
* 到这一步发送成功,返回true
*/
result = true;
} catch (IOException ioe) {
/*
* 如果发送过程中出现意外则返回false
*/
result = false;
} finally {
/*
* 不管是否发送成功,我们都得关闭连接
*/
try {
socket.close();
} catch (IOException ex) {
/*
* 关闭连接的时候发生异常
*/
ex.printStackTrace();
}
return result;
}
}
/**
* 从文件中获取注册时候的Http Header
*/
public String getRegisterHttpHeader(String headerFilename) throws FileNotFoundException {
/*
* 因为找不到文件是不可修复的异常,
* 所以继续抛出
*/
BufferedReader br = new BufferedReader( new FileReader( new File(headerFilename) ) );
StringBuffer sb=new StringBuffer();
try {
while(br.ready()){
sb.append( br.readLine()+"\n" );
}
} catch (IOException ex) {
/*
* 这里在这里软件中不会有异常抛出
* 所以就让异常死在这里了
*/
//ex.printStackTrace();
}
return sb.toString();
}
/**
* 注册用户
* username 帐号名和密码
* site 被注册的站点
* port 该站点web服务的端口号,一般是80
*/
public void register( String username, String site, int port ) throws FileNotFoundException {
/*
* 因为找不到文件是不可修复的异常,
* 所以继续抛出
*/
String header = getRegisterHttpHeader("programfan_hacker_register.txt");
/*
* @替换字符串中的帐号和密码
* 我在抓FireFox2.0发出去的Http Header的时候用户名和密码贪图省事都是一样的
* 都是vlinuxGXU1,所以这里也全部都替换成为一样的,呵呵。
*/
header = header.replaceAll("vlinuxGXU1",username);
/*
* 开始注册
*/
if( sendRegister(site,port,header) == true ) {
System.out.println( "注册成功,用户名称:"+username+",密码:"+username );
} else {
System.out.println( "注册"+username+"失败." );
}
}
/**
* 主方法
* @author vlinux
*/
public static void main(String... args) {
AutoRegister ar = new AutoRegister();
try {
/**
* 帐号和密码都是 knockerkao
* 当然,当你看到这个代码的时候knockerkao早就被我注册了
* 对了,顺便提醒一句,你起的帐号名必须要超过7个字符以上
* 否则会和我的 Content-Length: 256 对不上
* 因为你至少要超过这个数字才能正确被服务器识别
*/
ar.register("knockerkao","www.programfan.com",80);
} catch (FileNotFoundException ex) {
System.out.println( "找不到文件: "+ex.getMessage() );
}
}
}
POST http://www.programfan.com/user/saveuser.asp?action=person HTTP/1.1
Host: www.programfan.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1) Gecko/20061023 SUSE/2.0-30 Firefox/2.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://www.programfan.com/user/register.asp
Cookie: style=1; ASPSESSIONIDQATDRQTQ=KEDFEAFBAMMDEGCDPABJGDJB; userid=; username=
Content-Type: application/x-www-form-urlencoded
Content-Length: 256
username=vlinuxGXU1&password=vlinuxGXU1&repassword=vlinuxGXU1&name=vlinuxGXU1&sex=%C4%D0&email=vvv%40gxu.edu.cn&question=vlinuxGXU1&answer=vlinuxGXU1&city=%C9%CF%BA%A3&year=1920&month=1&day=1&qq=&website=&address=&zipcode=&phonenumber=&Submit=%C8%B7+%B6%A8
出处:http://bbs.bc-cn.net/dispbbs.asp?boardID=8&ID=115823&page=1
不知道管理员怎么看........
个人觉得登入的时候应该有验证码,可能会有效果