解决方案-批量邮箱管理软件-入门网络安全技巧

解决方案-批量邮箱管理软件-入门网络安全技巧

搞事情

这是一沟绝望的死水,清风吹不起半点漪沦。 在这只许州官放火不许百姓电灯的年代,我们不如一起拿起几行简单的代码,向这死水中多扔些破铜烂铁。

我们的目标就是把这互联网搞的更乱更臭,所以我们是不被规则束缚的。今天要拿来开刀的,是邮件系统。

垃圾邮件,很多人都深受其害,但我们今天并不是要搞它。以相反的方式进行思考,我们并不讨厌它,而且欢迎它的到来。比如,我要批量注册一万个账号。通过邮箱验证就算注册成功了,这个时候,我们需要一个邮件服务器,具体流程如下:

批量邮箱管理软件_批量邮箱注册软件app_

这个时候就想啊,能不能把邮件接收这块给自动化呢?自动化涉及两个点:1)要有无穷无尽的邮箱供你使用2)要非常容易的获得邮件内容进行解析

稍作思考,一个方案就在脑海中浮现,竟然是超简单的存在。

_批量邮箱管理软件_批量邮箱注册软件app

其中:1) 阉割的邮件系统不需要登录,只管收,不管发2)邮件系统可以接受带有某后缀的任意邮件3)提供简单的REST接口返回邮件JSON供解析

下面我们直接进入正题,说一下实现方式。

域名解析配置

打开域名管理,以阿里云为例,加入两条信息

加入一条A记录,指向我们将要部署的服务IP地址

A	mx	 6x.216.2xx.1xx

加入一条MX记录,指向上面配置的收邮件的域名地址。

MX	*	mx.sayhiai.com

注意 *号,意思是所有的域名包括二级域名等,都会被收到。比如xxxx@.com 、 @..com。是不是无穷无尽?

编写SMTPD服务器

使用可以很容易的实现一个SMTPD服务器,具体的是使用库。邮件默认收到后是编码,还分很多部分和类型,解析起来还是比较麻烦的。需要猜解其编码并递归拼接邮件等。代码片段如下:

def decode_str(s):
    value, charset = decode_header(s)[0]
    if charset:
        value = value.decode(charset)
    return value
def guess_charset(msg):
    charset = msg.get_charset()
    if charset is None:
        content_type = msg.get('Content-Type', '').lower()
        pos = content_type.find('charset=')
        if pos >= 0:
            charset = content_type[pos + 8:].strip()
    return charset
def print_part(msg):
    rs = ""
    content_type = msg.get_content_type()
    if content_type == 'text/plain' or content_type == 'text/html':
        content = msg.get_payload(decode=True)
        charset = guess_charset(msg)
        if charset:
            content = content.decode(charset)
        rs = rs + str(content)
    else:
        rs = rs + str(content_type)
    return rs
def print_info(msg):
    rs = ""
    if (msg.is_multipart()):
        parts = msg.get_payload()
        for n, part in enumerate(parts):
            if part.is_multipart():
                rs = rs + print_info(part)
            else:
                rs = rs + print_part(part)
    else:
        return print_part(msg)
    return rs

编写REST服务

解析完邮件后,我们把内容存放在中。接下来就是编写数据接口了。

我们的目的是尽量方便邮件的获取,REST+json是首选的。的flask库无疑是最简单最适合的。

import json
from flask import Flask
from flask import send_file
from data import dataInstance
app = Flask(__name__)
dao = dataInstance
def web_start(host, port):
    app.run(host=host, port=port)
@app.route('/')
def index():
    return send_file('static/index.html')
@app.route('/all')
def msg_all():
    rows = dao.read_all()
    return json.dumps(rows)
@app.route('/from/')
def msg_from(addr):
    rows = dao.read_from(addr)
    return json.dumps(rows)
@app.route('/to/')
def msg_to(addr):
    rows = dao.read_to(addr)
    return json.dumps(rows)

如你所见,提供了三个接口1)/all 获取所有邮件2) /from/{addr} 根据发送方查找邮件3) /to/{addr} 根据接收方查找邮件

每次查询做多返回100条记录,反正多了你也用不着。

试验一下

使用 @.com 注册一个账号。使用curl或者浏览器获取邮件信息:

curl -XGET http://sayhiai.com:14000/to/skdfkdsjf@sayhiai.com

或者使用 .com:14000/ 在线查询一下。

我的太慢,记得自己搭建一个啊,别忘了SMTPD的端口是25,绑定其他的是不行的

结尾

至此, 一个完美的闭环完成了。我记的前段时间某些同学还对微软收购心存不满,是时候给你一个发泄的途径了,注意多弄几个ip。

你瞧瞧你瞧瞧,即使这么大的一个网站,仅仅邮箱验证就通过了,可以预见网络上有多少的网站可以使用相同的思路去搞。

我已经把代码放到上了 :) :) :). .com//cra…

要是你干了坏事的话,就先不要留名了~

_批量邮箱管理软件_批量邮箱注册软件app

网络安全学习路线图(思维导图)

网络安全学习路线图可以是一个有助于你规划学习进程的工具。你可以在思维导图上列出不同的主题和技能,然后按照逻辑顺序逐步学习和掌握它们。这可以帮助你更清晰地了解自己的学习进展和下一步计划。

1. 网络安全视频资料

2. 网络安全笔记/面试题

3. 网安电子书PDF资料

如果你向网安入门到进阶的全套资料,我都打包整理好了,需要学习的小伙伴可以V我找我拿~

学网络安全/学黑客,零基础资料整理来啦~~~

~

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值