欢迎来到夜梓月的小仓库|

夜梓月

园龄:2年11个月粉丝:15关注:10

2023FSCTF-部分wp

Web

源码!启动!

开启环境
image

发现右键被禁用view-source:访问环境查看源码
image

NSSCTF{3d183ccd-e137-4318-ab35-8f5d35b691a8}

webshell是啥捏

image

image

GET传参👽这个外星人直接执行命令
image

FSCTF{h3llo_ctfe2_5ign_in_webshell_Is_e@sy_right}

Crypto

做不出来就别阴阳怪气啦

image

题目描述很明确直接阴阳怪气解码梭哈
image

FSCTF{Jiuzhe@JustSoSo}

RSA 1

image

image

题目上说flag是d,不会rsa,搜了一下网上的文章https://www.bilibili.com/read/cv13392301/
条件都满足直接输出d提交即可

点击查看代码
import gmpy2
import libnum

p=1458769258361
q=4556983871563
e=17


n=p*q
phi_n=(p-1)*(q-1)
#求逆元
#d=libnum.invmod(e,phi_n)
d=gmpy2.invert(e,phi_n)
print(d)

image

FSCTF{5865518808244394324786753}

RSA 2

image

image

条件都够直接梭哈,这里使用spmonky的工具直接跑即可
工具地址:https://github.com/spmonkey/Crypto
n的话用python算一下p*q就能得到了
image

FSCTF{20230824}
RSA 3
image

很明显的dp泄露,套用风二西师傅的脚本就可以直接梭哈出结果

点击查看代码
import gmpy2

import libnum

n= 12308543373374311860115195114269947739026255098864232126071500623399852788903738569949462616714391748269539072128882946132686996592089735285396762634029371785959865779256901123369306119124563405765293657606975290441243965513640680841871955014230301486214824204887945375140818283280272607903500556306646445508386218951500563603482945071727344737690804338144982687000734071274618240408238519378280819162796749148066754028700125846348589164721591354555019608871411236973606149388257533629388508942271702742078883636357856776193846813894734271905070538713351614750057245897158615891962167410053552739441195871000310777649
e= 65537

c= 1855798257044238280327042455832785889763141234883180404158555071443088630113034033050409259513632343742665544043437830959750873431928980910236398026670945184328950692568113819821699696418438157336263799808404698795433243968536256780396910914692949484556950491722527661706255009863481905590371725089587377065000354109396062360440021447607401687082247775453369117424848927386857425051097931983703966253652921113920387008048024308793686643944404541941182997963873579988680965558581885273185721576668001462817150245955628293258512024323515581063235248627223179117549540541642185815489978089367061102920114395871329023208
dp= 28196759050232165736649945458463681080421101473761579424309687746007021074159564720195299959516638110870101025657932732247788828322476803386736345945717104030991724584628153257976163663460034720811420324255626233108130037584679035250792445830510130682783638394418531763109219293027733347554816808577799709553


p=gmpy2.gcd(pow(2,e*dp,n)-2,n)

print(p)

for i in range(1, e):

    p = (dp * e - 1) // i + 1

    if n % p == 0:

        q = n // p

        print(p)

        break



phi_n = (p - 1) * (q - 1)

d = gmpy2.invert(e, phi_n)

m = pow(c, d, n)

print(m)

flag = libnum.n2s(int(m))

print(flag)

FSCTF{Cheese_snow_1eop@rd}

埃塞克的秘密

image

image

对着表一个一个找
u$r%uL%9o?<0J@FN
rot解码一个一个试,rot47
image

FSCTF{Th@nk_you}

Big_e

image

image

低解密指数攻击
工具地址:
https://github.com/pablocelayes/rsa-wiener-attack
image
要把exp.py放到同一目录下

点击查看代码
import  RSAwienerHacker
n = 12238605063252292170613110607692779326628090745751955692266649177882959231822580682548279800443278979485092243645806337103841086023159482786712759291169541633901936290854044069486201989034158882661270017305064348254800318759062921744741432214818915527537124001063995865927527037625277330117588414586505635959411443039463168463608235165929831344586283875119363703480280602514451713723663297066810128769907278246434745483846869482536367912810637275405943566734099622063142293421936734750356828712268385319217225803602442033960930413469179550331907541244416573641309943913383658451409219852933526106735587605884499707827
e = 11850552481503020257392808424743510851763548184936536180317707155841959788151862976445957810691568475609821000653594584717037528429828330763571556164988619635320288125983463358648887090031957900011546300841211712664477474767941406651977784177969001025954167441377912326806132232375497798238928464025466905201977180541053129691501120197010080001677260814313906843670652972019631997467352264392296894192998971542816081534808106792758008676039929763345402657578681818891775091140555977382868531202964486261123748663752490909455324860302967636149379567988941803701512680099398021640317868259975961261408500449965277690517

d =  RSAwienerHacker.hack_RSA(e,n)
if d:
    print(d)

就可以解出d了,后面就简单了
也可以直接费马分解n之后,直接用spmonkey师傅的工具梭哈
image

RSA签到

image

image

很明显e很短,低加密指数攻击

点击查看代码
import libnum

import gmpy2



n = 113369575322962228640839640796005129142256499725384495463316595604047079557930666699058024217561098997292782305151595366764483672240871690818579470888054811186902762990032505953330034837625667158114251720321766235335996441613828302393569643827293040591156144187232255906107532680524431761932215860898533224303
e = 3

c = 42336544435252811021843650684098817755849747192874682997240960601474927692351510022965782272751339319782351146077580929125


def exp(n, e, c):

    k = 0

    while 1:

        m1 = k * n + c

        m, t = gmpy2.iroot(m1, e)

        if t:

            print(m)

            print(k)

            print(libnum.n2s(int(m)))

            break

        k += 1

exp(n, e, c)

image

flag{sign_1n_RSA}

Do you know gcd?

直接套脚本
image

https://blog.csdn.net/bunner_/article/details/109198214

点击查看代码
import gmpy2


def get_p(n1, n2):
    p = gmpy2.gcd(n1, n2)
    assert gmpy2.is_prime(p) == True
    return p

def int_str(data):
    flag = ''
    while data:
        flag += chr(data & 0xff)
        data >>= 8
    return flag[::-1]

if __name__ == "__main__":
    n1 = 18680935400842120133090782991548100098299141114788036098274292600814484762178879421175852824971602717084073867867453382415307589970440719890918576225495401632854107018246844209327118177917122236073227158593514362850629722223228335334773008682775987859295083444638923726449899310854161394586430943134469559429878238769266114132469166535509030877235272476877484918308883799496627699789051809542538091061550107526246728583019140703765888157806778516567048103700384849598143249322109207879381251223776896702362630437178664824125387477797876186939235800859102380783259361745143574493440078787931593394188675093506492640857
    n2 = 16308523133405725830120564525574438512803584148781960516042054284309437381876822602134185065101371986717984978566359252072738078020261823966208153922611063201149105749778596739692554295573408850719208215646167050188830459343054219856901871953140988948482577813730729085764541988120049026971705499798003225755018687242522370406495429425494022876627543617474873929054728724093702291448754458748923218635900061398716191201846139296921753782690468189409101899415028480878296408735247604084627019116374444335509072590669239349212479592499426230525792270750612371117196200786891891430446212938482959351978202358044864822577
    c1 = 534518909595318304521410713148076850830155521838755402438490325620155197496935820831936109252194297244161393310730073882257949954815312409974998733265641354273665213856408848764503848122264972023143474923678585167025591255034150826271791019266426616987355463111138963331008761826310757292765842789380409826387579098421126952331558360737102888876551724241978020305977032047901621477384392409864427091911872691182528938458750707982564581322551517287491916691010743390992018974168703956622998928457142606354825714033609199676987795174032254878017883605565760275857658822315970522114838062469258676628619381342357632179
    c2 = 10248394002302905069278122013496854496130190499518622376819239887579692634750808499513497018453473232140518824608976734237637842228035017757831938865937098325684711995382081489403971465596662585196007547659143066184546400992333479193424580690897692586491475768279754939199148642035267049092880715299621206567123356521609120801306358100326600900326310677054810032471472266402660807205675696110133573150125117412696328434523507708110949743705536889950671778501402435457354251761692098671783596194430798692942013503015764266392551048702428063161786512924608239609802040937400619384828550050291094616346317726139970219621
    e = 65537
    p = get_p(n1, n2)
    q1 = n1 // p
    q2 = n2 // p
    d1 = gmpy2.invert(e, (p - 1) * (q1 - 1))
    d2 = gmpy2.invert(e, (p - 1) * (q2 - 1))
    m1 = gmpy2.powmod(c1, d1, n1)
    m2 = gmpy2.powmod(c2, d2, n2)
    print(int_str(m1) + int_str(m2))

MISC

Simple Encryption

image

下载附件之后,解压发现有密码,选择7z解压可以无视伪加密等
image

发现是头部错误已经提取出来了
image

FSCTF{Wei_Ji@mi_s0_EasY}

萧河

根据题目提示补全图片头
image

打开明显发现高度不够,p神工具梭哈
image

image

转个方向就好了
image

FSCTF{xiaojia_xiaohe}

为什么不换换思路捏

image

提示有反转,先看题目
image

base16
image

将结果反转
RlNDVEZ7U0B5X3RoYW5rX3kwdV9ob25nemgwX0RvZ0V9
反转之后base64解码
image

FSCTF{S@y_thank_y0u_hongzh0_DogE}

Reverse

MINE SWEEPER

image

下好之后直接记事本打开搜索FSCTF
FSCTF{We1C0m3 t0 rev w0r1d!!!}
ez_pycxor

网站反编译

image

image

是一个异或

点击查看代码
key = 'FUTURESTARS'
ciphertxt = [168,169,185,170,160,157,197,132,226,134,134,145,255,242,130,139,234,140,180,229,179,246,243,181,183,182,249,163,254,189,246,166]
encoded_flag = []
flag = []
for i in range(len(ciphertxt)):
    if i % 2 == 0:
        ciphertxt[i] ^= ord(key[i % 11])
    if i % 2 == 1:
        ciphertxt[i] ^= ord(key[i % 11])

print(ciphertxt)
for i in range(len(ciphertxt)):
    encoded_flag.append((ciphertxt[i] - i)^ 168)
print(encoded_flag)
for j in encoded_flag:
    flag.append(chr(j))
print("".join(flag))

image

FSCTF{8a3ccd61ab7ff9e87acb9c9d1}

Xor

ida64打开然后查看main函数f5
发现异或
image

点击查看代码
ciphertxt = [116,126,115,117,105,70,122,123,97,77,123,97,77,115,77,119,115,97,107,77,96,119,100,119,96,97,119,111,18]
encoded_flag = []
flag = []
for i in range(len(ciphertxt)):
    ciphertxt[i] ^= int("0x12", 16)

print(ciphertxt)
for j in ciphertxt:
    flag.append(chr(j))
print("".join(flag))

image

flag{This_is_a_easy_reverse}

本文作者:夜梓月

本文链接:https://www.cnblogs.com/zy4024/p/2023FSCTF_WP.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   夜梓月  阅读(207)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.