CTFshow月饼杯crypto部分wp

crypto 1

题目描述:
密文如下:


第一行给出为自动密码,搜索到相关文章下载break_autokey.py和相关的词频统计脚本,修改ctext跑一下发现不对。一开始猜测密文做了简单移位,测试移位36时恰好密文全是大写字母,跑了一遍还是不对。认真审题注意到异或符号,扔到cyberchef里跑一下。恰好发现一个全部大写的情况
扔进脚本跑一下,密钥长度为10的时候跑出了结果。结果没了盗用下阿狸师傅的:

crypto2

题目没有描述,打开一看是个加密脚本。

# -*- coding:utf-8 -*-
#Author: Lazzarofrom itertools import *
from random import *
from string import *def encrypt(m, a, si):c=""for i in range(len(m)):c+=hex(((ord(m[i])) * a + ord(next(si))) % 128)[2:].zfill(2)return cif __name__ == "__main__":m = '****************************************************flag{*************}'assert(len(m)==71)a = randint(50,100)salt = ''.join(sample(ascii_uppercase, 4))si = cycle(salt.lower())c=encrypt(m, a, si)print(c)#3472184e657e50561c481f5c1c4e1938163e154431015e13062c1b073d4e3a444f4a5c5c7a071919167b034e1c29566647600c4e1c2956661b6c1f50622f0016317e563546202a

简单的凯撒密码,利用“flag”直接可以爆破出a,再爆破salt即可。由于脚本已删摘抄一下airrudder师傅的脚本。

from itertools import *
from random import *
from string import *
#author:airrudderdef encrypt(m, a, si):c=""for i in range(len(m)):c+=hex(((ord(m[i])) * a + ord(next(si))) % 128)[2:].zfill(2)return cif __name__ == "__main__":for i in range(50,100):for j in ascii_uppercase:si = cycle(j.lower())# if encrypt('f', i, si)=='1c':#  print('i =',i,'\tj =',j)if encrypt('l', i, si)=='29':print('i =',i,'\tj =',j)

直接爆破出a = 67,salt = ‘JESQ’,后面就随便做了。

crypto3

题目描述:

又是个加密脚本

# -*- coding:utf-8 -*-
#Author: Lazzarofrom Crypto.Util.number import getPrime,isPrime
from math import gamma
import randomdef nextPrime(n):n += 2 if n & 1 else 1while not isPrime(n):n += 2return ndef getNewPrime():A = getPrime(512)B = nextPrime(A - random.randint(1e4,1e5))return nextPrime(gamma(B+2)%A)p = getNewPrime()
q = getNewPrime()
r = getNewPrime()
n = p * q ** 2 * r ** 3
e = 0x10001
c = pow(flag,e,n)#pA=6814157460586876042804041951834304833424062437744287469257313954502540797027261340622077218188033865281590529907571701131297782609357118357982463723982789
#pB=6814157460586876042804041951834304833424062437744287469257313954502540797027261340622077218188033865281590529907571701131297782609357118357982463723922147
#qA=7145646366857234331692232566211321498245533826533958883943688415057871253511271731661019642050252046201115975396366275083424623329930477623781348477881291
#qB=7145646366857234331692232566211321498245533826533958883943688415057871253511271731661019642050252046201115975396366275083424623329930477623781348477807457
#n=4451906216583258787166698210560165433649728830889954633721198623488802305844782492171757604711145165920462286487680020347239300947225371917344589502941576734875830871998499135120227347066586066943289430156378296665669974728569678779668142712266780949126509440672273927433367293606776081254094682033167575930701870261219046464773708974194213798032346187463443317770758989273370488582862531630356263732232300508706676725203199729764016766683870925164232508407363688370458877688991733322055785233669885166225464068579486683574954699370175267031949720967812902215635630884502987094547523361027411501285252862476410213277925430392164226297316310465146003494714018456407793759170649913180823814850170639706664167149612984905056804131124522209409607977589884632999710708045656852149371030046919242039957767777840304466948549383597755811307383659188216421501912831203089570725388153416013596114462069777713822433178099904907224119
#c=1996198968748552041728429851810599627895157160099076033250854211280074825148767841655949210593646824507865483166496070951130337321360509148527292165245205219296211294789087358959553387392928560150390604911087085313000622842025416521494799132969818997182731021267942464323979261593380113740152841984062184326431879167516288834455296913822921806893572566867611541664848820247889274979245086440402996661226884320574824077910315143756471444347386795428338020162169391827182914043434253974549636668126789355991920452920806351939782281969098470635517019120996509180703896707990501216102290302162705699788457579330150149320348175742131887213742989509004374645723471497302400169849858253644606818874098604333865973357374444445825761600866472906771935670261641342221394488068630591190697667016958881530367047928341661857241378511420562236766886349565409774340321441504290366223243635878057759623855735794209219474650425139791831374

整个数论部分和阶乘最有关的就是威尔逊定理了,已知(pA-2)! = 1 mod pA,求(pA-n)! mod pA,直接死算从(pA-n+1)-1*……*(pA+2)-1,求逆使用欧几里得法就行了,附上脚本。

# -*- coding:utf-8 -*-
#Author: Lazzarofrom Crypto.Util.number import getPrime,isPrime
from math import gamma
import sympy
import randomdef gcd(a,b):while a!=0:a,b = b%a,areturn bdef nextPrime(n):n += 2 if n & 1 else 1while not isPrime(n):n += 2return ndef getNewPrime():A = getPrime(512)B = nextPrime(A - random.randint(1e4,1e5))return nextPrime(gamma(B+2)%A)def getNewPrime2(A,B):return nextPrime(gamma2(B,A))def gamma2(b,a):res = 1#print("final: "+str(a-2+1))for i in range(b+2,a-2+1):res = (res * findModReverse(i,a))%a#print(i)return resdef getni(x,a):for i in range(2,a):if (i*x)%a == 1:return idef findModReverse(a,m):#这个扩展欧几里得算法求模逆if gcd(a,m)!=1:return Noneu1,u2,u3 = 1,0,av1,v2,v3 = 0,1,mwhile v3!=0:q = u3//v3v1,v2,v3,u1,u2,u3 = (u1-q*v1),(u2-q*v2),(u3-q*v3),v1,v2,v3return u1%m#p = getNewPrime()
#q = getNewPrime()
#r = getNewPrime()
#n = p * q ** 2 * r ** 3
e = 0x10001
#c = pow(flag,e,n)pA=6814157460586876042804041951834304833424062437744287469257313954502540797027261340622077218188033865281590529907571701131297782609357118357982463723982789
pB=6814157460586876042804041951834304833424062437744287469257313954502540797027261340622077218188033865281590529907571701131297782609357118357982463723922147
qA=7145646366857234331692232566211321498245533826533958883943688415057871253511271731661019642050252046201115975396366275083424623329930477623781348477881291
qB=7145646366857234331692232566211321498245533826533958883943688415057871253511271731661019642050252046201115975396366275083424623329930477623781348477807457
n=4451906216583258787166698210560165433649728830889954633721198623488802305844782492171757604711145165920462286487680020347239300947225371917344589502941576734875830871998499135120227347066586066943289430156378296665669974728569678779668142712266780949126509440672273927433367293606776081254094682033167575930701870261219046464773708974194213798032346187463443317770758989273370488582862531630356263732232300508706676725203199729764016766683870925164232508407363688370458877688991733322055785233669885166225464068579486683574954699370175267031949720967812902215635630884502987094547523361027411501285252862476410213277925430392164226297316310465146003494714018456407793759170649913180823814850170639706664167149612984905056804131124522209409607977589884632999710708045656852149371030046919242039957767777840304466948549383597755811307383659188216421501912831203089570725388153416013596114462069777713822433178099904907224119
c=1996198968748552041728429851810599627895157160099076033250854211280074825148767841655949210593646824507865483166496070951130337321360509148527292165245205219296211294789087358959553387392928560150390604911087085313000622842025416521494799132969818997182731021267942464323979261593380113740152841984062184326431879167516288834455296913822921806893572566867611541664848820247889274979245086440402996661226884320574824077910315143756471444347386795428338020162169391827182914043434253974549636668126789355991920452920806351939782281969098470635517019120996509180703896707990501216102290302162705699788457579330150149320348175742131887213742989509004374645723471497302400169849858253644606818874098604333865973357374444445825761600866472906771935670261641342221394488068630591190697667016958881530367047928341661857241378511420562236766886349565409774340321441504290366223243635878057759623855735794209219474650425139791831374#print(getNewPrime2(pA,pB))
p = 721295413363782943575290202453254405609384962866760177823574558139524613289380285395875654962467791028293949737699221240830187032744030384932819874799211
q = 3112046822677655775872849946553212669700408142233774149727014153992463597788397754366224491840784669131576610049264423785236897140841668817147645049635999r = 8605581006163978513558138296576032102733660218879126657600237911024254611499452345790192297532366960817162346945271546520036031830535178172751208076290109f_n = (p-1)*(q*q-q)*(r*r*r-r*r)#print(findModReverse(e,f_n))
d = 3893796118845369439235581551299559681130294433914324573287346480568253612056224380636546037500153379857589128641230243165297526124111655151656456885394718320571011164662139031101601805935834789093718455506105414382703229813895443438508544153175032701351201540968823002419519523214390287666578730407931246445871807183537209694071828922295499346083880163169003198594519162159452952535381034048239423912932288087394862004236172433929593269810986943713662824358214779552898877881697861535560993274391395357266197384454357803117633435524780866783488594161973423232638616086772861225974312225600055495130373828730995856136891951667049900975798958834487417185610258985145585210434281769923883162243531194314167637519779543778335295761192135358383400455687647479329697758466764046259467201396085554561420952266156396111233306174055533779858729332820780458072338771340688204365931674201918683102590056383442579221021315973279544753m = pow(c,d,n)
print(hex(m))

CTFshow月饼杯crypto部分wp相关推荐

  1. CTFshow月饼杯(第二届) 中秋快乐 部分wp

    苟,都可以苟 只要我osint做的够快我就不会被刷掉.jpg 体验很好,下次还来( 注:tao2更新 目录 1.web web签到 2.crypto 我的木头啊!!! 一封信 3.misc proje ...

  2. ctfshow—月饼杯(第二届)web wp

    web签到 <?php //Author:H3h3QAQ include "flag.php"; highlight_file(__FILE__); error_report ...

  3. ctfshow 月饼杯(第二届) 部分WriteUp

    Misc 杂项签到 右键附件,从链接另存文件.然后用16进制编辑器或者你想用notepad也彳亍看文件尾,有一串base64,解码即可. ctfshow{we1come_to_mooncake_cap ...

  4. ctfshow渔人杯2021 部分WP

    图片较多,手机加载较慢 python写的及其拉胯,所以请见谅(是真的拉胯) 解题用的方法都是笨方法,大家知道怎么做了之后可以找简单的方法 已解题:签到抽奖.神仙姐姐.飘啊飘.感受下气氛.我跟你拼了.套 ...

  5. CTFSHOW愚人杯2023 部分wp

    web easy_signin url是base64编码后的文件名 直接读个index.php 然后查看源码 解码base64 easy_ssti 过滤了斜杠,不能访问根目录了,考虑手动拼接一个{{l ...

  6. CTFshow月饼杯(第二届) 中秋快乐 套套去哪儿出题思路+解法

    附件如上 题目名称:套套去哪儿 题目描述:套套在去一次旅游的路程中,在飞机上随手拍了这张照片,你能找出他在哪儿吗?(经过出题人的暴打,套套说这张照片是在2021年6月3号下午飞机航班"中途& ...

  7. ctfshow单身杯(dsb)个人wp

    目录 MISC签到 没大没小的串串 古典base re签到 pwn签到 MISC签到 wp直接都写在题目描述里面了 先进行一个破的爆 右键记事本打开发现base64编码 解码得到半个二维码 zsteg ...

  8. ctfshow 36D杯 crypto

    签到 本题考查rot47.键盘替换 密文:W9@F0>:2?0D9:07=28X/3/TUW/o/7/PUo/ST7/T/6/R 题目提示先rot在键盘 在在线网站进行rot47转换 得到(ho ...

  9. ctfshow单身杯

    目录 <1> web (1)签到(data协议) (2) easyPHP(awk执行命令) (3) 姻缘测试(ssti) (4) blog <2> Misc (1)misc签到 ...

最新文章

  1. web开发中的缓存问题的研究(一)
  2. 根本不存在 DIV + CSS 布局这回事
  3. 机器学习笔记—再谈广义线性模型
  4. linux mysql 静态库_Linux静态库与动态库实例详解
  5. 文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)
  6. setuptools清华源_setuptools与pip的依赖关系解决方案之间的差异
  7. Android卡片设置透明度失效问题
  8. Android 5.0 十大新特性
  9. 视频编码中的PAFF和MBAFF的区别 转自:http://blog.csdn.net/kerryhung/article/details/4433256...
  10. Visual Studio Code设置自定义背景图片
  11. SYN FLOOD WINCAP
  12. 【转】python技术博客
  13. html 的scor属性,[HTML] 通过 scrollWidth 属性滚动内容
  14. 离开谷歌回归斯坦福,“AI女神”李飞飞新动向揭晓
  15. 爬取今日头条街拍美女图片
  16. 机器学习:支持向量机
  17. 解决caffe编译时//usr/lib/x86_64-linux-gnu/libSM.so.6: undefined reference to `uuid_unparse_lower@UUI
  18. Java中IO(三、转换流与打印流)
  19. 怎么画计算机系统时空图,计算机系统结构中流水线的时空图怎么画
  20. LabVIEW自适应屏幕分辨率缩放

热门文章

  1. 3090微信java,微信推出RTX 3090 Aero 24G显卡,外形神似当年GTX 480
  2. theos的makefile写法
  3. openwrt ppoe拨号后数据为零的解决方法
  4. android8.0 odex 目录,安卓8.0合并ODEX工具
  5. MySQL数据库层优化基本概念
  6. Swoft 踩坑笔记六 - 代码调试
  7. K8S的POD容器内部访问外部虚拟IP
  8. 安卓apk反编译工具和方法
  9. JAVA_Lambda 表达式
  10. linux内核x86内存,Linux内核在X86上的虚拟内存管理