Jump to content

0x00はじめに

この記事は、「2024年のカレッジネットワークセキュリティ管理操作およびメンテナンス競争」の詳細なソリューションです。これは、主にWeb、PWN、RE、その他、アルゴリズムなどの多方向質問の問題解決プロセスをターゲットにしています。

0x01 Misc

サインイン

GIFを与え、オンラインで直接フレーム化します

y2nvtbjrloa1033.png

synt {fvtava-dhvm-jryy-qbar}を取得し、Caesarを見て、rot13で直接デコードします

4tt1gsjwzrp1034.png

flag {signin-quiz-well-done}

Phing Emailの認識

電子メールソフトウェアを使用して表示するか、直接表示できるEML電子メールファイルを提供しました(面倒かもしれません)

11ets415aql1035.png

フラグ1

0eufmayx2tc1036.png

直接base64フラグを取得するためのデコード{welcometo}

gr0klifywn21037.png

フラグ2

次のコンテンツは、base64によってエンコードされた情報です

xiofn4czvg31038.png

3tjnm3beara1039.png

デコード後、それをチェックしてフラグを取得します{phishhunting}

44m2eu0kih41040.png

フラグ3

EMMLファイルの残りのコンテンツにはフラグがないため、送信者のドメイン名からのみ開始できます。

cretkgyh0pp1041.png

DNS分析を確認してください、ここに360脅威インテリジェンスセンターがあります

https://ti.360.net/domain/foobar-edu-cn.com

c4tg0xf1g1t1042.png

(このインテリジェンスセンターは、競争プロセスの分析履歴を記録するため、サブドメイン情報を見るだけでフラグを取得できます)

sbxs1sq3exn1043.png

クエリプロセスはまだ正常です

サードパーティのサービスプラットフォームに加えて、ドメイン名のTXTレコードを表示するためにWindowsに付属するNSLookupを使用することもできます。

nslookup -qt=txt foobar-edu-cn.com

lxsbr25jiiw1044.png

プロンプトによると、ドメイン名の下にサブドメイン名の分析レコードを見つけ、3つの方法で完全なフラグをスプライスする必要があります

ドメイン名は海外で適用されるため、多くの国内のウェブサイトを解析できないため、外国のウェブサイトを使用してゆっくりと試すことができます

https://www.virustotal.com/gui/domain/spf.foobar-edu-cn.com/detailsspf

psi0ggt43af1045.png

https://dnsspy.io/scan/foobar-edu-cn.comdefault._domainkey

4dzy21ta4xj1046.png

https://www.misk.com/tools/#dns/_dmarc.foobar-edu-cn.com_dmarc

gzvchzmjxhz1047.png

3つの部分を個別に取得し、フラグを取得するためにそれらをスプライシングします

flag_part1={n0wy0u

flag_part2=_kn0wh0wt0_

flag_part3=analys1sdns}

flag {n0wy0u_kn0wh0wt0_analys1sdns}

実際、これらの3つのサブドメインは、それぞれ対応するサービスを提供するSPF、DKIM、DMARCなど、電子メールサーバーに対応するいくつかのプロトコルです。

https://help.aliyun.com/document_detail/2685946.html

opd3wu51dne1048.png

easyshell

PCAPトラフィックパッケージを提供すると、horseが送信された後に実行する必要があるshell.phpのリクエストを郵送に直接確認できます。

qmc1gi53gdj1049.png

HTTPストリームをフィルタリングし、上記の推測を確認してください

aa4hgur2ioj1050.png

HTTPストリームを追跡すると、投稿のコンテンツが暗号化されます。 Ice Scorpion 4.0の質問と交通特性を組み合わせて、これはIce Scorpion Horseであると推測されます。

アイスサソリフロー特性:

Accept: Application/JSON、Text/JavaScript、 */*; Q=0.01Content-Type: Application/x-www-form-urlencodedConnection: Keep-Alive…ec4rxbj3zhb1051.png

Ice Scorpion 4.0はAES暗号化を使用し、デフォルトキーはE45E329FEB5D925Bです。つまり、MD5の最初の16ビット( 'Rebeyond')です。

Ice Scorpion 3.0、デフォルトのパスワードは次のとおりです。E45E329FEB5D925B、あなたはそれをチェックすることができます:backing_decrypt/decropt.Php

最後の応答パッケージからデコードしてみてください

ここでは、CyberのAES-CBCモードIVが空になることはできないが、オフセットする必要はないので、0に入力する必要があることに注意する必要があります。

4sevmt3zewb1052.png

5letdfyj3ef1053.png

コンテンツのあるものを見つけます

odbwrq5tn3u1054.png

giskvw4zp4m1055.png

toqbwrxjwub1056.png

リクエストパッケージがリクエストしているものをご覧ください。ここで、デコードされた結果を置くと、Secret2.txtファイルを読んでいることがわかります

jgggcbpqdqt1057.png

Secret2.txt

こんにちは、しかしあなたが探しているものは私ではありません。

次に、以前の応答パッケージでキーコンテンツを見つけます

ub5qw2azl321058.png

bwq02juf3dq1059.png

ZIP圧縮パッケージで、直接保存します

5y5aokfl4pr1060.png

zipを確認してください。Secret1.txtとSecret2.txtがあり、パスワードが必要です。

11jpq51yxgt1061.png

既知のsecret2.txtのコンテンツを組み合わせて、既知のプレーンテキストを介して攻撃することができます

最初にsecret2.txtを書き、それをzipとして保存して、元の暗号化アルゴリズムと同じであることを確認してください

l0v1ijra2px1062.png

プレーンテキスト攻撃を開始します。ここに小さなトリックがあります。取得するパスワードが表示されたら停止します。 [ポップアップ]ウィンドウをクリックして、解凍します。

oqvi43yhokq1063.png

Get Flag {70854278-EA0C-462E-BC18-468C7A04A505}

jiykxq0wmbl1064.png

secretdb

タイトルはSQLite DBファイルを提供し、遅すぎるだけで、あなたのためのフラグは開かれていません。

1jmy5om2qhx1065.png

削除された情報を復元する必要があります。直接復元されるツールはありません。復元できないか、文字化けしています。手動で抽出してみてください。

参照:https://www.cnblogs.com/jiangcsu/p/6569045.html

焦点は、ユニット内の構造にあります

fkspmx0belk1066.png

010editorはsecret.dbを開き、それをフラグに見つけて表示します。赤いボックスの下の部分は、以前に削除されたデータです。

jprvvqa1tyl1067.png

上記のデータベースフラグテーブルの構造から、列がID、ソート、メッセージであることがわかります。ソートは、ソートに使用されるインデックスです。メッセージは表示されている文字を保存するため、上記の図の可視文字、つまりメッセージ、および以前の数字がソートであることを単純に観察できます。たとえば、可視文字9の16進数は39であり、以前の数字は0Eであるため、インデックス0Eの値は9です。

sab01qcmfnv1068.png

したがって、残りの値を抽出します

0x17-

0x0 f

0xe 9

0x1b 7

0x10 3

0xa b

0x19 2

0x14 b

0xf 2

0x12-

0x23 4

0x16 6

0x1f a

0x25 8

0x2a

0x1e

0x5 f

0x3 g

0x11 c

0xc 0

0x4 {

0x22a

0x21 b

0x7 2

0x1d f

0x26 f

0x1c-

0x9 1

0x27 0

0xd-

0xb

0x8 9

0x1 l

0x13 4

0x29}

0x15 a

0x28 b

0x6 6

0x1a d

0x24 e

0x20 b

スクリプトを書き、それをソートし、フラグを出力します

f:としてopen( '1.txt'、 'r')

data=f.readlines()

out=['' for iの範囲(43)]

data:のiの場合

index、val=i.replace( '\ n'、 '').split( '')

index=int(index、16)

out [index]=val

flag=''

インデックス=0

out:のiの場合

print(hex(index)、i)

インデックス +=1

フラグ +=i

印刷(フラグ)

#flag {f6291bf0-923c-4ba6- 2d7-ffabba4e8f0b}

1つが欠けていて、それを爆破して旗を取得します{f6291bf0-923c-4ba6-82d7-ffabba4e8f0b}

ゲートウェイ

ゲートウェイソースコードを与え、index.htmlには製品名HS8145Vがあります

ydfgyvxszkv1069.png

クエリパスワード、cgi-bin/baseinfoset.jsonに一連のパスワードがあります

1jwtitpqyul1070.png

10611210110712710110449575653565456495151105561031064956505610310256521011041041021055310153102129

CGI-BIN/BASEINFOSET.JSONを検索します

https://github.com/iheshime/chinatelecom-esurfing-gateway-hg260-admin-password-algorithm

ゲートウェイ管理者の一般的な暗号化アルゴリズムであり、スクリプトがわずかに変更されたことがわかりました。

exp.py:

def passwd_decode(code) - str:

passwd_list=map(int、code.split( ''))

結果=[]

passwd_list:のiの場合

97=i=100または65=i=68:の場合

I +=22

Elif I 57:

i - =4

result.append(chr(i))

#print(i、chr(i))

return( '' .join(result))

passwd=passwd_decode( '10611210110712710110449575653565456495151105561031064956505610310256521011041021055310153102129')

印刷(passwd)

#flag {AD1985868133E8CF1828CB84ADBE5A5B}またはcode='106112101107127101104957565356545649515110556103103106495650561031025652101101021055310153102129' [:-1] 'baseinfoset_telecompassword':'1147355110693753113'list=map(int、code.split(' '))result=[] for for i in list: i- 57: i-=4 result.append(ch)プリント( '' .join(result))#flag {ad1985868133e8cf1828cb84adbe5a5b}

zip

#include arpa/inet.h

#include sys/wait.h

#include stdbool.h

#include stdlib.h

#include string.h

#include unistd.h

#include stdio.h

#include pty.h

Char Token [1024]、buf [1024];

void load(){

file *f=fopen( 'token.txt'、 'r');

fgets(token、sizeof(token)、f);

トークン[64]=0; //たぶん64バイトで十分です

fclose(f);

}

int cmmpstr(char const *a、char const *b){

MEMCMPを返します(a、b、strlen(a));

}

void zip(char *password){

intマスター、pid;

pid=forkpty(master、null、null、null);

if(pid==0){

char* argv []={'7z'、 'a'、 'flag.zip'、 'tmp/flag.txt'、 '-mem=aes256'、 '-p'、null};

execve( '/usr/bin/7z'、argv、null);

} それ以外{

CHARバッファー[4097];

while(true){

ssize_t n=read(master、buffer、4096);

if(n 0)break;

ffflush(stdout);

書き込み(1、バッファ、n);

バッファー[n]=0;

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...