1. ホーム
  2. javascript

[解決済み] javascriptでハックすることは可能ですか?[クローズド]

2022-03-11 20:37:14

質問

ハッキングという言葉は知っている。詐欺やトラブルを起こすようなハッカーには決してならないが、問題解決が主目的である以上、プログラマーを名乗る者なら必ずできるようにならなければならない必須事項だと思っている。でも、それってどうやるの?ゲームやウェブサイトをハックする人たちや、ソニーをハックした人たちは、ANSI Cやc++、アセンブリなどのプログラミング言語を使うのでしょうか。仮にプログラミング言語を使っているとして、他の言語を使ってハックするのと同じように、javascriptを使ってハックすることは可能なのでしょうか。さらに、ハッキングもできるようになるには、何をすればいいのでしょうか。 私はただ、それがどのように機能するのか、そしてその背後にある理論について知りたいだけなのです。

解決するには?

ハッキングは毎回ユニークです。ある種の脆弱性を突くには、特定の言語はまったく必要ない。時には、そこにあるものなら何でも、どんな言語や形式であれ、ハッキングすることもあります。時には、パスワードの解読など、プロセスの一部を自動化する必要がありますが、その場合は好きな言語を使うことができます。

市販のゲームをクラックするには、そのゲームを研究することが一般的です。 ディスアセンブル マシンコードのどの部分がCDやライセンスのチェックを行うかを把握し、そのチェックをスキップするようにコードの数バイトを外科的に置き換えます。

ウェブサイトをハッキングする場合、開発者のちょっとした不手際を発見し、本来なら個人情報であるはずのデータを閲覧させたり、データを適切に消去していない場合にカスタムコードの実行を許可したりすることが一般的です。 SQLインジェクション は、データベースに送られる値が引用符("...")で適切に保護されていないために、引用符を脱した値を与えて自分のコマンドを実行できてしまうという、よくある欠陥です。 クロスサイトスクリプティング は、JavaScriptを使用したハッキングの一種です。ウェブサイトがURLや送信されたフォームデータからやみくもにパラメータを取り出し、安全にテキストとしてエンコードせずにページに表示する場合(心配なことによくあることです)、そのページで実行するために<script>タグを提供することができます。このようなURLにアクセスさせると、その人に代わってスクリプトを実行させることができます。コードインジェクションは、PHP(またはPerlなど)のサーバー側でも可能で、もしずさんなコードで 評価 -のような関数がある場合、あるいはサーバーの設定ミスにより、ユーザーがアップロードしたファイルをサーバーがスクリプトとして解釈してしまう場合です。

オペレーティングシステムやサーバープログラムをリモートでハッキングする場合、そのネットワークコマンドの処理にあるバグを利用することがあります。不正なネットワークコマンドの不適切な処理により、ユーザー認証のチェックが甘くなったり、ネットワークパケットに含まれるコードを直接実行したりする可能性があります。 バッファオーバーフロー .

Webブラウザ、プラグイン、ドキュメントビューワのバグは似ています。安全なタイプのファイルであるべきものが、非標準的な値や壊れた値で細工されることがあります。プログラマーがこれらのケースを安全に処理することを忘れた場合、ファイルタイプの正常な制限を逃れるためにしばしば使用されることがあります。

また、USBメモリやCDなどの物理的な交換や、ウイルス入りのソフトウェアをインストールするように説得することで、ウイルスをマシンに入れることも可能です。このようなウイルスは、(アンチウイルスソフトを避けるために)目的ごとに新しく書き直されることが多いのですが、一般的なものもあります。

暗号化が弱い、または実装が悪いと、暗号化されたデータやパスワードをブルートフォースで解読することができます。暗号化が存在しない場合、データの盗聴を直接許可してしまう可能性があります。暗号化の欠如は、認証されていないコマンドをユーザーまたはサーバーに送信することを許可する可能性もあります。

非常にわかりやすいパスワード、または変更されていないデフォルトのパスワードは、単純な推測でシステムに侵入することを可能にする場合があります。人によっては、どこでも同じパスワードを使用している場合があります。このような場合、ウェブサイトはユーザーの電子メールアカウントに簡単にアクセスでき、そのアカウントに関連するすべてを制御することができるようになります。また、ある安全でないウェブサイトでのパスワードの漏えいが、他の多くのウェブサイトのアカウントにアクセスするために使われる可能性があることも意味します。

そして、時には、ハッキングは ソーシャルエンジニアリング . 例えば、若手社員に電話をかけ、責任者のふりをして、社内情報を漏らしたり、パスワードをリセットさせたりすることを想像してみてください。フィッシングメールは、ソーシャルエンジニアリングの一種で、半自動的に行われる一般的なものです。

システムへの侵入は、これらのステップのうちの1つだけということはほとんどありません。多くの場合、システムを分析し、小さな欠陥を特定し、それを利用して有用な攻撃ベクトルが露出するかどうかを確認し、そこから分岐してより多くのアクセスを得るという長いプロセスを経ることになるのです。

もちろん、やったことはない。