私はハッキングという言葉をよく知っています。私は人を騙したり問題を起こしたりするようなハッカーになることは決してありませんが、主に問題解決に関するものであるため、プログラマーと自称する人ができる必要がある重要な側面であると信じています。しかし、それはどのように機能しますか?それらの人々がゲームやウェブサイト、またはソニーをハッキングした男をハッキングするとき、ANSI C、c++、またはアセンブリなどのプログラミング言語を使用しますか. 彼らがプログラミング言語を使用していると仮定すると、他の言語を使用してハッキングするのと同じ方法で、javascript を使用してハッキングすることは可能でしょうか。さらに、ハッキングできるようにするために何をしなければなりませんか。私はそれがどのように機能するか、そしてその背後にある理論を知りたいだけです.
5 に答える
ハッキングは毎回ユニークです。一部のタイプの脆弱性を悪用する場合、特定の言語はまったく必要ありません。どんな言語や形であれ、そこにあるものをハッキングすることがあります。場合によっては、プロセスの一部を自動化する必要があります。たとえば、パスワード クラッキングでは、任意の言語を使用できます。
市販のゲームをクラックするには、通常、逆アセンブルされたマシン コードを調査し、CD またはライセンスのチェックを行う部分を特定し、チェックがスキップされるようにコードの数バイトを外科的に置き換える必要があります。
ウェブサイトをハッキングすると、通常、開発者側の小さな不器用さが発見されます。これにより、本来あるべきプライベート データが表示されたり、データが適切にサニタイズされていない場合にカスタム コードの実行が許可されたりします。SQL インジェクションは、データベースに送信される値が引用符 ("...") 内で適切に保護されていない場合によくある欠陥であり、引用符を外して独自のコマンドを実行する値を指定できます。クロスサイト スクリプティングJavaScript を使用する一種のハッキング: Web サイトが URL または送信されたフォーム データからやみくもにパラメーターを取得し、それらをテキストとして安全にエンコードせずにページに表示する場合 (心配なことによくあることです)、実行用に <script> タグを提供できます。そのページ。誰かにそのような URL を訪問させることで、スクリプト化されたアクションを代わりに実行できます。ずさんなコードがevalのような関数にアクセスできる場合、またはサーバーの設定ミスにより、ユーザーがアップロードしたファイルをサーバーがスクリプトとして解釈できる場合は、PHP (または Perl など) を使用してサーバー側でもコード インジェクションが発生する可能性があります。
オペレーティング システムまたはサーバー プログラムをリモートでハッキングすると、ネットワーク コマンドの処理にバグが発生する可能性があります。不正なネットワーク コマンドを不適切に処理すると、ユーザー認証チェックに失敗したり、バッファ オーバーフローなどによって、ネットワーク パケットで提供されたコードを直接実行したりする可能性があります。
Web ブラウザー、プラグイン、ドキュメント ビューアーのバグも同様です。安全であるべきファイルの種類は、非標準または壊れた値で作成できます。プログラマがこれらのケースを安全に処理するのを忘れた場合、ファイル タイプの通常の制限を回避するために使用されることがよくあります。
ウイルスは、USB スティックや CD を物理的に交換したり、誰かにウイルスを含むソフトウェアをインストールさせたりすることで、マシンに侵入することもあります。このようなウイルスは、(ウイルス対策ソフトウェアを回避するために) 目的ごとに新しく作成されることがよくありますが、いくつかの一般的なウイルスが利用可能です。
暗号化が弱い、または不適切に実装されていると、暗号化されたデータまたはパスワードのブルート フォース デコードが許可される可能性があります。存在しない暗号化により、データの直接盗聴が許可される可能性があります。暗号化を行わないと、認証されていないコマンドがユーザーまたはサーバーに送信される可能性もあります。
非常に明白なパスワード、または変更されていないデフォルトのパスワードにより、単純な推測がシステムに侵入する可能性があります。どこでも同じパスワードを使用する人もいます。これにより、Web サイトは、ユーザーの電子メール アカウントにアクセスするだけで、それに関連付けられているすべてのものを制御できるようになります。また、1 つの安全でない Web サイトでのパスワード漏洩が、他の多くの Web サイトのアカウントへのアクセスに使用される可能性があることも意味します。
また、「ハッキング」がソーシャル エンジニアリングである場合もあります。たとえば、下級社員に電話をかけ、担当者になりすまして、だまして内部情報を開示させたり、パスワードをリセットさせたりすることを想像してみてください。フィッシング メールは、ソーシャル エンジニアリングの一般的な半自動化された形式です。
システムへの侵入がこれらの手順の 1 つにすぎないことはめったにありません。多くの場合、システムを分析し、小さな欠陥を特定し、それらを活用して有用な攻撃ベクトルが公開されているかどうかを確認し、そこから分岐してより多くのアクセスを取得するという長いプロセスです。
もちろんやったことはありません。
JavaScript では一種の「ハッキング」が可能です。アドレスバーから JavaScript を実行できます。javascript: alert("hello");
この Web サイトで、アドレス バーに入力してみてください。
このようにして、ローカル変数、たとえば Cookie を乗っ取ることができます。
ただし、javascript はクライアント側で実行されるためです。Cookie にアクセスするには、ワークステーションを使用する必要があります。これは、ログイン データを改ざんし、他人になりすますために使用できる手法です (サイトの構築が不適切な場合)。
これについてもっと知りたい場合は、「javascript ハッキング レッスン」がいくつかあります。
ちなみに、ハッキングとクラッキングには違いがあります。参考: http: //en.wikipedia.org/wiki/Hacker_ (programmer_subculture )
JavaScript を使用できるエクスプロイトは多数ありますが、おそらく最もよく知られているのは、クロスサイト スクリプティング (XSS) です。
http://en.wikipedia.org/wiki/Cross-site_scripting
マイケルの答えをフォローアップするために、ソフトウェアの脆弱性と、人々がそれらの脆弱性を悪用してそれらを保護する方法を知ることは良いことですが、ハッキングはあなたが知りたいものではありません.
まず、実際には、ハッキングではなく、クラッキングとして知られているものについて言及しています。この質問は確かに閉じられますが、いくつかの簡単な観察があります^_^
クラッキングは、コンピューター システムがどのように構築されているかを基本レベルで理解することから始まります。
ハッキングの一般的なプラットフォームは Linux です。経験豊富なプログラマーが独自のプログラムを作成できるように、オープン ソースとして Windows などで使用できます。経験豊富なハッカーは、どのプラットフォームでも目標を達成できます。
ハッキングにはさまざまなレベルがありますが、単純な Web サイトのセキュリティは、ソニーへのハッキングと刑務所に直面することとは別世界です ^_^
あなたはhttp://www.hackthis.co.ukでいくつかの楽しみを持っているかもしれません
たとえば、HTMLコードがどのように構成されているかなど、さまざまな要因によって異なります。たとえば、iframeをハッキングできるかどうかはわかりませんが、通常のWebページは比較的簡単にハッキングできます。プログラマーが通常行うもう1つのセキュリティの落とし穴は、URLクエリ文字列を介して機密情報を渡すことです。そうすれば、それらのデータを取得して、htmlコードで使用されている場所に送信できます。
別の詳細があるかもしれませんが、私は今それらを理解していません。