文章来源|MS08067 红队培训班 第5期
本文作者:M0arnch(红队培训班5期学员)
1.2 随机UA头
简单的函数不解释,可以添加更多UA头到列表中
# roll一个随机user-agent def getRandomUA():
ua_list = [
'Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)',
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11'
]
return "".join(random.sample(ua_list, 1))
1.3 协议的判断
尤其是参数没有协议头的时候要检测,理解了老师讲的逻辑就很好写了
1.4 判断请求头中的两种参数是否给出
防止像log4j2那样的时候,服务端建立了链接却不响应拖死我们的请求很简单,请求的时候添加timeout参数即可,比如
2.1 无参型GET请求
2.2 有参型GET请求
比起无参数的get请求只要传入一个用户定义的参数字典赋值给data,发起请求的时候带上data = data即可
2.3 POST请求
post请求的内容以字典形式传入,赋值给param,发送请求的时候带上params=param参数即可
拿dnslog试一下
是以表单形式提交的没错
用dnslog看一下也是以json的形式提的
3. 对接dnslog平台
请求二级域名时http://www.dnslog.cn/getdomain.php传递的t参数使用了系统当前时间戳,roll一个随机sessionid的时候遇到了困难,写死sessionid没有问题,一旦roll了随机的就刷新不出结果,反复测试了一下发现sessionid应该是不可以有.的,因此我们roll随机数的时候乘以一个大点的数后取整即可
跑一下,获取二级域名并刷新显示纪录是没有问题的