Python 官方文档:入门教程 => 点击学习
前言: 渗透测试遇到对请求体进行签名的情况,如果这是一个app的话,也能理解,但如果是一个WEB系统,对这种敏感数据做加密,并且对请求体做了签名,就会非常无语。还好在js中能找到了加
前言:
渗透测试遇到对请求体进行签名的情况,如果这是一个app的话,也能理解,但如果是一个WEB系统,对这种敏感数据做加密,并且对请求体做了签名,就会非常无语。还好在js中能找到了加密方法(签名规则),可以通过python进行实现,以下为示例,主要记录以下Python怎么快速对请求体做一次签名。
实操:
请求体中有一个参数的值是变化的,一个是当前时间戳(毫秒级),另一个是sign,而sign=md5
(key+时间戳)。其中key为固定值,时间戳直接通过函数获取即可,md5的话也可以通过hashlib
库进行实现。
# -*- coding:utf-8 -*-
import time
import JSON
import hashlib
# 该函数实现对指定字符串取hash
def md5sum(str):
m = hashlib.md5()
m.update(str.encode("utf-8"))
return m.hexdigest()
def get_sign():
#key,固定值
key = "jfdijfidnaindiji"
# 当前时间的毫秒级的时间戳
requestime = int(round(time.time() * 1000))
# 先获取签名的原始值
sign0 = key+str(requestime)
# 下方为请求的参数(json格式),其中requestTime为毫秒级时间戳,sign为key+时间戳的md5值
str1 = {
"head": {"requestTime": requestime, "code": "20211219135521700912", "v": "10"},
"body": {"user":"EsRNkDvGoCryuQWIxpoY2w==","type":"1"}, "sign": sign0}
# 去除json字符串中:与值之间的空格
str2 = json.dumps(str1, separators=(",", ":"))
# 获取hash
sign = md5sum(str2)
# 将签名的hash值添加到请求参数中
data = dict(str1)
data['sign'] = sign
return json.dumps(data)
print(get_sign())
执行结果:
到此这篇关于python
实现请求数据包签名的文章就介绍到这了,更多相关python请求数据包签名内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: python实现请求数据包签名
本文链接: https://www.lsjlt.com/news/138642.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0