[Square 2022] Hard Copy 复现

news2024/11/26 10:35:19

原来一直没弄过TLS的流,今天看到一个WP,按这个一步步重来一遍。

Square的题目会一直开放下载  原题点这里

下来后的数据包包含一个go的原码程序和一个流量包

流量是经过加密的,所以看不到内容。

第一步就是取得RSA的公钥。先在包里找到 Server Hello Certificate, 的包,这里包含公钥。在下边的Certificate: xxxx 这点右键导出分组字节流。在另处会导出多余的东西,这里只要一个证书。

 这个证书是der格式的。用openssl 转成pem 证书 

openssl x509 -inform der -in cer.der -out cer.pem

证书是这样的

┌──(kali㉿kali)-[~/ctf/jule]
└─$ openssl x509 -inform der -in cer.der -publickey
-----BEGIN CERTIFICATE-----
MIIDCTCCAfGgAwIBAgIQU/j4K9G616sT/G9f82Yu/jANBgkqhkiG9w0BAQsFADAa
MRgwFgYDVQQKEw9NeSBDb29sIFByaW50ZXIwHhcNMjIxMTE2MTkxMTM3WhcNMjMw
MjE0MTkxMTM3WjAaMRgwFgYDVQQKEw9NeSBDb29sIFByaW50ZXIwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7HxjWHSOjL4bb4yJb16VsplrBaZJ1C9Dy
i7r5d/dO6coH5T3BnaCRl+2uQ4MSaGGnWnF7hBKvT12BPcGNI+qDjv37JRq+HpUV
iCcm0sGMy2i5gQUdk2DT21Z5pgimCHoZx2fmZQRlBvh4xARDGDD+m0ksREP1izXC
Z4gI0twh+75pNtv1D9xLUAZrMYVXNOkIKxYrkVsTHn6nEGEB43euOy3XbkgdS0DQ
xhWKx8/nM2LWyHpI83tXeBzXHhnetgeNtC0rWaz+x5x/sw2mcDnysumN0R7k7LVY
EFDx+YpRlm9C6xygFTJzhpjTSS3Ub6hR6c/tM0OiMsRWUqpwY7E7AgMBAAGjSzBJ
MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8E
AjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAnadS
aRPhPIqkZUMOBW3YsHCXc9wrxriwNPnO7BDpeczaezoEazYFcK4noFIR24aTZUyY
OyFZO2MTH5EQ+778D58qleO2IxX7Ui7c0gJuaFfsX0zEvTr5rvSpTdEuQQHHc5Bb
VyTqk4jvh0uNOahKDzKy/eMHEVXOY+b9UKEpZPoXQ5mVZ+yYgJBvuHYdjysPo0k2
i6RfIN/ZtdUfHgMQBpazD32cqDmDtPjvB/TP1+DUNvYrjYOZsjVIuzbTfZdffScY
wZ1uLk+PUfsPQMwCmEib4W7Qf+ApctWGPZ1v+2frSwPhZY3cftAojTp21pC9d13f
zOid8AIxlw6Gj6PYZA==
-----END CERTIFICATE-----

对这个证书到在线网站ssleye.com​​​​​​上转出n 和 e 当然也可以用程序

from Crypto.PublicKey import RSA 

f = open('cer.pem','rb').read()
pub = RSA.importKey(f)
n, e = pub.n,pub.e 
print(f"{n = }\n{e = }")

第二步根据printer.go里对p,q的描述

p是一个1024位的素数,q是p^(1<<1021)位+2*i,爆破一般素数的间隔是1000多,所以直接爆破2000范围内即可。

from z3 import *

n = 23621897539318735382781746886812894513691748769885872561608018745569703193093855463437952944858188722853908795670837963164709616242593638401041032595833264922632543233131776723436806335966522962980332524550454606209746603582382656306848557857064499642423449000991045716976106596626510521840476248557767311518172872788877427817242273511650663556017746625391305473837996013171596099512668142370526423632408066956471075397237532978090078953286385148467587638857728496028131872602103616105358742971697903227400622583960651099656237391304458477107349123418958226433986832338800716565565348303844157431915191481285604520251
e = 65537

#q = p + 2*i + (1<<(2048//2-3))
'''
r = 1<<1021
for i in range(1000):
    s = Solver()
    p,q = Ints('p q')
    s.add(p>0)
    s.add(q>0)
    s.add(p*q == n)
    s.add(q == p + r + 2*i)
    if s.check() == sat:
        print(i)
        d = s.model()
        p = d[p].as_long()
        q = d[q].as_long()
        print(f"{p = }\n{q = }")
        break 
      
#579
p = 142868719742863293783230979998595876793415956014235960922151036241155398557013175374929194646682931157376392447724131367775640007550829960268051112176549732008858300548786079341071746721635835744957674944791270662022918676753662719533721899116906331154776508780823125564615147531881573980598054432598254739019
q = 165339883928642242629847294883458685963640668251014793081329796385871983032700795766517754311983873160016406682708055537482988728652632038079657041006483997556079287226894265000609524171791597509889310313801896383127687512046470579717961037934509735800195322616396412844608553274191538518702473973801282757329

然后根据分解得到的p,q生成pem私钥证书

phi = (p-1)*(q-1)
from gmpy2 import invert 
d = invert(e, phi)
print(f"{d = }")

#d = 9400532671971129858222542083936815872127111397643978855902753206634472572425970739306426152476409052607729912871982619242546828527748976656507792104184313936359298717721437794283463479383293183964631468831353381823342557151412515970198776835529536218838915015866570995688753469744053296918099104912265273840691949686655715992589014464656027757651892151294209883699345261818253760961724945295415136166834702090266574962457088834177900317557100854147681109386784781178976305637394835754893756950628990148376816379799340092246538098974858552629104624969892840096009738614177925561065451704981409324313334874286334651425

from Crypto.PublicKey import RSA
priv_key = RSA.construct((n, e, d, p, q))
open('priv_key.pem', 'wb').write(priv_key.exportKey())

然后将这个证书导入到wireshark: 编辑-首选项-RSA密钥-Add New keyfile...

 重新打开wireshark,那些原来加密的流就可以看到了。

看流量这是个打印服务,找到 IPP Requst (Print-Job)将这个包里的数据导出

 保存为pdf 文件,打开就有flag了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跟海外大牌正面PK,中国品牌如何出圈?

摘要&#xff1a;品牌出海看似风光无限、满是商机&#xff0c;但拆解开来看&#xff0c;无论是打造品牌还是出海&#xff0c;都是很漫长的过程。 导语&#xff1a; 后疫情时代&#xff0c;品牌出海成为大势所趋&#xff0c;从蒙牛、花西子到蜜雪冰城&#xff0c;越来越多的品…

web前端框架Javascript开发基础之JavaScript作用域

在JavaScript中&#xff0c;对象和函数也是变量。在JavaScript中&#xff0c;作用域是你可以访问的变量、对象和函数的集合。JavaScript有函数作用域: 这个作用域在函数内变化。 一、本地JavaScript变量 一个变量声明在JavaScript函数内部&#xff0c;成为函数的局部变量。 …

智慧物联网无线协同代理技术解决方案: 边缘协同感知(EICS)技术解密

无线协同代理技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策&#xff0c;属于蓝奥声核心技术–边缘协同感知(EICS&#xff09;技术的关键支撑性技术之一。该项技术涉及物联网边缘域的无线通信技术领域&#xff0c;具体主要涉及网络服务节点与目标对象设备…

Hive+Spark离线数仓工业项目--ODS层及DWD层构建(1)

目标&#xff1a;自动化的ODS层与DWD层构建实现 - 掌握Hive以及Spark中建表的语法规则 - 实现项目开发环境的构建 - 自己要实现所有代码注释 - ODS层与DWD层整体运行测试成功 数仓分层回顾 目标&#xff1a;回顾一站制造项目分层设计 实施 ODS层 &#xff1a;原始数…

Vulnhub:Derpnstink靶机渗透

攻击机kali&#xff1a;192.168.56.108 靶机derpnstink&#xff1a;192.168.56.114 扫描同网段下存活主机 扫描服务版本信息 开启了21、22、80端口&#xff0c;分别对应着ftp、ssh、http服务&#xff0c;打开浏览器进行访问 查看源代码发现flag1和info.txt 点开info.txt 这个的…

volantis使用php实现Gitee友链

介绍 本文使用Gitee实现Volantis主题友链功能&#xff0c;其中友链使用的是site标签&#xff0c;因为该标签可以展示图片&#xff0c;如 {% sites repo:example.json api:https://example.dearxuan.com %} 友链api的最终路径为 api “版本” repo&#xff0c;如上面代码的最…

【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位(经纬度坐标与平面坐标转换法求解、几何绘图法求解)

【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位&#xff08;经纬度坐标与平面坐标转换法求解、几何绘图法求解&#xff09; 众所周知&#xff0c;如果已知三个点的坐标&#xff0c;到一个未知点的距离&#xff0c;则可以利用以距离为半径画…

初学Nginx

目录 &#xff08;一&#xff09;Nginx介绍 &#xff08;二&#xff09;Nginx安装和启动 1&#xff0c;Nginx的目录结构 2&#xff0c;查看Nginx版本指令 3&#xff0c;检查配置文件是否正确 4&#xff0c;启动和关闭Nginx服务 &#xff08;三&#xff09;Nginx的配置 1&a…

智能工厂数字孪生的运用

信息技术与制造业的融合是当前的发展趋势&#xff0c;数字孪生其中 就包括了“智能工厂”的技术。在过去几年的发展中&#xff0c;我国的工业企业已经初步形成了 5 层的信息化体系结构&#xff0c;而在新一代的智能工厂体系中&#xff0c;借助数字孪生技术让工厂实现智能化生产…

SpringMVC使用Jackson、双向关联的解决策略@JsonIgnore

目录:一、SpringMVC和Jackson的关系&#xff1a;二、Jackson解决双向关联导致的栈溢出问题的解决方法&#xff1a;三、如何使用JsonIgnore&#xff1a;一、SpringMVC和Jackson的关系&#xff1a; SpringMVC返回return Object类型数据给前端时会自动调用jackson将Object类型的数…

pytorch深度学习常用命令

文章目录命令目录.item().items&#xff08;&#xff09;最大值的索引torch.argmax(input, dimNone, keepdimFalse)_, predicted torch.max(outputs.data, 1).data.detachunsqueeze()squeeze()命令目录 .item() 只是一个值 &#xff08;浮点型的&#xff09;&#xff0c;适合…

计算机基础知识(基础入门小白专属)三

♥️作者&#xff1a;小刘在这里 ♥️每天分享云计算网络运维课堂笔记&#xff0c;疫情之下&#xff0c;你我素未谋面&#xff0c;但你一定要平平安安&#xff0c;一 起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放&#xff0c;…

精通MyBatis原理,看这两篇就够了!|原创

本文详细介绍了阅读MyBatis源码的学习思路&#xff0c;并且对源码做了详细注释&#xff0c;讲解了整个Mybatis的启动过程。本文篇幅较长&#xff0c;建议收藏阅读&#xff0c;非常适合用于面试前的重点复习。点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c…

BSV 上的零知识隐私机器学习

此前&#xff0c;我们已经演示了在 BSV 上运行一个成熟的深度神经网络&#xff0c;其中机器学习 (ML) 算法的输入和模型都是公开的。在实践中&#xff0c;通常希望将输入或模型保持在链下并因此保持私有&#xff0c;同时仍确保 ML 算法如实运行。我们通过将零知识证明 (ZKP) 应…

你确定没有滥用 goroutine 吗

写在前面 学习 golang &#xff0c;路还很长呢&#xff0c;犹记得刚开始学习 golang 的时候&#xff0c;写起来确实非常简单&#xff0c;有很多包和工具使用&#xff0c;不需要重复造轮子&#xff0c;但是要真的学好一门语言作为工具&#xff0c;对于其原理是非常有必要学懂的…

极限多标签学习综述(Extreme Multi-label Learning)

A Survey on Extreme Multi-label Learning 先给地址&#xff1a; https://arxiv.org/abs/2210.03968 博主曾整理过Multi-Label Image Classification&#xff08;多标签图像分类&#xff09;&#xff0c;但这类任务中所用的数据集往往较小&#xff0c;分类数量并不多。但在更…

JavaScript的原型链

JavaScript的原型链 JavaScript的继承主要是通过原型链实现的&#xff0c;所以理解原型链是掌握JavaScript继承的关键一环。原型链的继承的基本思想是通过原型链继承多个引用类型的属性和方法。 理解原型链 关于原型链的定义与理解&#xff1a; 每个构造函数都有一个原型对…

Python实现将位图描摹为彩色矢量 svg 图片的源代码,Python实现位图转彩色矢量代码

Color Trace 这是一个将位图描摹为彩色矢量 svg 图片的程序&#xff0c;是一个命令行工具&#xff0c;使用 Python 脚本实现&#xff0c;运行环境 Python3.8。 ✨ 效果 以一个字帖图片为例&#xff0c;这是 png 格式的位图&#xff08;370KB&#xff09;&#xff1a; 这是颜…

多智能体强化学习环境【星际争霸II】SMAC环境配置

多智能体强化学习这个领域中&#xff0c;很多Paper都使用的一个环境是——星际争多智能体挑战(StarCraft Multi-Agent Challenge, SMAC)。最近也配置了这个环境&#xff0c;把中间一些步骤记录下来。2022.12.26 文章目录1 环境介绍1.1 相关论文1.2 项目代码地址2 安装过程3 相关…

2023年pmp的考试时间是什么时候?(含pmp资料)

不出意外&#xff0c;按照原计划&#xff0c;就是3、6、9、12月&#xff0c;22年11月延期考试地区的考生或者退考的估计会在3月或者6月考。具体就及时关注官网消息。 ​新版中文报名网站&#xff1a;中国国际人才交流基金会 这里说一下PMP的基本考试情况&#xff1a; 【考试注…