考研期间遇到的诈骗网站,当时匆忙写了脚本,轰炸,后来ip被封了…

今天今日校园的脚本挂了,原因是今日校园更改了CpdailyExtension的加密密钥,app又加固了,对于如何获取加密密钥,我就无从下手了。网上一搜,看到有人把加密密钥已经整出来了,不由得惭愧,我好菜啊。

还是好好学技术吧,言归正传。

一、背景

在去年的11月8号,也就是考研备考期间,我收到了一条短信,大致的内容就是我的那张联通卡积分要过期了,赶紧兑换商品。

网页的链接是http://dwz8.cn/OCsGK,点击进去后是http://h5.22b.shop

通过抓包分析,首次访问该网站时,会自动访问https://h5.22b.shop/api/home/user

{"code":200,"message":"操作成功","data":{"id":3992308,"uuid":"a53e454f-2e89-468a-90ff-27b898f99e89","score":6800,"createtime":"2021-01-07T20:03:41.000+00:00","updatetime":"2021-01-07T20:03:41.000+00:00","status":0,"signdays":null,"signstatus":null,"expiration":"2021-01-14T20:03:41.627+00:00"}}

这个就相当于是获取一个账户了,这个账户的用户名就是返回的一个随机uuid。关键是这个账户是有效期的,一周后失效。去年我访问的时候,还是2天失效,可能后来又延长了有效期。

很明显,你下单的东西,一周之后,所有的订单信息都会消失了,到时候,你就算找证据都找不到,很明显是骗子啊。

再看界面,做得这么low,就连学生的课程设计都不如吧?还有测试数据。

这个骗子网站,最秀的不是上面这些,而是他有一个很人性化的客服系统以及微信公众号,关键是还有人在后台帮助你被骗!

之前我还特意找客服说,我要买爱疯12,客服说没有,我把链接丢给他,他就不鸟我了。

后来才知道,像那种爱疯12的,要付超过3000元,这种的你要是报警的话,是可以立案的,所以他就说没有了,也是考虑到这点吧。

已经确定是个骗子网站了,我又找出了查询订单的接口,https://h5.22b.shop/api/order/select/condition

发现竟然有那么多人被骗!

就想着通过网站备案,找到这个骗子公司。

在域名信息备案系统中,查到了是深圳市小包菜电子商务有限公司,2020年9月备案。

通过爱企查,查到该公司成立与2020年9月1日,目前许可经营项目是无。

我又通过下单的信息,联系了其中一个人,聊天记录放上来吧。内心也想感叹下,做得这么垃圾的平台,比学生的课程设计都low,还是有人上当。果然中国那么多人,人傻钱多的也不少。

很明显啊,这就是个骗子公司啊。

二、轰炸

我是11月8号收到的短信,当时正在做数学题,确定了是骗子网站之后,就开始着手写脚本,顶多也就半个小时吧,就写完了。

那时,我记得他没有姓名唯一验证,也没有uuid唯一验证。当时可以用一个uuid账户提交垃圾数据,疯狂塞他的数据库。因为比较简单,所以完成的较快。

轰炸了一天,大概给他轰了100多万条垃圾数据,第二天一看,脚本凉了,那狗崽子还骂我。特娘的,骗人你还有理了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9TxeX1hy-1610056933720)(https://meethigher.top/blog/2021/vs-cheat/4.png)]

之后,我发现他是给数据库加了uuid唯一验证,也就是只能购买一次,原因想想嘛,也挺合理的,毕竟是积分兑换嘛,积分就那么点,你想换多少?

那我就尝试每次请求,向他服务器申请一个uuid,然后继续轰,顺便随机生成姓名和随机生成手机号,代码来源于网络。

NameBuilder.java

import java.util.Random;public class NameBuilder {private static String xings = "赵 钱 孙 李 周 吴 郑 王 冯 陈 褚 卫 " + "蒋 沈 韩 杨 朱 秦 尤 许 何 吕 施 张 " + "孔 曹 严 华 金 魏 陶 姜 戚 谢 邹 喻 "+ "柏 水 窦 章 云 苏 潘 葛 奚 范 彭 郎 " + "万俟 司马 上官 欧阳 夏侯 诸葛 闻人 东方 赫连 皇甫 尉迟 公羊";private static String mings = "碧凡、夏菡、曼香、若烟、半梦、雅绿、冰蓝、灵槐、平安、书翠、翠风、香巧、代云、" + "友巧、听寒、梦柏、醉易、访旋、亦玉、凌萱、访卉、怀亦、笑蓝、春翠、靖柏、书雪、"+ "乐枫、念薇、靖雁、寻春、恨山、从寒、忆香、觅波、静曼、凡旋、新波、代真、新蕾、" + "雁玉、冷卉、紫山、千琴、恨天、傲芙、盼山、怀蝶、冰兰、问旋、从南、白易、问筠、"+ "如霜、半芹、寒雁、怜云、寻文、谷雪、乐萱、涵菡、海莲、傲蕾、青槐、冬儿、易梦、" + "惜雪、宛海、之柔、夏青";private static Random r = new Random();/*** 使用指定的姓氏,用xings里面的字,随机生成姓名* * @param xing   指定姓氏* @param length 指定名字总长度* @return*/public static String build(String xing, int length) {// 定义姓名String xingming = xing;// 创建随机对象Random r = new Random();while (xingming.length() < length) {// 从名字符串中随机取出一个字符的编号int index = r.nextInt(mings.length());// 从名字字符串中取一个字String s = mings.substring(index, index + 1);// 如果s是顿号,就重新再取一次(使用常量比变量,这是推荐的方式)if ("、".equals(s)) {continue;} else {// 将名 加到 姓名中取xingming += s;}}return xingming;}/*** 使用xings里面姓氏,用xings里面的字,随机生成姓名* * @param length 指定名字总长度* @return*/public static String build(int length) {// 判断姓名的长度必须大于 2if (length < 2) {System.out.println("姓名不能少于2个字符");return null;}/*** 因为有些姓氏不能拆分(如:复姓),因此选姓氏不能像选名字那样一个一个字选 因此要将xings转成数组*/// 先随机选姓氏Random r = new Random();String[] xingArr = xings.split(" ");int index = r.nextInt(xingArr.length);String xing = xingArr[index];// 有了姓氏,再调用上面的选名字的方法,就OK了return build(xing, length);}/*** 随机生成2~3个字的名字* * @return*/public static String build() {int length = r.nextInt(2) + 2;return build(length);}public static void main(String[] args) {System.out.println("\r\n指定姓氏造100个3个字的名字");for (int i = 0; i < 100; i++) {System.out.print(build("廖", 3) + ",");if ((i + 1) % 10 == 0) {System.out.println();}}System.out.println("\r\n不指定姓氏造100个3个字的名字");for (int i = 0; i < 100; i++) {System.out.print(build(3) + ",");if ((i + 1) % 10 == 0) {System.out.println();}}System.out.println("\r\n随机造100个名2~3个字的字");for (int i = 0; i < 100; i++) {System.out.print(build() + "\t");if ((i + 1) % 10 == 0) {System.out.println();}}}
}

MobileBuilder.java

public class MobileBuilder {/*** 返回手机号码*/private static String[] telFirst = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153".split(",");public static String getTel() {int index = getNum(0, telFirst.length - 1);String first = telFirst[index];String second = String.valueOf(getNum(1, 888) + 10000).substring(1);String third = String.valueOf(getNum(1, 9100) + 10000).substring(1);return first + second + third;}public static int getNum(int start, int end) {return (int) (Math.random() * (end - start + 1) + start);}
}

有了这两个工具类,又有不同的uuid,那么继续轰。

过了一天之后,又出来问题。

我当时一看就反应过来了,这可能是骗子设置的服务器自发的拒绝访问,我当时首先想到的是自己实现一个代理池,但是一想比较麻烦,就放弃了。

直到今天,2021年1月8日,我就想,如何用java伪造ip。

后来发现,原来骗子在服务端的验证ip是通过获取请求头x-forwarded-for的ip来判断的。

至于这个x-forwarded-for跟servlet中的request.getRemoteAddr()获取的是不是一个东西,参考这篇文章

那么我判断ip被封之后,就生成随机ip不就行了。

IpUtil.java

import java.util.Random;public class IpUtil {public static String getRandomIp() {// ip范围int[][] range = { { 607649792, 608174079 }, // 36.56.0.0-36.63.255.255{ 1038614528, 1039007743 }, // 61.232.0.0-61.237.255.255{ 1783627776, 1784676351 }, // 106.80.0.0-106.95.255.255{ 2035023872, 2035154943 }, // 121.76.0.0-121.77.255.255{ 2078801920, 2079064063 }, // 123.232.0.0-123.235.255.255{ -1950089216, -1948778497 }, // 139.196.0.0-139.215.255.255{ -1425539072, -1425014785 }, // 171.8.0.0-171.15.255.255{ -1236271104, -1235419137 }, // 182.80.0.0-182.92.255.255{ -770113536, -768606209 }, // 210.25.0.0-210.47.255.255{ -569376768, -564133889 }, // 222.16.0.0-222.95.255.255};Random rdint = new Random();int index = rdint.nextInt(10);String ip = num2ip(range[index][0] + new Random().nextInt(range[index][1] - range[index][0]));return ip;}public static String num2ip(int ip) {int[] b = new int[4];String x = "";b[0] = (int) ((ip >> 24) & 0xff);b[1] = (int) ((ip >> 16) & 0xff);b[2] = (int) ((ip >> 8) & 0xff);b[3] = (int) (ip & 0xff);x = Integer.toString(b[0]) + "." + Integer.toString(b[1]) + "." + Integer.toString(b[2]) + "."+ Integer.toString(b[3]);return x;}}

1月7日到1月8日,完美轰炸,看看这个骗子还有啥手段用,哈哈。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PDUnftbQ-1610056933722)(https://meethigher.top/blog/2021/vs-cheat/6.png)]

正好借此学习技术!

对方数据库已经被轰瘫痪了,没法下单了。等他修复好了,继续轰!

三、致谢

  1. Java伪造http请求ip地址
  2. x-forwarded-for、x-real-ip、getRemoteAddr()的区别

meethigher-与骗子之间的对招相关推荐

  1. 定向士官计算机网络技术在部队干什么,定向士官、直招士官、义务兵入伍详细对比分析!一文看懂区别!...

    原标题:定向士官.直招士官.义务兵入伍详细对比分析!一文看懂区别! 近日,新浪山东教育频道从山东信息职业技术学院招办了解到,山东信息职业技术学院2019年定向培养士官招生专业.计划和范围权威发布. 2 ...

  2. 在找翻译兼职时如何规避一家骗子公司?

    在找翻译兼职时如何规避一家骗子公司? 如题.今天写这篇文章是为了教大家如何防骗,适合有翻译兼职需求的在校大学生和初级译员阅读. 老码在翻译江湖行走七年,从没有被骗过,这不是因为我没有遇到骗子公司,而是 ...

  3. 虾皮二面:如何设计优惠券系统?

    你好,我是 Guide.分享一道群友面试虾皮遇到的关于电商系统设计相关的面试真题. 下面是最近更新的一些面试真题: 招银网络一面:Spring,Spring MVC,Spring Boot 之间什么关 ...

  4. 袪除疾病的心法(十三)财运篇

    财运 舍方能得,不舍不得.舍即布施.(佛家讲布施有三种:财布施得财富.法布施,即凡是别人想知道.想学习的合于正道的方法,只要自己懂.自己会,就热心去教,能够得聪明智慧的果报.无畏布施,即在众生身心不安 ...

  5. C语言进阶剖析 13 接续符和转义符

    接续符的意义 C 语言中的接续符 ->是指示编译器行为的利器 实例分析: 初探接续符 #in\ clud\ e <st\ dio.h>in\ t m\ ain(\ ) {pri\ n ...

  6. 月入10万的人,他们都掌握哪些秘密?

    在创业道路上营销人难免会用到一些套路才可以赚到钱,我们作为营销人,我们不要滥用各种各样的套路, 要知道营销就是一把双刃剑,可以救人可以害人.不论我们做引流还是去成交客户,都要记住:套路之后是真诚,我们 ...

  7. 从前有座灵剑山--与邪教辩论(1)

    //2014年6月29日 //第二卷五十一章 "具体来说,就要看你们心意是否诚恳了,先前不是说了吗?先为七星门的几位神仙建一座别院,才能说后面的" 王老爷迟疑道:"可是区 ...

  8. 山东大学matlab在哪,山东大学在哪?

    问: 山东大学和"山东师范大学老校区"分别在哪里? 答: 山东大学有6个校区.东区新校在山大路附近.现在是总部.老校在洪家楼.西校在泉城公园北门处.南校在舜耕路.其中西校南校在经十 ...

  9. 手机维修之 ------ 维修中的降龙十八掌

    降龙十八掌 看过<射雕英雄传>的都知道,当年洪七公将降龙十八掌传于郭靖之后,郭靖的功夫天天见长,直至最后成为天下第一高手.至于郭靖又将这套功夫传于谁,金庸先生未有交代.如今几百年过去了,江 ...

  10. 当代男人泡妞中级教程

    一,什么是"泡妞" 所谓"泡",是一个很有讲究的动词.比如"泡茶","泡澡","泡脚"." ...

最新文章

  1. 2021-10-28 SAP Spartacus SSR 性能方面的一些学习笔记
  2. 农村初中学校计算机课的意义,关于农村学校计算机课件使用的反思.pdf
  3. mvc html传参数乱码,SpringMVC Controller 接收页面传递的中文参数出现乱码
  4. python opencv把32位的灰度图变成8位的灰度图_python简单换脸程序
  5. java listview排序_android listviewadapter 怎么进行排序
  6. 哈工大c语言作业系统,2015秋C语言程序设计
  7. Linux/windows com串口 java 接收数据 并解析 web程序
  8. MATLAB数值分析学习笔记:黄金分割法
  9. 从360、QQ之争看腾讯的无耻
  10. 了解如何在Windows中安全删除文件
  11. 从win10体验到重装win8
  12. 聚亚烷基二醇的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  13. 淘气的小丁-JavaScript的两种表单提交的方式
  14. 小狗AI自动建站系统
  15. 28岁想入行软件测试,可行吗?
  16. 【海子诗全编】序及后记
  17. PIC单片机入门笔记(新手学PIC必看)——基于PIC16F886
  18. canvas水平垂直居中
  19. [小黄书小程序]主页面搜索栏和flex布局
  20. INFINEON(英飞凌)样片申请与经验

热门文章

  1. 10月17日 Spring Cloud 周三
  2. Python Scrapy爬虫简单教程
  3. html图片不要角,详细解说CSS折角的制作(不用图片)
  4. C++ | (struct)结构体变量作为函数参数调用的方法小结
  5. Flask框架的学习——11—(WTForms表单验证-常用验证器、文件上传、上传文件名称中文问题、验证上传文件格式)
  6. 每周全球科技十大新闻(2019.8.12-8.18)
  7. Markdown中数学相关
  8. python 检查域名是否可以访问_利用Python实现DGA域名检测
  9. Word文档中快速插入分隔线的技巧_C#教程
  10. 三维激光雷达点云处理分类及目标检测综述