前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何自己动手编写漏洞POC

如何自己动手编写漏洞POC

作者头像
Ms08067安全实验室
发布2022-02-17 15:23:14
7140
发布2022-02-17 15:23:14
举报

文章来源|MS08067 红队培训班 第5期

本文作者:M0arnch(红队培训班5期学员)

1.健全的请求框架需要注意的点

1.1 忽略证书安全性发送请求时添加以下参数即可

1.2 随机UA头

简单的函数不解释,可以添加更多UA头到列表中

代码语言:javascript
复制
# 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 判断请求头中的两种参数是否给出

1.5 设置连接超时时间

防止像log4j2那样的时候,服务端建立了链接却不响应拖死我们的请求很简单,请求的时候添加timeout参数即可,比如

1.6 获取三种返回值

2.方法的实现

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随机数的时候乘以一个大点的数后取整即可

跑一下,获取二级域名并刷新显示纪录是没有问题的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.健全的请求框架需要注意的点
  • 1.1 忽略证书安全性发送请求时添加以下参数即可
  • 1.5 设置连接超时时间
  • 1.6 获取三种返回值
  • 2.方法的实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档