フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか?Nodejsクラッキングテストのケース、真実を教えてください!

一部のWebセキュリティ保護製品は、自動化されたツールによるアカウントパスワードの攻撃や解読を防ぐために、技術的な方法を採用しています。Webページでアカウントパスワード、さらにはCookieを暗号化してから、送信します。この暗号化された送信が、セキュリティ保護とクラッキング防止の目的を達成できることが期待されています。これは本当に機能しますか?ステップバイステップで見てみましょう。
例として、次の送信データを取り上げます。

保護の効果は何ですか?


POST / login / HTTP / 1.1
ホスト:192.168.80.131
ユーザーエージェント:Mozilla / 5.0(Windows NT 10.0; Win64; x64; rv:59.0)Gecko / 20100101 Firefox / 59.0
Accept:* / *
Accept-Language:en-US 、en; q = 0.5
Accept-Encoding:gzip、deflate
Referer:[http://192.168.80.131/login/?next=/](http://192.168.80.131/login/?next=/)
X-Requested -あり:XMLHttpRequest
Content-Length:443
Content-Type:multipart / form-data; border
=
--------------------------- 146043902153
Cookie:csrftoken = XJeOhq0dkSPVb3zBWhArYLNQxpqkm
接続:閉じる

------------ ----------------- 146043902153
Content-Disposition:form-data; name = "logname"
管理者

----------------------------- 146043902153
Content-Disposition:form-data; name = "logpass"
14e1b600b1fd579f47433b88e8d85291

------ ----------------------- 146043902153
Content-Disposition:form-data; name = "csrfmiddlewaretoken"
y7BblF2tcCBSQ6SZHLltrI1ocnWVQ0KcXVgo

------------ ----------------- 146043902153--


パスワード部分が暗号化されていることは明らかです。

攻撃者は何をしますか?


この種の保護された状況が発生した場合、攻撃者は一般的に何をしますか?

1.一般的な考え方:
辞書を解読する準備ができている->ウェブサイトのユーザー名パスワードの暗号化方法を調べる->スクリプト言語(JSなど)を使用してフロントエンドの暗号化方法をシミュレートし、解読辞書を使用する->暗号化されたブラスト辞書をロードしてフォースクラッキングを爆発させるリプレイツール。

2.偉大な神の考え:
辞書を解読する準備ができている->ウェブサイトのユーザー名とパスワードの暗号化方法を調べる-> NodeJにプレーンテキストのユーザー名とパスワードを要求する-> NodeJはJavaScript暗号化方法を直接呼び出して暗号化する-> NodeJは送信するウェブサイトを爆破する必要性に対する暗号化されたユーザー名とパスワード-> NodeJsは、ウェブサイトの応答に従ってユーザー名とパスワードが正しいかどうかを判断します->再生ツールを使用してループで爆破します。
フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

実際の戦闘訓練:


特定のWebサイトのログインページでは、パスワードは暗号化され、ユーザーのログインプロセス中に送信されます。

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

ログインが成功した場合、戻りエラーコードは0に

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

なります。ログインが失敗した場合、戻りエラーコードは-1になります。

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

ツールを使用する


Burpsuit、NodeJs
burpsuitは再生に使用され、nodejsは自動攻撃スクリプトの作成に使用されます。

実際の戦闘プロセス

 

1:ウェブサイトのパスワード暗号化方法を見つける


a)ログインページのソースコードを表示します

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

。form.append( "logpass"、hex_md5(hex_md5($( "#logpass")。val()))); hex_md5()が2回呼び出されてユーザーが入力したパスワードを暗号化します。

b)hex_md5()暗号化方式が定義されている場所を見つけます。

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!
 

2:NodeJsはJavaScript暗号化メソッドを呼び出して暗号化します


a)md5.jsファイルをローカルに保存し、exportを使用して暗号化方式を公開します。

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

b)NodeJsサーバーを作成し、http GETリクエストを受信します。server.js
ファイルを作成し、ファイルに次のコードを書き込みます

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

。c)md5.jsを参照して、nodejsが受信したユーザーパスワードを暗号化します。
暗号化コードをserver.jsに追加しますServer.jsコードは次のとおりです。

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

3:再生ツールを使用してループを爆破する


a)nodejsサーバーの
ノードserver.jsを開きます

。b)

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

ブラスト可能性をテストします。nodejsのWebサイトの戻り情報を確認します

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

。c)burpsuitを使用してnode.jsサーバーを再生します。

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

パスワードは正常に解読されました!


フロントエンドからアカウントのパスワードを暗号化することで、自動クラッキングを防ぐことはできますか? Nodejsクラッキングテストのケース、真実を教えてください!

結論として:


暗号化されたパスワードはまだ解読されており、暗号化されたアカウントのパスワードが自動的に解読されていないことを示しています。これは安全ではなく、理論に失敗しています。多くのセキュリティベンダーは、送信コンテンツを暗号化できると宣伝していますが、最初はパスが間違っていて、暗号化はどんなに優れていても役に立たないため、実際にはすべて役に立たず、無駄です。

自動クラッキングを防ぐ正しい考え:


上記の操作のように、パスワードの内容が暗号化されていないが、パスワードフィールド自体が暗号化されている場合はどうなりますか?そうすれば、確認するアカウントパスワードはありません!このようにして、実際の自動化されていないクラッキング攻撃が実現されます。

おすすめ

転載: blog.csdn.net/qq_43422918/article/details/114925578