Crypto(CTF)

article/2025/8/23 20:20:14

Crypto方向CTF笔记

  • 一些知识

一些知识

-ZIP文件的16进制开头是 504B(0xPK)

-观察各种明显的进制

-wireshark异常流量分析,寻找data长度异常的包(将包的大小进行排序)。

-ZERO ONE(01)组合的字符串,考虑二进制转字符串或者摩斯密码

-替代密码(维吉尼亚密码,rot3,凯撒密码)。http://quipqiup.com/ 词频分析网站

-Python libnum库,求逆元、生成素数等功能。

-openssl查看.pub和.key文件。

-熟悉rsa计算流程

-栅栏密码以及W型,poem codes(诗歌密码)

-RSA低加密指数广播攻击:明文m和公钥e相同,攻击者利用拦截的密文c1,c2,c3…,和n1,n2,n3…。完成攻击。攻击原理:https://www.jianshu.com/p/8ebccf708c40

-base编码:base16(数字0-9和字母A-F)、base32(字母A-Z和数字2-7)、base64(A-Z、a-z、0-9、+、/)、base58(base58编码去掉了几个看起来会产生歧义的字符,如 0 (零), O (大写字母O), I (大写的字母i) and l (小写的字母L) ,和几个影响双击选择的字符,如/, +)。

-ICMP协议最主要的作用是PING

-openssl基本使用方法:

openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]

-in filename:指明私钥文件
-out filename:指明将提取出的公钥保存至指定文件中
-pubout:根据私钥提取出公钥
eg:查看公钥.key

openssl rsa -pubin -text -modulus -in gy.key

eg:利用私钥解密

openssl rsautl -decrypt -in key.txt -inkey psa.key -out flag.txt

-RSA解密脚本

import gmpy2
import rsa
p = 273821108020968288372911424519201044333
q = 280385007186315115828483000867559983517
n = 76775333340223961139427050707840417811156978085146970312315886671546666259161
e = 65537
d = int(gmpy2.invert(e,(p-1)*(q-1)))
privatekey = rsa.PrivateKey(n,e,d,p,q)
with open("E:\\fllllllag.txt","rb") as f:print(rsa.decrypt(f.read(),privatekey).decode())

-RSA公钥e常见值:3、17、65537

-openssl中pem文件格式:

version | pad | n | pad | e | pad | d | pad | p | pad | q | pad | x1 | pad | x2 | pad | x3
其中,pad是填充信息,x1=d mod (p−1),x2=d mod (q−1),x3=p−1 mod q
\x02为pad开头的标记,\x02后面两位的是内容长度
私钥信息按照上述顺序排列好之后,再进行base64编码。

-RSA素数分解问题:给定两个不同的n的时候一定要看看n1,n2有没有最大公约数(素数),如果有,那么该最大公约数就是两者共同的p

-RSA共模攻击:给定两个相同的n的时候,那就要考虑共模攻击了。
http://blog.chinaunix.net/uid-10376640-id-5820055.html

-维吉尼亚密码破解网站:https://guballa.de/vigenere-solver

-查看pem后缀文件

import gmpy2
from Crypto.Util.number import *
from Crypto.PublicKey import RSA#若给出公钥文件,从公钥文件中分解出n和e
public_key1 = RSA.importKey(open(r"G:\ctf\CTF题目\c2d6e7158d7b4cd6a747774f0bdc5f72\publickey1.pem",'rb').read())
public_key2 = RSA.importKey(open(r"G:\ctf\CTF题目\c2d6e7158d7b4cd6a747774f0bdc5f72\publickey2.pem",'rb').read())
#int型
n1 = public_key1.n
e1 = public_key1.e
n2 = public_key2.n
e2 = public_key2.e

-base64隐写术:在这里插入图片描述https://blog.csdn.net/l8947943/article/details/123507255

-RsaCtfTools使用方法:

将key.pem与cipher.bin移到与RsaCtfTool.py同目录下:sudo python3 RsaCtfTool.py --publickey key.pem --uncipherfile cipher.bin --attack fermat

http://chatgpt.dhexx.cn/article/CJGwfjKC.shtml

相关文章

CSK

参考博文:https://blog.csdn.net/qq_32763701/article/details/83691393 以及知乎大佬YaqiLYU的专栏 目标视觉跟踪(Visual Object Tracking),大家比较公认分为两大类:生成(generative)模型方法和判别(discriminative)模型方法,目…

cryptography

出现这个错误是因为缺少cryptography包,可以使用 pip install cryptography 安装cryptography包,如果安装cryptography失败 先检查一下自己的pip包是否为最新版本,在settings>Project>Project Interpreter里查看pip的版本 接下来使用ea…

C#---CSkin

一、都有哪些共功能 二、下载步骤 1、这个CSkin的下载和使用方法的地址:http://www.cskin.net/ 2、找到下载,直接点击下载 使用教程: 1.工具箱右键-新建项-命名CSkin。 2.将CSkin.dll拖到新建的工具箱栏里。 3.控件添加完毕,…

winfrom界面美化(cskin)

1.cskin控件的引用 2.可能会产生闪屏的问题 附: private void SetStyles() { base.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDo…

CSkin界面库案例分享

【小助手Demo】高仿彗星小助手-2014.8.26更新 http://bbs.cskin.net/forum.php?modviewthread&tid209&fromuid2 【Metro风格】Metro窗体DEMO-14.7.2版本 http://bbs.cskin.net/forum.php?modviewthread&tid84&fromuid2 【动画特效界面】动画特效组件使用DE…

CSkin界面库窗体设置

CSkin界面库是一款免费的C#界面库,具有小巧免费,拓展性强,容易上手等优点,适合用于中小规模软件的开发。使用这个界面一年多了,但一般最多也只是改改颜色之类的简单应用,官网也只给了简单的例子&#xff0c…

C# --CSkin的使用教程

下载和安装: http://www.cskin.net/ 在VS的工具箱右击,新建选项卡,比如CSkin4,在次选项卡空白处右击“选择项” 会弹出此窗口,选择浏览,找到cskin.dll,确定。 利用CSkin的第一步:…

C#窗体美化(CSKin组件)

写完了Web的WMS系统和OA系统,今天要开始写车载终端的程序了。之前给客户写ERP与MES的接口或者ERP与WMS等接口的时候用的都是窗体,所以这次直接使用窗体来写。不过窗体的话大家都知道比较丑,今天写学习一下使用CSKin组件来美化页面。 CSKin官方…

winform UI界面库CSkin

2022年再提到winform可能部分小伙伴要说 大清都亡了…哈哈 但是在工业领域winform还是有一席之地的,就是界面丑了点,今天给大家分享个界面库Cskin,其实网上也有很多界面库但是大部分是收费的,这个cskin就很良心了完全免费。 下载…

利用CSkin组件设计漂亮的WinForm登录界面

众所周知,WinForm具有快速开发的优点,但是美观方面一直被人诟病,一般美化都是采用第三方的组件来满足美化效果,这里我也利用Cskin组件来设计一个具有一定美感的登录界面, CSkin下载 CSkin的使用你可以自行查看下载后…

CSkin的使用

(1)前言 我相信学过C#过的朋友都会有一点觉得它的控件不什么好美化,而今天,小编则是教你们什么使用CSKIn这个好东西! (2)这个CSkin的下载和使用方法的地址:http://www.cskin.net/ …

C#界面库CSkin 使用简介

.net平台,c# 语言,开发很方便,支持拖拉拽生成界面,程序员只需要专注自己的业务逻辑即可,大大节省了开发时间。 但是呢,原生系统的界面比较丑陋,不太友好,需要再美化一下。.net平台因…

SpringMVC 基础教程 简单入门实例

spring MVC 入门教程二: 一个简单的入门实例教程 该实例的源码和实例中的jar 源码:http://download.csdn.net/detail/swingpyzf/5348563 所需要的jar: http://download.csdn.net/detail/swingpyzf/5348531 另外一篇关于SpringMVC 文件上传&#xff…

史上最全SpringMVC教程,从零开始带你深入♂学习(一)——SpringMVC快速入门、注解开发

SpringMVC框架(一)SpringMVC快速入门、注解开发 SpringMVC Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。 Spring MVC的特点: 领取资料 1. 轻量级,简单易学 2. 高效 , 基于请求响应的MVC框架 3. 与Spring兼容…

最全面的SpringMVC教程(四)——Controller 与 RestFul

前言 本文为 【SpringMVC教程】Controller 与 RestFul 相关内容介绍,具体将对控制器Controller,实现Controller接口,使用注解Controller,RequestMapping及RestFul 风格(包括:Rest架构的主要原则、什么是Res…

SpringMVC教程(一):环境搭建

环境:eclipsetomcat8.5 第一步:jar准备(基础包): commons-logging-1.1.1.jar jstl-1.2.jar spring-aop-4.0.4.RELEASE.jar spring-aspects-4.2.6.RELEASE.jar spring-beans-4.0.4.RELEASE.jar spring-context-4.0.4.RE…

myeclipse配置springmvc教程

之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希望能帮助到那些有需要的朋友。我是用的是MyEclipse2017 CI 3,相近版本应该都差不多。至于其他版本…

SpringMVC教程下篇

SpringMVC教程下篇 内容包括: 绑定数组: 将表单数据绑定到list: RequestMapping注解的三种用法: Controller方法返回值: 乱码问题总结 异常处理: 照片上传: RESTFUL支持&#xff…

最全面的SpringMVC教程(五)——文件上传与下载

前言 本文为 【SpringMVC教程】文件上传与下载 相关知识&#xff0c;具体将对使用MultipartResolver处理文件上传的步骤&#xff0c;两种文件下载方式&#xff08;直接向response的输出流中写入对应的文件流、使用 ResponseEntity<byte[]>来向前端返回文件&#xff09;等…

最全面的SpringMVC教程(三)——跨域问题

前言 本文为 【SpringMVC教程】跨域问题 相关内容介绍。当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同时&#xff0c;就会产生跨域。那么究竟什么是跨域&#xff0c;跨域问题该如何解决&#xff0c;本文具体将对同源策略&#xff0c;什么是跨域&#xff0…