渗透测试:Web站点数据包加解密实战教程,黑客技术零基础入门到精通必看教程!

开局一个框,用户名密码一通瞎填,抓包一看,请求包和响应包全是加密文本。换几处功能点接着测也是加密内容,如下图所示。
在这里插入图片描述

在这里插入图片描述

就这?能难住俺们安服仔?安服仔们一般都是万金油,啥都会一点。

我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~

这一般需要在前端调试,跟一遍流程,寻找它的加密和解密逻辑,所以还是要需要一点点不入流的js逆向技能滴。

F12 打开 Chrome 开发者工具,看一下网络请求的情况。下面是可以看到 login 时的载荷是加密字段,盲猜应该是 AES 。

在这里插入图片描述

在这里插入图片描述

分析login 时的加密是怎么形成的,一般有两种下断点方式,一是点击启动器,点进第一个发起程序,下断点。二是添加XHR断点,在这里可以直接添加 login 字段,当浏览器发起请求时如果匹配到URL中有login这个字段,就会在这里断下来。

下好断点拦截到请求后,就需要观察和跟进它的函数调用堆栈,在它的调用堆栈中找到一个临界点,即经过某个函数或某几个函数,明文变成密文(密文变成明文),那么我们需要找点加密解密点,应该就在此中间。寻找的过程需要不断观察和下断点取消断点,循环往复,直到缩小范围。
断点

在这里插入图片描述

在这里插入图片描述

除了不断下断点一步步跟踪代码执行逻辑的这种方式外,也可以直接搜索关键词,比如:encrypt、decrypt、hexdigest 等等。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在一波搜索和不断调试后,终于找到加密和解密的逻辑了。这个站点加解密逻辑很low,只用上了AES对称加密,而且密钥还是固定的。

它的逻辑是:正常明文数据包经过AES加密(密钥固定)后发送。收到密文的响应包进行AES解密,再将解密后的数据交给相关 js 进行处理。

在这里插入图片描述

上图定位到了他加密函数的位置,使用的是 AES CBC模式,PKCS7 填充方式,密钥key是:1234567890adbcde , 偏移量iv是:1234567890hjlkew,去到AES在线加密网站测试抓到的明文是否能正常加密解密。非常nice,一发即中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~

经过对比,确认了上述的分析是正确的。但是在渗透测试中,需要频繁的抓包改包,与之相应的就需要不断对payload和测试数据包进行加密解密,如果纯手工加解密,不得累瘫了。

下面介绍一个俺们团队老大写的burpsuite插件burpy,专门用来高效处理Web站点流量加解密。
项目地址:

https://github.com/mr-m0nst3r/Burpy

详细的使用说明请看项目readme 和大佬博客:

https://m0nst3r.me/pentest/%E9%AB%98%E6%95%88%E5%A4%84%E7%90%86H5%E7%AB%99%E7%82%B9%E6%B5%81%E9%87%8F%E5%8A%A0%E8%A7%A3%E5%AF%86.html``   

在Releases页面下好burpy插件的jar包,并安装。安装就不多说了吧,有手就行咯。

在这里插入图片描述

编写burpy python脚本需要一个叫 Burpy 的类,在类中,一般要实现encrypt、decrypt这两个函数。burpy 正常加载burpy脚本后,会把他俩注册到 Extensions 中

在这里插入图片描述

下面是针对此站点编写的burpy脚本,具体逻辑很看python代码。

from Crypto.Cipher import AES  
import base64  
  
# 密钥(key), 密斯偏移量(iv) CBC模式加密  
BLOCK_SIZE = 16  # Bytes  
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * \  
                chr(BLOCK_SIZE - len(s) % BLOCK_SIZE)  
unpad = lambda s: s[:-ord(s[len(s) - 1:])]  
  
vi = '1234567890hjlkew'  
key = '1234567890adbcde'  
  
  
class Burpy:  
    def __init__(self):  
        self.body = None  
  
    def decrypt(self, header, body):  
        # 处理响应包  
        if body.startswith("\""):  
            self.body = body.split("\"")[1]  
            try:  
                decrypt_result = AES_Decrypt(self.body)  
            except Exception as e:  
                decrypt_result = "解密失败!请排查"  
            return header, decrypt_result  
        # 处理请求包  
        else:  
            try:  
                decrypt_result = AES_Decrypt(body)  
            except Exception as e:  
                decrypt_result = "解密失败!请排查"  
            return header, decrypt_result  
  
    def encrypt(self, header, body):  
        encrypt_result = AES_Encrypt(body)  
        return header, encrypt_result  
  
  
def AES_Encrypt(data):  
    data = pad(data)  
    # 字符串补位  
    cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))  
    encryptedbytes = cipher.encrypt(data.encode('utf8'))  
    # 加密后得到的是bytes类型的数据,使用Base64进行编码,返回byte字符串  
    encodestrs = base64.b64encode(encryptedbytes)  
    # 对byte字符串按utf-8进行解码,并返回  
    return encodestrs.decode('utf8')  
  
  
def AES_Decrypt(data):  
    data = data.encode('utf8')  
    encodebytes = base64.decodebytes(data)  
    # 将加密数据转换位bytes类型数据  
    cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))  
    text_decrypted = cipher.decrypt(encodebytes)  
    # 去补位  
    text_decrypted = unpad(text_decrypted)  
    text_decrypted = text_decrypted.decode('utf8')  
    return text_decrypted  
  
  
if __name__ == '__main__':  
    test = Burpy()  
    header = "123"  
    body = "0aux2+M61DiN0AdGyZHHJK++KM80JGxIUkWzZEqeQ1vBjwNlysToUObFBmEgqZIG9ctczczJratDObvp1JrQR+69CU92y9UXEW3VfC+oLRUfstUivu7kSqSBYDr5+JUNP7AEOU6lcZehj+uOV6tdT9SADnQnBOlTB2qn592xv78="  
    a, b = test.decrypt(header, body)  
    print(a)  
    print(b)  

使用效果
原始数据包样子

在这里插入图片描述

使用 burpy 进行加密解密

在这里插入图片描述

进过这一番折腾后,加密变成了明文,接下来的渗透测试就是如履平地、一马平川哈哈哈。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
在这里插入图片描述
在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:
在这里插入图片描述
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
在这里插入图片描述

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值