Bugku Crypto 部分题目简单题解(二)

黄道十二官

打开附件后为一张图片

搜索了相关信息,需要使用到AZdecrypt软件

AZdecrypt下载:

Download AZdecrypt - MajorGeeks

官网下载的太慢,可以使用github

https://github.com/doranchak/azdecrypt

使用在线工具:

将图片内容识别转换为文本

但是这个在线工具识别的有点问题,需要将符号手打出来

%..@*>@?==%88%5
.@%#@@90-7$^=*@
17.(>()1@##-$40
~.*6?#%#8#=75+1
(*@*1%#>;0@5)%?
%*^=)&>=1%.+7&#
8681(+8*@@(.@@@
#*=#$3*#%.#%%.3
.*+7.7+@===+)61

将符号另存在.txt文本以内,命名为:“黄道十二官.txt”

根据大佬的代码,对txt文件进行重排

_sec = ""
with open(r"黄道十二官.txt", "r") as f:
    _sec = f.read()
 
assert len(_sec) > 0
 
_sec_lines = _sec.split("\n")
_line_num = len(_sec_lines)
_line_ch_cnt = len(_sec_lines[0])
_tmp = ""
 
for _i in range(_line_ch_cnt):
    for _j in range(0, _line_num):
        _tmp += _sec_lines[_j][(2 * _j + _i) % _line_ch_cnt]
 
_reformat_ = []
for _i in range(_line_num):
    _reformat_.append(_tmp[_i * _line_ch_cnt:(_i + 1) * _line_ch_cnt])
for _key in _reformat_:
    print("".join(_key))

运行脚本

%%>%;.@3*.#(#0+
@#+.@)8@7@*7@@1
#5&8=.*9@=)#6#7
>0#7%%8$+@-#5?*
13@?7-+(^(*==$$
1*=+#==^4~@)8%=
%=0.*&*.+8*1*1>
@#)8@76%=@%6%..
?#1(%15@(#>%...
 

使用AZdecrypt工具进行解密

导入重排后的.txt文件,点击solve

得到flag

flag{alphananke}

给你私钥吧

下载解压打开附件

使用大佬编写的脚本,具体知识还没掌握

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from gmpy2 import invert
import base64
f = open("pubkey.pem","rb").read()
pub = RSA.importKey(f)
n,e = pub.n,pub.e
#分解n得到pq
p=157790417717035275943197904823645145281147085252905247447260034051878691034747684303715336348507267921249655103263347914128144476912685213431110454636244692224328066884510063590700506729345331153483633231327359450199822698241355428609085077662488946173655043172957247264543259611018596088670385591091710018977
q=167343506005974003380506069679607737381940204686173214188860057004909006055220516074283090160430833007424970980655748310232878462615469792561310560310363430669700009093597847018287568821792168143170329382585883857083334915378884054389878477389765792275111293420203613159303898365894897865177093362621517279751
d = int(invert(e, (p - 1) * (q - 1)))
private_key = RSA.construct((n, e, d, p, q))
de = PKCS1_OAEP.new(private_key)
c = open('flag.enc').read()
c = base64.b64decode(c)
flag = de.decrypt(c)
print(flag)

运行得到flag

运行脚本时,脚本和以上文件需要在同一个文件夹下

一段新闻

下载解压打开附件

隐藏字符加密,使用在线工具

隐藏字符加密 - 一个工具箱 - 好用的在线工具都在这里!

解密出社会主义核心价值观

核心价值观编码,在线工具

核心价值观编码 - Bugku CTF

得到flag

7+1+0

下载解压打开附件后,

4nXna/V7t2LpdLI44mn0fQ==

看着像base64编码

解码后似乎不对

编写脚本后运行

import base64
c = '4nXna/V7t2LpdLI44mn0fQ=='
d = base64.b64decode(c)
flag = ''
n=0
for i in d:
    if n % 2 == 0:
        flag += chr(i-128)
    else:
        flag += chr(i)
    n+=1
print(flag)

得到flag

这是个盲兔子,竟然在唱歌!

下载解压打开附件

根据题目提示,应该是盲文

文本加密为盲文,可自设密码|文本在线加密解密工具

兔子,猜测为Rabbit加密

在线Rabbit加密 | Rabbit解密- 在线工具

音符解码

文本加密为音乐符号,可自设密码|文本在线加密解密工具

得到flag

道友不来算一算凶吉?

下载解压打开附件

查看txt文本

以及py文件

大佬编写的脚本

s='升益艮归妹井萃旅离旅困未济屯未济中孚未济升困噬嗑鼎震巽噬嗑解节井萃离未济蒙归妹大畜无妄解兑临睽升睽未济无妄遁涣归妹'
dic={'坤': '000000', '剥': '000001', '比': '000010', '观': '000011', '豫': '000100', '晋': '000101', '萃': '000110', '否': '000111', '谦': '001000', '艮': '001001', '蹇': '001010', '渐': '001011', '小过': '001100', '旅': '001101', '咸': '001110', '遁': '001111', '师': '010000', '蒙': '010001', '坎': '010010', '涣': '010011', '解': '010100', '未济': '010101', '困': '010110', '讼': '010111', '升': '011000', '蛊': '011001', '井': '011010', '巽': '011011', '恒': '011100', '鼎': '011101', '大过': '011110', '姤': '011111', '复': '100000', '颐': '100001', '屯': '100010', '益': '100011', '震': '100100', '噬嗑': '100101', '随': '100110', '无妄': '100111', '明夷': '101000', '贲': '101001', '既济': '101010', '家人': '101011', '丰': '101100', '离': '101101', '革': '101110', '同人': '101111', '临': '110000', '损': '110001', '节': '110010', '中孚': '110011', '归妹': '110100', '睽': '110101', '兑': '110110', '履': '110111', '泰': '111000', '大畜': '111001', '需': '111010', '小畜': '111011', '大壮': '111100', '大有': '111101', '夬': '111110', '乾': '111111'}
li=[]
k=0
for i in range(len(s)):
    if k ==1:
        k=0
        continue
    try:
        li.append(dic[s[i]])
    except:
        t=''
        t=t+s[i]+s[i+1]
        li.append(dic[t])
        k=1
ss=''.join(li)
print(ss)
a=1
b=0
enc=""
for i in ss:
    if a%8==0:
        b=b*2+int(i)
        enc=enc+chr(b)
        b=0
        a=1
    else:
        b=b*2+int(i)
        a=a+1
import base64
print(enc)
x=base64.b64decode(enc).decode()
def decrypt4(enc):
    temp=''
    offset=5
    for i in range(len(enc)):
        temp+=chr(ord(enc[i])+offset+i)
    return temp
print(x)
def decrypt5(flag):
    for a in range(1,200):
        enc = ''
        for i in flag:
            for k in range(200):
                 if (ord(i) - 97 - 7+26*k)%a==0:
                    enc+= chr((ord(i) - 97 - 7 + 26 * k) // a + 97)
                    break
        print(enc)
x=decrypt4(x)
print(x)
x=decrypt5(x)
#flag在输出的结果中

运行

flag{shaodayouxiduoduyijing}

Bugku刷题记录(五)_bugku 把猪困在猪圈里-CSDN博客

RSSSSSA

下载打开附件

编写脚本

import gmpy2
from functools import reduce
from Crypto.Util.number import long_to_bytes
def CRT(cipher, n):
    N = reduce(lambda x, y: x * y, (i for i in n))
    result = 0
    data = zip(cipher, n)
    for ci, ni in data:
        Ni = N // ni
        di = gmpy2.invert(Ni, ni)
        result += ci * Ni * di
    return result % N, N
e = 29
n= [30327806559308143170251580709344293187241377730282921872781575442079759214585250363018838833645033147048274099882927502135822532658361986843089038971809699440265951177983452623836631182131316783838858410002798162604085127069663694047960859197275399255233610031615817404372364349637055800705223698180870067436988096453852212302215116141417320041306889953482862584091194471138823690888819261753453934793173621702326066309884946089600954181869152898879815596750534117681142535676578782280108274188679221706983417414010745084946761574988283779791817969892384961589321416872995532377690950727835973399647956491090102555409, 21201945432185822273274384690776217497058902883149769388717005633136179247488270702594230376181288768858812012728332675867062647184506694171059959523739358150427193785288862325490483145892589156285417654675409522395461778047750713685913892924628709666682898716590870448590373784915689173142592010032611604863227130433544024508077340982534157235155525782725897976772958969688875400789351919632303930452916408599309209320071861151825269791353531470198408880292345886431587538581009065968803858039954194364023302947597373427552936469472639511930960050054058074397349282354505376836608524919420271358644040625272611834141, 22066722902445052583751020956045490471001229482392491124491605354676847417172264621341464938604744547196288089839857467414993454346487337649230414610787992018112868327537703873968574017809192037003789320466268844177192403612544118218277599434212247848173311593650429895564484864389688450385022488374534161927558878171030816097844863947341831453646609936063871558801826304657779664413322335636640541461530342335752307248094073705764721946570652851209785138013258495645549732438232440380725327458972312411697319199017195198686877941387699409525165884596929130086232751883272627080260637468553554114550895128931332556731, 22201854184449819277142185267444382273897841368693102934683821764656962395743826157719287435432760269046740745554089225345079284556882054478011586504345324432037743900501514661174050074095054738909658615769021337525829263909874107830437595890817773992121956416657353703784722839247395770361048793369307710079965231303120658766595423843609770605074056488132086912631857454296414163240447182566834479775710868231123976843543989150070863055009604342636257860806777650229259057896505901924417615469387152636729167180379751548900559610148369495057752373605259839922528981148145028120068953655171238962097381144518051147647, 23083840233620992224264526611828536460163558999895002497626591923027006640369297896797243966752151170505775381864181314027021495993588967339108820520528972816379841269197877268187639445751437743759925034716110259215833511647315164717603384871571434294945499053929574035111488209616165563966647430661297795173473421242368063748311843339991310650516321423828411278303633083702771322000349673510635860126984256969661571754688788776209025080804889751723316765593984981235995307564443348633486717797511234178142487310778666548407208267425343907584339092352000989025888560813696453621147789642611872568202165905056714548393, 23218822553600624275851570918327600443202628196986792799225558073420180848161120578874626283971398879263850567245985782927539083923897342980706479709569579629418591343916765139087666874177802508777776627037319228004136490718510415593236575453393195566284309655647871922536044561206875353630359295663312099218766232095780724182736486077598036512073334536846225792741359530446751954255489310204542643379502811042809497521182466190499994814904710462792494798490083908932248164953870969612782940162469775904944210724177461134898671189252356405455733124848794067548040801451291259009951270923040763880342053172756399581161, 15537621716770448782502134748692657546482394987891814167799488723003580500457315182184780510271452262025473252065075152671351786862081823121704341999623090322622893909472600153140827895279392030437881151726836273881483138361166633444702898613389403354997826623821941237846412179222285546753657710048063757827302566538233983504273873252358216792306525072453406699162260561047287090285490165275142295462447156551127598082848917540871566229207376989948730655600666112133543582179171414297735210520886697976984424647098383547804465263579778326244367614695099540268893495474464880528394459062149362976029449912614166126761]
c= [6046094125227689870033870506917812276305436053796436442363822401342062726188042561670757795460948077415972706427946093618320717744079441259077874700893204459036501380012163686628771354515016380758564221578468509762354597066344146672996248499856111282865676568650895987550682149774776905594210993204175895358464315828610392955454920047755436033052407392579110231386427222684373442110938309074563238848319417352567379700597401198483471415807726938645013860932841996827926718400267742249916874079269259123794751964917045940979213140450626289795549071713337129466329394763935853156424248229732551544822323764365359825485, 5845552286578226566598806127534836409831300694599972428266617271147189508983086233231766595846029052663890341733882461545982026551439575193608090205669127833427025577685774642780332691084053603909859869193052420285065348378657385164191605378649460509586471212644006322411828860570889277856429353408252263239239828396565949357208821626888694650997167695580553398057963048443171407094467284923234982142222808183498767632834628360161922076588397865384233638848062174627983119799111822718694488311274624762022407317556646065445367315918249540635444036633880194363965914260210883151429898423440605220973034396774973125632, 15903392352203298605877945674465143966769721737532685945162112598239954843499500918942681985964024463454447115748161245918002002655617193080894539813344429249706695035313266913563071057661003650948948239324748886703222675088558181086755212852968181312257303494407773363350004731534848190264255069536036133029778028229221293469762527695954265711168400217935692988501544247020837424584759831204521029707454822146517072769268420888169838807185669690437151962231817248323732857623620673773191557407520247312964435867860663874242179929967218588152288202476576081222176785925045418916462303292404117304143574686336544149629, 9669717038949021329020108540640237663067756966280810642417630134992373130879787768749181913381401511774773393506456589516952861294673561533008751071662723277608866325874519278507984666760149692092823573606053373801025601646795839172562607132726532904679698936251789947925155456255628127932509101557747423647220724762995217296493861282238350001729340519429193525028741636093329396359178973155083792632330011484299821599210312002159965537430090985352568581714148228760952230630659713444400585630168629530652207170759737992501963831886075598264013355139219445863531555822055994574891400262563108434859568651780227557975, 7914090642636266923294026791261427849044695562739254282481166732020837928041454353817133871854948761397284836379753705671724947241779482598081203575216043223216563037754382992648875469848870865515423794755447621640988585802308628444956443228403796584499863761840901610073862093944795357445536465073500157568848798543720484354000858578319564737563857043549861785205215491288782410945294230845471220683129677585701046542907136512616807429274294758158965956146717352157078092334387660733724142855367118044193694310952976603009653011262032422467651663006916850935081716939520365535884320814471253649009945816472423048447, 11988310991395265980081594718856590638441631362665678269045945813797124375621091172731397011814305000162712601455584541005431841875115788140698346738764417691906578333694503756521160780120138569779573589730959145320537390172280626510886154211649716255438845119004751973530199741765756641003306339421117668796100661313571568100843237996562080095649017634551873879219917272328238629844657368364890324594141674498942544827428056492747949043332622214494766621587698339619576784948756333563714427524714670635509179215190783959390410232309595570890592221268445440689742423642145049491551659385729937300897657450196112613804, 13758385300968829470189169449584800778823082473607121434049610051116374924292341244419430157132107552964735632092568046439074559673147580828760077490267517852677562615547566840913903686439783964549498803731879665085652815249977620067028187162008373600851339874309707587214786555705953533197711132611955125553398328736012543728815790951625456481002420603689802771155816294782083229750332438335093308789359642911367376579780093093577929312234635979675059828551040384269343053231849182709709271027703443106568079145606579815607660891685636327906452992083196131013003312334278998794497774078191519059014857427818993752773]
x, N = CRT(c, n)
m = gmpy2.iroot(gmpy2.mpz(x), e)[0]
print(long_to_bytes(m))

得到flag

告诉你个秘密

题目描述:636A56355279427363446C4A49454A7154534230526D684356445A31614342354E326C4B4946467A5769426961453067

(注意:题目进制为两段,需要将中间的空格删除才能成功转换)

十六进制转换为字符串16进制转换,16进制转换文本字符串,在线16进制转换 | 在线工具

cjV5RyBscDlJIEJqTSB0RmhCVDZ1aCB5N2lKIFFzWiBiaE0g

应该为base64解码

Base64在线加密解密-在线Base64加密解密工具-Base64编码解码工具

解码结果为:r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM 

看了题解才知道是 键盘加密

键盘里r5yg中对应的字母为T

以此解出其他几个字母,最终得到TONGYUAN(注意为大写)

使用flag{}包裹后提交

贝斯家族

题目描述:@iH<,{bdR2H;i6*Tm,Wx2izpx2!

base91解码,在线工具

Base91编码/解码 - 一个工具箱 - 好用的在线工具都在这里!

得到flag

.!?

下载打开附件

在线解码:Brainfuck/Text/Ook! obfuscator - deobfuscator. Decode and encode online.

点击Ook! to Text

得到flag

  来自宇宙的信号

下载打开附件后,得到一张图片

上网搜索银河字母加密

逐字对照,解出flag

flag{nopqrst}

相关推荐

  1. leetcode部分简单题解

    2024-05-11 01:30:03       25 阅读
  2. 题解

    2024-05-11 01:30:03       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 01:30:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 01:30:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 01:30:03       82 阅读
  4. Python语言-面向对象

    2024-05-11 01:30:03       91 阅读

热门阅读

  1. SCAU 动态规划算法

    2024-05-11 01:30:03       33 阅读
  2. MyBatis中if判断(踩坑)

    2024-05-11 01:30:03       30 阅读
  3. Android应用开发-回声消除AEC

    2024-05-11 01:30:03       41 阅读
  4. 设计模式——迭代器模式(Iterator)

    2024-05-11 01:30:03       30 阅读
  5. MySQL环境搭建

    2024-05-11 01:30:03       34 阅读
  6. 产业链图谱在优化供应链管理中的作用

    2024-05-11 01:30:03       35 阅读
  7. Channel实现Flutter与原生平台之间的双向通信

    2024-05-11 01:30:03       27 阅读
  8. 达梦数据库常用命令整理

    2024-05-11 01:30:03       24 阅读
  9. Android 11.0 mtk平台系统添加公共so库的配置方法

    2024-05-11 01:30:03       31 阅读
  10. VUE中可适化大屏的自适应

    2024-05-11 01:30:03       33 阅读