Jump to content

1。フラグの提出形式

フラグ{th1s_!s_a_d4m0_4la9}

2。 PDFステガノグラフィ

writeup:オンラインワードを使用してPDFツールを使用してワードファイルに変換し、flag3https://App.xunjiepdf.com/pdf2word/StegSolveツールのフレームブラウザブラウザを使用して、静的画像ファイル形式のファイル形式を表示します。これは、主に画像の特定の情報を表示します。

データ抽出:データ抽出、写真の隠されたデータの抽出

フレームブラウザー:フレームブラウザーは、主にGIFなどのアニメーションを分解し、アニメーションが画像になり、簡単に表示されます。

画像combiner:パズル、画像ステッチ

1049983-20210806170733688-1639547127.png2。 QRコードには、位置付けパターンと呼ばれる3つの小さな正方形がありませんが、QRコード長方形のサイズをマークするために使用されます。 3つの位置決めパターンを使用して、QRコード長方形の位置と方向を識別および決定できます。 3.静的画像のスクリーンショットを保存し、Phoshtopツールを使用してQRコード画像を修復してからスキャンします

https://jiema.wwei.cn/(QRコードオンライン識別ツール)

iii。 GIFピクチャーステガノグラフィ

writeup:

1. JD-GUIで開き、直接検索:フラグ

1049983-20210806170734226-2031427154.png 1049983-20210806170735894-1564562099.png2。 base64を使用して、フラグを解読します{dajidali_jinwanchiji}

iv。 jar steganography

writeup:1。 WinHexを使用してこれらの写真を表示すると、利用可能な情報が見つかりませんでした。したがって、白黒はバイナリ0と1を表す可能性があると思いました。合計で104枚の写真があり、正確に8の倍数であり、8つの1バイナリシステムに変換してからASCIIコードに変換できます。たくさんの写真があるので、Pythonスクリプトを書きます。ここでは、Python Image Library PIL(Python Image Library)を使用します。これは、Python用のサードパーティ画像処理ライブラリです。 PILインポート画像から

結果=''

範囲(104):のIの場合

img=image.open(f'c: \\ users \\ backlion \\ desktop \\ ctf \\ jpg \\ gif \\ {i} .jpg ')

im_rgb=img.convert( 'rgb')#画像をRGBモードに変換する

r、g、b=im_rgb.getpixel((1,1))#xとy座標のRGB値をゲット

印刷(r、g、b)#この質問では、白い画像のRGB値:255,255,255ブラック画像RGB値:12,12,0

r!=255:#255が白の場合

結果+='1'

else:

結果+='0'

#バイナリをASCIIコードに変換します

範囲(0、len(result)、8):のiの場合

byte=result [i:i+8]

print(chr(int(byte、2))、end='')

'' '

rusult:

フラグ{fun_gif}

'' 2。オンラインバイナリから文字列http://www.txttool.com/wenben_binarystr.asp 1049983-20210806170736323-824509265.png

5。圧縮パッケージ暗号化された白黒写真

writeup:このメッセージは次のとおりです。 c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2writeup:1.この暗号化と復号化方法は非常に簡単に推測できます。文字は最大fであるため、16進数を推測するため、グループには2つあります。 2つのグループごとに、16進数を小数に変換します。データの各セットは127を超えていることがわかりますが、ASCIIコードの値は127以下ではないため、すべての値は128で差し引かれ、文字に変換され、フラグが取得されます。 string='c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eabae3f9e4eafae4e3eebfaebebebebebebebebebebebebe7e7e9f3e4e3e3e3e8ea893e2e4e4e6e6f2'

flag=''

範囲(0、len(string)、2):のiの場合

s='0x' + string [i] + string [i + 1]

flag +=chr(int(s、16)-128)

印刷(フラグ)2。取得:こんにちは、フレッシュドッグ!フラグは: hjzcydjzbjdcjkzkzkcugisdchjyjsbdfr注:jpocketknifeを使用して

6、ascii

の16進

Writeup:1を変換することもできます。テキストは次のように表示されます:ye duo xi xi xi xi duo duo duo lu mu lu three nephews three、3番目のne、3番目は、3番目は3番目です。3番目は3番目です。3番目は3番目です。3番目は3番目です。3番目は3番目です。 3番目、3番目は、3番目は、3番目の1つ、3番目は3番目、3番目は3番目です。3番目は3番目です。3番目は3番目です。3番目は3番目です。 3番目、3番目は、3番目は、3番目は、3番目は3番目です。3番目は、3番目は3番目です。3番目は3番目です。3番目は3番目です。3番目は3番目です。 3番目は、3番目のもの、3番目のもの、3番目のものは、3番目のもの、3番目のものは、3番目は、3番目は3番目です。3番目は3番目です。私はti病でti病であるのではないかと心配しています。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病でti病です。私はti病です

2。仏の言葉の意味は、オンライン翻訳ツールhttp://www.keyfc.net/bbs/tools/tudoucode.aspx:1049983-20210806170736841-882418160.png3を介して復号化できます。次に、復号化されたmzkum3gvmuawnzuvn3cgozmlmtuvqzaenjchmuaeqzwenzemljw9は、rot-13ツールを使用します(タイトルに記載されている「タタガタの13ヤシ」に従って)。

zmxhz3tizhnjamhia3ptbmzyzghidmnrawpuzhnrdmjramrzywj9を取得します

1049983-20210806170738486-1202624319.pnghttps://ROT13.com/(オンラインツール)Python Decryption:#Coding:UTF-8

文字列をインポートします

defデコーダー(crypt_str、shift):

crypt_list=list(crypt_str)

Plain_str=''

num=int(shift)

crypt_list:のChの場合

ch=ord(ch)

if ord( 'a')=chおよびch=ord( 'z'):

ch=ch + num

ch ord( 'z'):の場合

ch-=26

if ord( 'a')=chおよびch=ord( 'z'):

ch=ch +num

ch ord( 'z'):の場合

ch-=26

a=chr(ch)

Plain_str +=a

print(plain_str)

crypt_str=raw_input( 'crypto_text:')

印刷'!-------デコード------!'

シフト=13

Decoder(crypt_str、shift)注:rot13は、単純な交換エンタープライプアルゴリズムを使用して、最初の文字と最後の13文字を合成します。

4。Base64復号化

flag {bdscjhbkzmnfrdhbvvckijndskvbkjdsab}

7。仏を仏buddhで解読します

writeup:1。 Google Chromeを介してPDFファイルを開き、テキストコンテンツをテキストにコピーします

1049983-20210806170739240-1445752685.jpg 1049983-20210806170739829-1226725389.pngbaba Bbb ba bba ba ba ba ba b aab bbb ba aaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb baaaaaaaaaaaaaaabbb aaabb2。 Aababaスタイルのものの大部分は01だと思いますが、これらは分割されており、Mossパスワードのみを考えることができるため、Mossパスワードに変更しようとします。次に、「a」を「」、「b」に「 - 」に変更し、get -.--を変更します。 - 。 --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --.-- --..-- --..-- --...-- --...............................1049983-20210806170740268-681316427.pngCONGRATULATIONSnullFLAGnull1NV151BL3M3554G34.変換:Flagnull後に内容を取り、Letterを小文字に変更し、フォーマットフラグ{1NV151BL3M3554G3}を下位ケースに変換します:Flag {1NV151BL3M3554G3}

8。 PDFのMOMOSパスワードSteganography

基本知識:1。一般的なファイルヘッドおよびファイルテール構造:1049983-20210806170741902-1525952640.jpgWRITEUP:1。この場所はファイルヘッダーを表し、65はflag.txtのファイルの終わりです。a83cは検証コードを表します。したがって、7cはブロックタイプを表します。ここでは、ブロックタイプはファイルヘッダーです。1049983-20210806170743092-590535828.png2。 7bを入力して、74。1049983-20210806170743710-1863320468.png3に変更してください。保存して減圧してから、Sercet.pngをWinHexに投げて、ファイルヘッダーがGIF画像であることを確認し、接尾辞名を.gifに変更します。

通常のファイルエンコードに関する知識は次のとおりです。

JPG画像開始フラグ:FF D8エンドフラグ:FF D9

GIF画像開始フラグ:47 49 46 38 39 61エンドフラグ:01 01 00 3B

1049983-20210806170744364-828635658.png

1049983-20210806170745940-1299064485.png4。接尾辞名を.gifとして変更し、Stegsolveのフレームブラウザを使用して2つの写真に分解し、左と右の矢印を使用してレイヤーを選択してQRコードを分離して2つの不完全なQRコードを取得します。

1049983-20210806170746500-987564971.png

5。質問から、二重層の絵であることがわかります。 PSを使用して分離されたレイヤーを開き、保存します

(特定の手順:レイヤーをクリックします - レイヤーをコピー - OK、次にファイルをクリック - 保存- 保存)

1049983-20210806170747009-1082782632.png

1049983-20210806170747490-10134175.pngPSフルQRコード、スキャンしてフラグを取得する:flag {yanji4n_bu_we1shi}

6.オンラインPSツール:https://www.uupoop.com/ps/?hmsr=ps_menu(——色の範囲を選択し、1が表示できるQRコードに色域を調整してからスプライスします)

1049983-20210806170748147-136776722.png

9。破損したRARファイルのGIFステガノグラフィ

基本知識:1。ソースファイルデータ領域を圧縮します:

quqmjppiykq7564.png

50 4b 03 04:これはヘッダーファイルタグ(0x04034b50)です

14 03:ファイルの減圧の必要なpkwareバージョン

00 00:グローバルモードビットマーク(暗号化があるかどうかを判断するための重要なマーク)

08 00:圧縮方法

68 BF:最後の変更されたファイル時間

9b 48:最終変更されたファイル日付

Fe 32 7d 4b:CRC-32検証

E9 0D 00 00:圧縮後のサイズ

B5 1B 00 00:圧縮されていないサイズ

09 00:ファイル名の長さ

00 00:拡張レコード長

2。ソースファイルディレクトリ領域を圧縮します。

flk0miuyywj7565.png

50 4b 01 02:ディレクトリのファイルヘッダータグ(0x02014b50)

3F 03:圧縮に使用されるPKwareバージョン

14 03:ファイルの減圧の必要なpkwareバージョン

00 00:グローバルモードビットマーク(暗号化に重要な兆候があるかどうか、この変更はここで擬似暗号化のために行われ、09 00に変更して開きます。パスワードがあることが促されます)

08 00:圧縮方法

68 BF:最後の変更されたファイル時間

9b 48:最終変更されたファイル日付

Fe 32 7d 4b:CRC-32検証(1480b516)

E9 0D 00 00:圧縮サイズ(25)

B5 1B 00 00:圧縮されていないサイズ(23)

09 00:ファイル名の長さ

24 00:拡張フィールド長

00 00:ファイルコメントの長さ

00 00:ディスク開始番号

00 00:内部ファイル属性

20 80 ED 81:外部ファイル属性

00 00 00:ローカルヘッドオフセット

圧縮ソースファイルディレクトリエンドフラグ:

dl5grzx0c2i7566.png

50 4b 05 06:ディレクトリエンドタグ

00 00:現在のディスク番号

00 00:ディレクトリ領域はディスク番号を開始します

01 00:このディスクに記録された総数

01 00:カタログエリアの合計記録

5B 00 00 00:ディレクトリエリアサイズ

10 0E 00 00:ディレクトリ領域の最初のディスクへのオフセット

00 00:zipファイルコメントの長さ

次に、真と偽の暗号化を特定します

1.暗号化なし

圧縮されたソースファイルデータ領域のグローバル暗号化は00 00でなければなりません

圧縮ソースファイルディレクトリ領域のグローバルビットマークは00 00でなければなりません

2。偽の暗号化

圧縮されたソースファイルデータ領域のグローバル暗号化は00 00でなければなりません

圧縮ソースファイルディレクトリ領域のグローバルビットマークは09 00でなければなりません

3。真の暗号化

圧縮されたソースファイルデータ領域のグローバル暗号化は09 00でなければなりません

圧縮ソースファイルディレクトリ領域のグローバルビットマークは09 00WRITEUP:でなければなりません

1.グローバルな問題は00 00ですが、最後には09 00であるため、偽の暗号化です。 09 00から00 00を変更すると、ファイルを減圧して開くことができます。

1049983-20210806170749843-1584408947.png2。 zipcenop.jarツールjava-jarzipcenop.jarrxxx.zip 1049983-20210806170750265-791968010.pngを介してそれを復号化します。 TXTファイルを開くと、Base64パスワードがたくさん表示されますu3rlz2fub2dyyxboesbpcyb0agugyxj0igfuzcbzy2llbmnlig9mihdyaxrpbmcgaglkzgvuig1lc3nhz2vzigluihn1y2ggysb3yxk gdghhdcbubybvbmv=lcbhcgfydcbmcmcm9tihrozsbzzwkzxigyw5kigludgvuzgvkihjly2lwawvudcwgc3vzcgu=y3rzihrozsbleglgl zdgvuy2ugb2ygdghlig1lc3m=ywdllcbhigzvcm0gb2ygc2vjdxjpdhkgdghyb3vnacbvynnnjdxjpdhkuifs=agugd29yzcbzdgvn. yzwvrig9yawdpbibhbmqgbwvhbnmgimnvbmnlyw==bgvkihdyaxrpbmciigzyb20gdghliedyzwvrihdvcmrzihn0zwdhbm9zig1lyw5pbmcgimnvdmvyzwqgb3ig chjvdgvjdgvkiwgyw5kigdyyxbozwluig1lyw5pbmcginrvihc=cmml0zsiuifrozsbmaxjzdcbyzwnvcmrlzcb1c2ugb2ygdghlihrlcm0d2ffzigluide0otk gynkgsm9oyw5uzxmgvhjpdghlbwl1cybpbiboaxmgu3rlz2fub2dboawesigdhjlyv==dglzsbvvbibjcnlwdg9ncmfwahkgyw5kihn0zwdhbm9ncmfwhkggz glzz8==dwlzzwqgyxmgybibib29rig9uig1hz2ljlibhzw5lcmfsbhksig1lc3p=ywdlcyb3awxsigfwcgvhcib0bybizsbzb21ldghpbmcgzwxzogaw1hz2vzlc bhcnrpy2xlcywgc2hvchbpbmcgbglzdhmsig9yihnvbwugb3r=agvyignvdmvydgv4dcbhbmqsignsyxnzawnhhbgx5lcb0agugaglkzgvuig1lc3nhz2ugbwf5igj

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...