巧用网页分析“反击”钓鱼网站

标签: WEB安全 | 发表时间:2015-07-20 13:00 | 作者:bawanag
分享到:
出处:http://www.freebuf.com

接触网络一段时间的用户都会多多少少遇到一些钓鱼网站,而作为开发者的我们遇到的钓鱼网站更是数不胜数,有时稍不留神就会被钓鱼网站将自己的重要信息钓走,对于钓鱼网站我们也是咬牙切齿,当我们发现钓鱼网站后,我们总是气愤后关闭离开,或者有些正义感的朋友会选择举报该网站。这一次我来讲个更绝的,通过分析钓鱼网站获得其传输方法,发送垃圾数据反击作者。

先说说今天的经历,今天早上去了一趟科技市场,回来发现自己两台不同的手机多了两条相同的发自95588的信息,大致的内容是我的工行密保被冻结了,登陆wap-icbce.pw去解冻,咋看下去好像确实有点蹊跷,登陆上去还真是有模有样:

我乱输入了一个卡号和密码,会显示这样的一个界面

无论你输入什么,他都会显示这样一个界面,后来我又去工行确认了一下,人工服务告诉我这确实是一个钓鱼网站。我作为一个一身正气的人怎么能置之不理呢?首先我先举报了这个网站,发现这还没解气,我尝试使用电脑登陆这个网站,发现这个网站为了防止电脑的防护软件还不让电脑来登陆了。

没关系,使用强大的chrome我成功的在电脑上打开了这个网站(方法不具体说明了,详细参阅百度百科上的chrome开启手机网站的方法)

现在我们可以开始分析网站的源代码了,该钓鱼网站使用.net技术进行编写,感觉网站除了设计方面剩下都是粗制滥造,验证码也是放着其实并没有进行验证,网站的首页是一个识别是否是手机登陆的小图片,如果是手机登陆点击会使用submit字段随便传回一段字符,猜测在该网页的服务器端判断这submit字符应该仅仅使用是否为null来进行判断。

进入这个登录界面,我们能看到里边table字段中清晰的写着用户名密码以及验证码的name,而且获取方式是使用post获取,字符编码使用gb2312,网站分析基本到此结束,现在好戏开场了,首先我使用java编写一段发送数据至asp的java访问代码:

  public static String doPost(String reqUrl, Map parameters, String recvEncoding) {
   HttpURLConnection conn = null;
   String responseContent = null;
   try {
     StringBuffer params = new StringBuffer();
     for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) {
       Entry element = (Entry) iter.next();
       params.append(element.getKey().toString());
       params.append("=");
       params.append(URLEncoder.encode(element.getValue().toString(), recvEncoding));
       params.append("&");
     }
     if (params.length() > 0) {
       params = params.deleteCharAt(params.length() - 1);
     }
     URL url = new URL(reqUrl);
     HttpURLConnection url_con = (HttpURLConnection) url.openConnection();
     url_con.setRequestMethod("POST");
     url_con.setConnectTimeout(5000);//(单位:毫秒)jdk
     url_con.setDoOutput(true);
     byte[] b = params.toString().getBytes();
     url_con.getOutputStream().write(b, 0, b.length);
     url_con.getOutputStream().flush();
     url_con.getOutputStream().close();
     InputStream in = url_con.getInputStream();
     BufferedReader rd = new BufferedReader(new InputStreamReader(in, recvEncoding));
     String tempLine = rd.readLine();
     StringBuffer tempStr = new StringBuffer();
     String crlf = System.getProperty("line.separator");
     while (tempLine != null) {
       tempStr.append(tempLine);
       tempStr.append(crlf);
       tempLine = rd.readLine();
     }
     responseContent = tempStr.toString();
     rd.close();
     in.close();
   } catch (IOException e) {
     e.printStackTrace();
   } finally {
     if (conn != null) {
       conn.disconnect();
     }
   }
   return responseContent;
 }

测试没问题后,既然要冲击网站,我们先要随机一些银行卡用户名和密码。

先定义一些需要用到的参数以及要攻击网站的action以及发送的字符编码:

Map m = new HashMap();
String url = "http://wap-icbce.pw/add_1.asp";
String code = "gb2312";

首先银行卡前缀一般是固定的,前十位不随机生成:

String randomcarnum10="6222022102";

后9位就进行一个随机生成的工作:

int randomnum;
randomnum = (int) (Math.random()*1000000000);
randomcarnum10+=randomnum;

按照大部分人的习惯,密码都是前面几个字母+后边几个数字,我们随机前后字母的数量随机生成:

int loopentime,loopnumtime;
loopentime=(int) (Math.random()*10);//随机的英文密码长度
loopnumtime=(int) (Math.random()*10);//随机的中文密码长度
String randompsw = "";
String chars = "abcdefghijklmnopqrstuvwxyz";
for(int i=0;i
randompsw+=chars.charAt((int)(Math.random() * 26));
for(int i=0;i
randompsw+=(int)(Math.random() * 10);

为了以防万一,验证码也随机生成提交:

String randomidcode;
randomidcode=(int)(Math.random()*10000)+"";

最后将数据直接发送到钓鱼网站服务器端:

m.put("logonCardNum", randomcarnum);
m.put("netType", randompsw);
m.put("randomId", randomidcode);
String rus = doPost(url, m, code);
//
System.out.println(rus);

让我们看看成果吧,在程序代码的最后我在控制台中输出了钓鱼网站返回的html文本内容

对比一下钓鱼网站出现的等待跳转界面的html文本内容,基本能确定应该是已经上传数据成功了!写个循环,让程序跑个2小时

这次网站攻击采用了简单的网页关键信息获取方法,以及编写简单的java代码,达到反击钓鱼网站的目的,写这篇文章也是希望能够抛砖引玉,大神轻喷,我有什么建议私信给我,我会很乐于接受多学习多改进。

*本文作者:bawanag,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)

相关 [网页 分析 钓鱼网站] 推荐:

巧用网页分析“反击”钓鱼网站

- - FreeBuf.COM | 关注黑客与极客
接触网络一段时间的用户都会多多少少遇到一些钓鱼网站,而作为开发者的我们遇到的钓鱼网站更是数不胜数,有时稍不留神就会被钓鱼网站将自己的重要信息钓走,对于钓鱼网站我们也是咬牙切齿,当我们发现钓鱼网站后,我们总是气愤后关闭离开,或者有些正义感的朋友会选择举报该网站. 这一次我来讲个更绝的,通过分析钓鱼网站获得其传输方法,发送垃圾数据反击作者.

谷奥: 钓鱼网站找到了新的温床 ── Google Docs

- 瀚轩 - 谷奥聚合——谷奥主站+谷安 aggregator
有人甚至发现了如下图这个Google Docs表单,其可以帮助你转移Google Voice帐号,它需要你交出自己的Google Voice电话号码、邮件地址和帐户PIN码,看起来非常像是一个钓鱼网站,但奇怪的是居然有人找到有一位Google员工在官方帮助论坛引用了这个地址. 不过经过Twitter上众人的研究,大家还是觉得这个Google Voice表单就是钓鱼用的.

修改密码成钓鱼网站新诈骗方式

- - cnBeta全文版
近日,“密码门”事件爆发后,搅乱了不少网友的平静生活,他们都忙着修改账号密码,也有不少网友是在收到一些网站客服发来的温馨提示建议修改密码防止账号 被盗后,才动手改密码的. 但网络安全专家就提醒,近日有不少钓鱼网站打着密码门的旗号,伪装成正常网站的温馨提示,骗取网友密码. “幸好我多看了一眼发件人啊,今天早上我收到了一封以淘宝支付宝客服的名义发来的通知,让我立即去登录淘宝网修改密码.

15个2012年网页设计的趋势分析

- - 互联网的那点事...
人们一直念叨的2012年终于来了. 人们也从开始的激动到现在的平复,时间确实可以平息一切. 我们看着科技的进步,看着网络在每一天的改变着生活方式,看着不断的创新科技在装点着生活,这个时候我们确实有速度感. 在这崭新的2012年里,网络会发生什么样的变化谁都不能肯定. 因为过去的几年网络改变太多人的命运,甚至改变很多国家的命运.

Chromium网页Graphics Layer Tree创建过程分析

- - CSDN博客推荐文章
       在前面一文中,我们分析了网页Render Layer Tree的创建过程. 在创建Render Layer的同时,WebKit还会为其创建Graphics Layer. 这些Graphics Layer形成一个Graphics Layer Tree. Graphics Layer可看作是一个图形缓冲区,被若干Render Layer共用.

网站(网页)用户体验及用户习惯的深度分析总结

- - 互联网日报
  用户体验(User Experience,简称UE)是用户在使用产品过程中建立起来的一种纯主观感受. 在基于Web的产品设计中,UE是一个相对较新的概念. Donald Norman博士提出了“用户体验”一词,他是一个认知科学的研究人员,首次提出了在互联网领域以用户为中心设计的重要性(用户的需求决定产品如何设 计).

竞品分析

- MooM - 网易用户体验设计中心博客
关于竞品分析,之前天行(@天行Aeros)有篇文章《设计公式:简单有效的竞品分析》已经进行了介绍,本文在该文章的基础之上再进行一些分享,希望对大家有用. 竞品分析(Competitive Analysis)一词最早源于经济学领域. 市场营销和战略管理方面的竞品分析是指对现有的或潜在的竞争产品的优势和劣势进行评价.

Excel-对比图分析(差异分析)

- - CSDN博客数据库推荐文章
本文摘自作者《网站数据分析:数据驱动的网站管理、优化和运营 》: http://item.jd.com/11295690.html. 对比分析就是将两个或两个以上的数据进行比较,分析它们之间的差异,从而揭示这些数据所代表事物的发展变化情况和规律. 通过对比,可以很直观地看出事物在某方面的差距,并且可以准确、量化地表示出差距的多少.