ネットワークセキュリティ工場の面接での質問

 自己紹介
srcを掘ったことがありますか?
普段、ウェブの侵入についてどのように学んでいますか?実際の戦闘はありますか? 脆弱性の発見に成功したことがありますか?
Web 侵入を行う際にどのようなツールを使用しましたか
? xxe 脆弱性とは何ですか? ssrfとは何ですか?
ctf をプレイしていたとき、自分はどのディレクションを担当していましたか
? なぜ情報セキュリティに携わりたいと思ったのですか? セキュリティにどの程度興味がありますか? 将来的に転職する予定はありますか? それとも今後もセキュリティに携わるつもりですか
?方向性 (アプリのセキュリティ)、学習にどのくらいの時間を費やしますか、またはやりたい方向性はありますか?
コード監査のプロセスについて話しましょう。コード監査は通常どのように行っていますか?オープンソースを監査したことがありますか
?
フレームワークとCMSは?
データベースが mysql か oracle かを判断するにはどうすればよいですか?
SQLインジェクションの種類とその使い方は?
SQL インジェクションの原理と防御の考え方について話しましょう。
開発を行うときにどの言語を使用しますか?
Java 開発を行うときにどのフレームワークを使用しますか? Java セキュリティ開発はできますか?
Android 開発を行ったことがありますか?
ツールを書いたことがありますか? Pythonで?
msf によって使用されている脆弱性はどれですか?また、それは正常にリバウンドしましたか?
ネットワークを保護するときに主に何をしていましたか? セキュリティ製品についてのあなたの理解について話しましょう。
会社は現在、アプリ セキュリティを実行できる人を必要としています。今すぐ実行したい場合は、学習しますか、または興味がありますか、その他やりたいが、アプリのセキュリティはやりたくない場合、
イントラネットの侵入の学習にどのくらいの時間を費やすことができますか? イントラネット普及の考え方を語る
面接質問集


1.大昌市で頻繁に聞かれる面接の質問まとめ

今回は、大手セキュリティ ベンダーのネットワーク セキュリティ サービス職 (セキュリティ サービス エンジニア、セキュリティ オペレーション エンジニア、セキュリティ オペレーションおよびメンテナンス エンジニア、セキュリティ攻撃および防御エンジニアを含むがこれらに限定されない) の面接での質問を 3 か月かけて整理しました。

早速、一緒に学びましょう

現時点では、まだ不正確さと冗長な部分がたくさんあるので、友人に修正と修正をお願いします。


1.1. SQL インジェクション保護方法
無効な認証とセッション管理
クロスサイト スクリプティング攻撃 XSS による
安全でないオブジェクトへの直接参照
セキュリティ設定エラー
機密情報の漏洩
機能レベルのアクセス制御の欠如
クロスサイト リクエスト フォージェリ CSRF
は既知の脆弱性を持つコンポーネントを
検証なしで使用 リダイレクトおよび転送
1.2 一般的な Web セキュリティの脆弱性
SQL インジェクション
XSS
ファイル トラバーサル、ファイル アップロード、ファイル ダウンロード
垂直方向および水平方向のオーバーリーチ
論理的な抜け穴
まず第一に、新人の場合、ほとんどの学生は実務経験がなく、面接官の質問に対応する ペネトレーション テストについて話す練習はできても、話す術がない人がたくさんいます。
1.3. Web サイトを想定して、どのように侵入テストを実施しましたか? 
書面による許可を取得するという前提の下で。

1) 情報収集

ドメイン名のWhois情報を取得し、登録者のメールアドレス、名前、電話番号などを取得します。
サーバー サイド サイトとサブドメイン サイトのクエリ。一般にメイン サイトの方が難しいため、まずサイド サイトに共通の cms やその他の抜け穴がないか確認します。
サーバーのオペレーティング システムのバージョン、Web ミドルウェアを確認し、IIS、APACHE、NGINX 解析の脆弱性などの既知の脆弱性があるかどうかを確認します。 IP を確認し、IP
アドレスとポートをスキャンし、rsync、Heartbleed、mysql などの対応するポートの脆弱性を検出します。 、ftp、ssh の弱いパスワードなど。Web サイトのディレクトリ構造をスキャンして、ディレクトリを横断できるかどうかを確認するか、PHP プローブや Google ハック
などの機密ファイルを漏洩して、 Web サイト情報、バックグラウンド、機密ファイルをさらに検出します。

2) 脆弱性スキャン

XSS、XSRF、SQL インジェクション、コード実行、コマンド実行、不正アクセス、ディレクトリ読み取り、任意のファイル読み取り、ダウンロード、ファイル インクルード、リモート コマンド実行、弱いパスワード、アップロード、エディターの脆弱性、ブルート フォース クラッキングなどの脆弱性の検出を開始します
。待って

3) 搾取

上記のメソッドを使用して、WebShell またはその他の権限を取得します。

4) 権限昇格

権限昇格サーバー (Windows での mysql の udf 権限昇格、serv-u 権限昇格、iis6 などの下位バージョンの Windows の脆弱性、pr、ブラジリアン バーベキュー、Linux チベット牛の脆弱性、Linux カーネル バージョンの脆弱性、権限昇格、mysql など) Linux上のシステムの
特権エスカレーションと Oracle の低特権エスカレーション

5) ログのクリーニング

6) 概要レポートと修理計画

1.4. ペネトレーションテストプロセス
プロジェクトインタビュー
情報収集: Whois、WebサイトソースIP、サイドステーション、CセグメントWebサイト、サーバーシステムバージョン、コンテナバージョン、プログラムバージョン、データベースタイプ、第2レベルドメイン名、ファイアウォール、メンテナ情報 脆弱性スキャン: Nessus
、AWVS
手動マイニング: 論理脆弱性の
検証 脆弱性の
修復提案
(ある場合) ベースライン チェック/再テスト 脆弱性
出力レポート
の概要
テスト 基本情報テスト
範囲テスト
時間
テスト
タスクテスト プロセス
情報セキュリティ リスクの包括的な分析 全体的なリスク
分析 リスク
影響分析
システム セキュリティ分析 セキュリティ
脆弱性リスト
解決策の提案
再テストレポート
SQL インタビューの質問

1.5. SQL インジェクションの種類は 、
エラー インジェクションに基づいています
。ブールベースのインジェクションは、返されたページに基づいて条件が true か false かを判断します。時間
ベースのブラインド インジェクションは、ページによって返されたコンテンツに基づいて情報を判断することはできません。条件文を使用して、時間遅延文が実行されるかどうか(つまり、時間が増加するかどうかをページが返すかどうか)を確認して判断します。
ワイドバイトインジェクション
ジョイントクエリ、ユニオンインジェクションを使用できます。
ヒープ クエリ インジェクション。複数のステートメントのインジェクションを同時に実行できます。
7.6. SQL インジェクションの原理
SQL コマンドを Web フォームに挿入して、ドメイン名またはページ リクエストのクエリ文字列を送信または入力することにより、最終的にサーバーは悪意のある SQL コマンドを実行するように仕向けられます。多くの場合、チェックされていない、またはチェックが不十分なユーザー入力データやコード作成の問題が、誤ってコードの実行になってしまいます。

1.7. SQL インジェクションを防御する方法
アプリケーション エラー プロンプトを閉じる
waf
をフィルター入力に追加する
入力長を
制限する データベース アクセス許可、ドロップ/作成/切り捨て、その他のアクセス許可を
制限する Python と Php? で一般的に使用されるプリコンパイル済み SQL ステートメントを慎重に付与します。この方法は、プログラミングフレームワークの観点からSQLインジェクションをプレースホルダーパラメータを用いて解決するものであり、ある程度インジェクションを防ぐことができるとしか言えません。バッファオーバーフローや終了文字などもあります。
データベース情報の暗号化とセキュリティ (暗号化につながります)。レインボー テーブルがあるため、md5 は使用しないでください。通常は md5 の後にソルトを追加し、次に md5 の
明確なプログラミング仕様、ペアリング/自動コード レビュー、既製のソリューション (PreparedStatement、ActiveRecord、曖昧な文字フィルタリング、アクセス可能なストアド プロシージャのみ) を多数追加します。 balabala) SQL インジェクションのリスクは非常に低くなりました。
特定の言語でのインジェクションを防ぐ方法、どのセキュリティ フレームワーク
1.8 と sqlmap が使用されるか、インジェクション ポイントをインジェクションする方法は?
getモデルの場合は直接 sqlmap -u "ポイントURLなど"
ポイントなどの投稿タイプの場合は sqlmap -u "注入ポイントURL" --data="ポストパラメータ" であれ
ばCookie、X-Forwarded-For Wait、アクセスできるようになったら、burpsuite を使用してパッケージをキャプチャし、注入サイトを * に置き換えてファイルに入れ、sqlmap -r "file address" 1.9 を実行します
。 mysql ウェブサイト インジェクション、5.0 以上と 5.0 以下の違いは何ですか?
5.0は10年前にリリースされましたが、今は5.7です、それは意味がありません
5.0以下では、information_schemaシステムテーブルが存在せず、名前のリスト化などが不可能で、テーブル名を乱暴に実行することしかできません。
5.0 未満はマルチユーザーの単一操作、5.0 より大きいはマルチユーザーのマルチ操作です。
1.10. MySQL ストレージ エンジン?
1. InnoDB: 主流のストレージ エンジン。トランザクションのサポート、行ロックのサポート、非ロック読み取りのサポート、外部キー制約のサポート

MySQL に、コミット、ロールバック、およびクラッシュ回復機能を備えたトランザクションセーフ (ACID 準拠) ストレージ エンジンを提供します。InnoDB は行レベルでロックし、SELECT ステートメントで Oracle のような非ロック読み取りも提供します。これらの機能により、マルチユーザーの展開とパフォーマンスが向上します。SQL クエリでは、同じクエリ内であっても、InnoDB テーブルと他の MySQL テーブル タイプを自由に組み合わせることができます。InnoDB ストレージ エンジンは、データと
インデックスをメイン メモリにキャッシュするための独自のバッファ プールを維持します。InnoDB は、テーブルとインデックスを論理テーブルスペースに編成します。論理テーブルスペースには、複数のファイル (または RAW ディスク ファイル) を含めることができます。これは、たとえば、各テーブルが別個のファイルに格納される MyISAM テーブルとは異なります。InnoDB テーブルは任意のサイズにできます。ファイル サイズが 2GB に制限されているオペレーティング システムでも、
InnoDB は外部キー整合性制約をサポートしています。テーブルにデータを格納するとき、各テーブルは主キーの順序で格納されます。そうでない場合は、テーブルに表示される 定義時に主キーを指定すると、InnoDB は行ごとに 6 バイトの ROWID を生成し、それを主キーとして使用します
2. MyISAM: 高速アクセス、トランザクションをサポートせず、徐々に排除されます
3. MEMORY : BTREE インデックスまたは HASH インデックス。テーブル内のデータをメモリに配置すると、同時実行パフォーマンスが低下します。
4. MERGE、Archiveなどは一般的には使用されません

1.11. トランザクションとは何ですか?
トランザクションは、アトミックな SQL ステートメントのセット、または独立した作業単位です。データベース エンジンがこの SQL ステートメントのセットをデータベースに正常に適用できれば、トランザクションが実行されます。クラッシュやその他の理由でステートメントが実行できない場合は、トランザクションが実行されます。の場合、すべてのステートメントは実行されません。つまり、トランザクション内のステートメントはすべて正常に実行されるか、すべて実行に失敗します。
銀行アプリケーションの典型的な例:

銀行のデータベースに小切手テーブルと普通預金テーブルの 2 つのテーブルがあるとします。顧客 A が当座預金口座から普通預金口座に 2,000 元を送金したい場合、少なくとも 3 つの手順が必要です。

a. A さんの当座預金口座の残高が 2,000 元を超えているかどうかを確認します。

b. A の当座預金残高から 2,000 元を差し引きます。

c. A の普通預金口座残高に 2,000 ドルを追加します。

これら 3 つのステップは 1 つのトランザクションにパッケージ化する必要があります。いずれかのステップが失敗した場合は、すべてのステップをロールバックする必要があります。そうしないと、銀行顧客である A は、何らかの問題が発生して、不可解にも 2,000 元を失う可能性があります。これは典型的なトランザクションです。このトランザクションは、分割できない最小の作業単位です。トランザクション全体のすべての操作は、正常に送信されるか、失敗した場合はロールバックされます。一部だけを実行することは不可能です。これは、 のアトミック機能でもあります。トランザクション。

1.12. 読み取りロックと書き込みロック
読み取りロックは共有され、つまり相互にブロックされず、複数のクライアントが互いに干渉することなく同時に同じリソースを読み取ることができます。書き込みロックは排他的です。つまり、書き込みロックは他の書き込みロックと読み取りロックをブロックします。この方法でのみ、指定された時間内に 1 人のユーザーのみが書き込みを実行できるようになり、書き込み中の同じリソースを他のユーザーが読み取れないようにすることができます。 。書き込みロックは読み取りロックよりも優先されます。

1.13. MySQL インデックス
インデックスは、MySQL がデータを効率的に取得するのに役立つデータ構造です。MYISAM および InnoDB ストレージ エンジンは BTree インデックスのみをサポートしますが、MEMORY および HEAP ストレージ エンジンは HASH および BTREE インデックスをサポートできます。

1.14. ORDER BY は、注入
による順序の後にフィールド名、式、およびフィールド位置を追加できますが、フィールド位置は整数である必要があります。

1.15. GPC とは何ですか? GPC 後にバイパスするにはどうすればよいですか?
magic_quotes_gpc=On の場合、PHP パーサーは、post、get、cookie からのデータにエスケープ文字「\」を自動的に追加し、これらのデータが特殊文字 (PHP とみなされる) によってプログラム、特にデータベース ステートメントに影響を与えないようにします。文字) ) 汚染によって引き起こされます。

1.16. Mysql における 1 つの @ と 2 つの @ の違いは何ですか? @
はユーザー変数であり、SET @var1=1 を使用して
@@ をシステム変数 (グローバル変数 show global variables \G; およびセッション変数を含む) に割り当てます。セッション変数 \G を表示します。

1.17. よく使用される関数のインジェクション/バイパス
1. ブール SQL に基づくブラインド インジェクション

left(database(),1)>'s'
ascii(substr((select table_name information_schema.tables where tables_schema=database()limit 0,1),1,1))=101 --+
ascii(substr((selectデータベース()),1,1))=98
ORD(MID((SELECT IFNULL(CAST(ユーザー名 AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))>98% 23
regexp正则 select user() regexp '^[az]'; を注入します。
「ro%」のような user() を選択します

面接質問PDF書類注意自動取得

おすすめ

転載: blog.csdn.net/jazzz98/article/details/131962242