`

入侵初步

 
阅读更多

  入侵的方式有很多种,技术手段的运用将事半功倍。

  做为正大光明,并且并不违法的做法就是要建立一批能打硬战的水军队伍,越多越好,话说sohu的服务多,有微博,博客等等,还将会有N多免费的服务在推出,所以我就就像<<搭车去柏林>>的谷岳一样,准备搭乘这种免费的班车。

  注册成为sohu的会员是一切的基础,手动做没有问题。但是一天要申请N多帐号就是一个问题。好,我介绍一下我使用的工具。

  htmlunit,导入这个相关包就可以

      如下代码是测试成功的示例,因为注册时填写哪个验证码是一个很为难的工作,所以我也有对付的方法。只做为参考,代码很乱,大家姑且看吧。

 

  先说下运行效果:

 


 

   如下是测试代码,请大家笑纳:

 

  package com.antbee.invade.begin;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.GeneralSecurityException;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import org.junit.Test;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlImageInput;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;

public class InvadeSohuMail {

	private final static String BASE_SING_URL = "http://passport.sohu.com";
	private final static String REG_MAIL_URL = BASE_SING_URL + "/web/dispatchAction.action?appid=1000&ru=http://mail.sohu.com/reg/signup_success.jsp";
	private final static String LOGIN_MAIL_URL = "http://mail.sohu.com/";
	private final static String MODIFY_INFO_URL = "https://passport.sohu.com/web/updateInfo.action?modifyType=userinfo";
	private WebClient client;

	@Test
	public void regMail() throws FailingHttpStatusCodeException, MalformedURLException, IOException, InterruptedException {
		init();
		HtmlPage signPage = client.getPage(REG_MAIL_URL);
		HtmlForm regForm = signPage.getFormByName("form1");
		regForm.click();

		HtmlInput u = regForm.getElementById("sohupp-email");
		HtmlInput psw = regForm.getElementById("sohupp-password");
		HtmlInput psw2 = regForm.getElementById("sohupp-confirmpwd");
		HtmlInput maskCode = regForm.getElementById("sohupp-validatecode");
		HtmlAnchor refreshButton = regForm.getElementById("sohupp-refreshvcode");
		u.focus();
		u.setValueAttribute("z9sshil98yqDnqg1f");
		u.mouseOut();
		u.click();

		psw.focus();
		psw.setValueAttribute("6byxdfdfzvwNLMyqfPd");
		psw.mouseOut();
		psw.click();

		psw2.focus();
		psw2.setValueAttribute("6bsadfyxzvwNLMyqfPd");
		psw2.mouseOut();
		psw2.click();

		maskCode.focus();
		maskCode.click();
		refreshButton.click();

		HtmlDivision maskPic = (HtmlDivision) signPage.getElementById("checkpic");// /servlet/Captcha?time=a
		String maskPicStyle = maskPic.getAttribute("style");
		String maskCodeImageUrl = maskPicStyle.split(";")[2];
		maskCodeImageUrl = maskCodeImageUrl.replace("background: url(\"", "");//
		maskCodeImageUrl = maskCodeImageUrl.substring(0, maskCodeImageUrl.indexOf(")") - 1);

		JFrame f2 = new JFrame();
		JLabel l = new JLabel(new ImageIcon(new URL(BASE_SING_URL + maskCodeImageUrl.trim())));
		System.out.println("图片地址:" + maskCodeImageUrl.trim());
		f2.getContentPane().add(l);
		f2.setSize(200, 200);
		f2.setTitle("验证码");
		f2.setVisible(true);
		String valicodeStr = JOptionPane.showInputDialog("请输入验证码:");
		f2.setVisible(false);
		System.out.println("验证码:" + valicodeStr);
		maskCode.setValueAttribute(valicodeStr);
		maskCode.mouseOut();
		maskCode.click();

		HtmlSubmitInput regButton = (HtmlSubmitInput) regForm.getElementById("sohupp-submit");
		regButton.focus();

		u.dblClick();
		psw.dblClick();
		psw2.dblClick();
		maskCode.dblClick();

		regButton.click();
		regButton.mouseOut();
		regButton.dblClick();
		HtmlPage sumitPage = regButton.click();
		// Thread.sleep(30000);
		System.out.println(sumitPage.getUrl());

		String successTitle = sumitPage.getTitleText();
		if (successTitle.equals("搜狐通行证")) {
			System.out.println("成功");
		}
		// System.out.println(sumitPage.asXml());
	}

	@Test
	public void welcomeSohuMail() throws FailingHttpStatusCodeException, MalformedURLException, IOException, InterruptedException {
		SoldierModel soldierModel = new SoldierModel();
		soldierModel.setScreenCode("efbe13av6sadfc4nss");
		soldierModel.setUserPassword("cwA5sh5asdfasbA3Jss87jJ");
		soldierModel.setUserName("渡过快乐的每一天!");
		loginSohuMail(soldierModel);
	}

	/**
	 * 登录sohuMail
	 * 
	 * @throws IOException
	 * @throws MalformedURLException
	 * @throws FailingHttpStatusCodeException
	 * @throws InterruptedException
	 */
	private void loginSohuMail(SoldierModel soldierModel) throws FailingHttpStatusCodeException, MalformedURLException, IOException, InterruptedException {
		init();
		HtmlPage loginPage = client.getPage(LOGIN_MAIL_URL);
		HtmlInput userName = loginPage.getHtmlElementById("username");
		HtmlInput password = loginPage.getHtmlElementById("password");
		HtmlImageInput loginButton = loginPage.getHtmlElementById("login_img");

		userName.focus();
		userName.setValueAttribute(soldierModel.getScreenCode());
		userName.mouseOut();

		password.focus();
		password.setValueAttribute(soldierModel.getUserPassword());
		password.mouseOut();

		loginButton.focus();
		loginButton.click();
		Thread.sleep(28000);
		HtmlPage welcomePage = client.getPage(LOGIN_MAIL_URL);
		String welcomeTitle = welcomePage.getTitleText().trim();
		System.out.println(welcomeTitle);
		Boolean successFlag = false;
		if (welcomeTitle.equals("闪电邮 - 搜狐")) {
			successFlag = true;
		}
		if (successFlag) {
			HtmlPage modifyInfoPage = client.getPage(MODIFY_INFO_URL);
			HtmlInput userId = modifyInfoPage.getHtmlElementById("userid");
//			List list = modifyInfoPage.getElementsByName(name)
//	        for( Iterator it = list.iterator(); it.hasNext(); ) {
//	            HtmlRadioButtonInput radio =
//	(HtmlRadioButtonInput)it.next();
//	            System.out.println(radio.getValueAttribute() + ' ' +
//	radio.getNextSibling().asText() );
//	        }
			HtmlRadioButtonInput female = modifyInfoPage.getHtmlElementById("female");
			
			HtmlInput year = modifyInfoPage.getHtmlElementById("year");
			HtmlInput month = modifyInfoPage.getHtmlElementById("month");
			HtmlInput day = modifyInfoPage.getHtmlElementById("day");
			HtmlInput userProvince = modifyInfoPage.getElementByName("user.province");
			HtmlInput userCity = modifyInfoPage.getElementByName("user.city");
			HtmlInput userEducation = modifyInfoPage.getElementByName("user.education");
			
			userId.focus();
			userId.mouseDown();
			userId.setValueAttribute(soldierModel.getUserName());
			userId.mouseUp();
			
			female.focus();
			female.mouseDown();
			female.click();
			female.mouseUp();
			
			year.setValueAttribute("1988");
			month.setValueAttribute("03");
			day.setValueAttribute("11");
			userProvince.setValueAttribute("上海");
			
			HtmlSubmitInput submitUserInfo = modifyInfoPage.getElementByName("submit");
			HtmlPage userInfoPage = submitUserInfo.click();
			System.out.println(userInfoPage.getUrl());
			System.out.println(userInfoPage.asXml());
			
		}
//		System.out.println(welcomePage.getUrl());
		// System.out.println(welcomePage.asXml());
	}

	private void init() {
		client = new WebClient(BrowserVersion.FIREFOX_3_6);
		client.setJavaScriptEnabled(true);
		client.setThrowExceptionOnScriptError(false);
		client.setThrowExceptionOnFailingStatusCode(false);
		try {
			client.setUseInsecureSSL(true);
		} catch (GeneralSecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

 

    其中sohu也不傻,一个IP一天最多能提供15个帐号的注册,哪怎么办呢?好办,webclient启用代理呀。每15个或者12个就换一批代理。

 手累点,一个小时我注册了50个左右,但是也太累。

  • 大小: 103 KB
分享到:
评论

相关推荐

    南岳自然保护区外来入侵植物的初步研究

    在南岳自然保护区,研究者们通过实地调查和文献整理分析,初步确定了26种外来入侵植物,这些植物被归为17个不同的科。其中,菊科的植物种类最多,共有5种。 调查结果显示,南岳自然保护区的外来入侵植物主要来源于...

    初步认识脚本入侵技术

    脚本入侵技术是一种网络安全领域的术语,它主要涉及利用编程脚本来发现、利用系统漏洞或弱点进行非法活动。在这个初级教程中,我们将深入探讨脚本入侵的基础知识,为初学者提供一个全面的理解。 首先,让我们定义...

    基于snort的入侵检测系统,很全的开题报告

    这篇开题报告可能是关于设计和实现这样一个系统的初步研究。 描述中提到的“入侵检测,很全,资料完整”,暗示了报告会全面探讨入侵检测技术,特别是使用Snort的各个方面,包括系统的设计、实施、优势和局限性,...

    Snort入侵检测 入侵机制报警

    Snort入侵检测机制报警 Snort是一种流行的入侵检测系统,可以检测和防御网络攻击。...Snort的入侵检测机制可以检测和防御网络攻击,学习Snort入侵检测机制的知识可以帮助我们初步掌握到了一种应对网络攻击的防御措施。

    Java语言实现的人工免疫入侵检测框架

    10. **测试与调试**:提供可运行的框架意味着开发者已经进行了初步的测试,但用户还需要进行自己的测试和调试以确保其在特定环境下的有效性和可靠性。Java提供了丰富的调试工具和测试框架,如JUnit,便于进行单元...

    论文研究-分布式入侵检测系统中自适应主机代理的研究 .pdf

    主机代理部署在网络中的各个主机上,负责收集信息、进行初步的检测分析,并在必要时请求管理控制中心的帮助。主机代理的设计具有一定的自适应性,使其能够根据网络环境的变化调整自己的检测策略。 跟踪代理在接收到...

    基于python实现的主机入侵检测系统+源码(毕业设计&课程设计&项目开发)

    基于python实现的主机入侵检测系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于python实现的主机入侵检测系统+源码,适合毕业设计、课程设计、项目...

    基于Agent人工智能技术的分布式入侵检测系统设计.pdf

    其中,控制中心负责整体的调度和管理,网络主机主要执行数据收集和初步分析的任务,分区控制中心则负责对特定区域内的网络进行监控和响应,而Agent库则存储了各种响应规则和策略。 接着,文章重点介绍了响应策略和...

    利用IIS日志追查网站入侵者

    5. **定位IP地址**:通过IIS日志中的源IP地址,可以初步定位入侵者的来源。虽然IP地址可能经过伪装,但这一步仍然是追踪的重要线索之一。 6. **详细分析入侵过程**:针对具体的入侵行为,如案例中的上传木马文件`...

    基于云计算的网络病毒入侵检测系统研究.pdf

    前置处理组件主要负责收集网络数据、预处理以及初步分析,而警告通知组件则会根据专家系统的分析结果,向管理者发出警告并提供相应的防护建议。 此外,系统设计还包括数据库集群和私有云运算环境。数据库集群负责...

    入侵检测与防御]策略构建手册

    - **建立规则集**:基于定义的对象创建初步的规则集,这些规则将用于检测和预防特定类型的入侵行为。 ##### 构建基本策略 完成初始对象的创建后,接下来可以构建基本的安全策略。这通常涉及以下几个步骤: 1. **...

    \基于攻击聚类的计算机网络入侵预警研究

    4. **渗透(Gaining Access)**:利用已知漏洞获取对系统的初步访问权限。 5. **攻击(Escalating Privileges)**:提升权限,以获取更高级别的访问权。 6. **后门(Creating Backdoors)**:创建秘密入口,以便将来...

    基于物联网的智能化分布式入侵检测系统.pdf

    系统被分为五个模块,数据包捕获模块负责高速、低丢包率的数据收集,数据分析模块实时审计数据,预处理模块对收集的数据进行初步处理,入侵检测模块利用神经网络进行异常和滥用检测,报警模块则在检测到入侵时发出...

    基于机器学习的KDD-CUP99网络入侵检测数据集的分析.pdf

    通过小样本数据集对程序进行初步调试,确保算法在小规模数据上能够正常运行,然后使用完整数据集进行深入分析。通过这种方式,研究者们观察到三种算法在面对大规模数据时的效率和准确性,以及它们在面对不同特征数量...

    天清入侵防御系统_V6.0.2.6_安装手册

    - **超级终端安装与设置**:通过超级终端进行初步的配置,如设置IP地址等。 - **引擎配置**:包括基本网络配置、应用初始设置等,确保引擎能够正常工作。 #### 7. 产品可用性检查与部署 - **可用性检查**:安装完成...

Global site tag (gtag.js) - Google Analytics