インタビューの質問シリーズ:侵入テスト-3の一般的な質問

51. imgタグのonerror属性に加えて、管理者パスを取得する他の方法はありますか?

srcはリファラーを取得するリモートスクリプトファイルを指定します

52. imgタグのonerror属性、およびsrc属性のサフィックス名に加えて、管理者パスの取得方法は.jpgで終わる必要があります。

1)リモートサーバーは、Apache構成ファイルを変更し、phpモードで解析されるように.jpgファイルを設定します。AddTypeapplication / x-httpd-php .jpgは、phpモードで解析されます

53.なぜaspxトロイの木馬の権限がaspよりも大きいのですか?

Aspxは.netテクノロジーを使用しています。IISではデフォルトでサポートされていません。ASPは単なるスクリプト言語です。侵入時には、通常、aspトロイの木馬はゲスト権限を持っています... APSXトロイの木馬は一般にユーザー権限を持っています。

54. wafをバイパスするには?

大文字と小文字の変換方法が文字に干渉する/ / base64 unicode hex url ascll複数パラメータのエンコード

55. Webshel​​lをサーバーに書き込む方法は?

さまざまなアップロードの脆弱性mysqlには書き込み権限があり、sqlステートメントを使用してshellhttp putメソッドを記述します

56.侵入テストの一般的なポート

a、webカテゴリ(web脆弱性/機密ディレクトリ)サードパーティの共通コンポーネントの脆弱性struts thinkphp jboss ganglia zabbix

80 web 80-89 web 8000-9090 web

b。データベースクラス(脆弱なパスワードをスキャンする)

1433 MSSQL 1521 Oracle 3306 MySQL 5432 PostgreSQL

c。特別なサービス(無許可/コマンド実行/脆弱性)

443 SSLハートドリッピング873 Rsync未承認5984 CouchDB  http:// xxx:5984 / _utils /  6379 redis未承認7001,7002 WebLogicのデフォルトの弱いパスワード、逆順9200、9300 elasticsearchリファレンスWooYun:サーバーでのElasticSearchコマンド実行の脆弱性の再生11211 Memcache不正アクセス27017、27018 Mongodb不正アクセス50000 SAPコマンド実行50070、50030 hadoopデフォルトポート不正アクセス

d。一般的なポートタイプ(弱いパスワードのスキャン/ポートブラスト)

21 ftp 22 SSH 23 Telnet 2601、2604 zebraルーティング、デフォルトパスワードzebra3389リモートデスクトップ

ALL、ポート合計の詳細

21 ftp 22 SSH 23 Telnet 80 web 80-89 web 161 SNMP 389 LDAP 443 SSLハートビートおよびいくつかのWeb脆弱性テスト445 SMB 512,513,514 Rexec 873 Rsync無許可1025,111 NFS 1433 MSSQL 1521 Oracle:(iSqlPlusポート:5560,7778 )2082/2083 cpanelホスト管理システムのログイン(海外で使用)2222 DA仮想ホスト管理システムのログイン(海外で使用)2601,2604ゼブラルーティング、デフォルトパスワードzebra3128 squidプロキシデフォルトポート、パスワードが設定されていない場合、直接ローミングイントラネット3306 MySQL 3312/3311 kangleホスト管理システムログイン3389リモートデスクトップ4440 rundeckリファレンスWooYun:Sinaサービスを借りて、Sinaイントラネット5432 PostgreSQL 5900 vnc 5984 CouchDB  http:// xxx:5984 / _utils / 6082ワニスはWooYunを参照:ワニスHTTPアクセラレータCLIの不正アクセスは、Webサイトの直接改ざんまたはプロキシとしてイントラネットに入ることに簡単につながる可能性があります6379 redis不正7001、7002 WebLogicデフォルトの弱いパスワード、逆のシーケンス7778 Kloxoホストコントロールパネルログイン8000-9090がいくつかあります一般的なWebポート、これらの非80ポート8080 Tomcat / WDCPホスト管理システム、デフォルトの弱いパスワード8080、8089、9090 JBOSS 8083 Vestacpホスト管理システム(より多く海外で使用)8649ガングリアで管理背景を開くなどの操作とメンテナンス8888 amh / LuManagerホスト管理システムのデフォルトポート9200、9300 elasticsearchリファレンスWooYun:サーバーElasticSearchコマンド実行の脆弱性10000 Virtualmin / Webminサーバー仮想ホスト管理システム11211 memcache不正アクセス27017、27018 Mongodb不正アクセス28017 mongodb統計ページ50000 SAPコマンドの実行50070、50030のhadoopデフォルトポートの不正アクセス

三、片方を納得

  • どの脆弱性を知る
  • ファイルアップロードの保護方法は何ですか
  • どのスキャンポート、ディレクトリ
  • 注射の判断方法
  • 注射が保護されている場合の対処
  • 改ざんを書いたことがありますか
  • 3306 1443 8080はどのポートですか
  • 物理層からアプリケーション層へのコンピュータネットワークxxxx
  • Webサービス開発の経験がある
  • サーバーにWebshel​​lを書き込む方法
  • xssプラットフォームを使用しましたか
  • ウェブサイト浸透プロセス
  • mysql 2つのエスカレーション方法(udf 、?)
  • 一般的な暗号化方法xxx
  • ddosを保護する方法
  • パケットをキャプチャしたことがありますか?wiresharkフィルタリングルールを記述しますか?
  • ログをクリーンアップするもの

4、SQLインジェクション保護

1.安全なAPIを使用する

2.入力された特殊文字をエスケープします

3.ホワイトリストを使用して入力検証方法を標準化する

4.クライアント入力を制御し、SQLインジェクションに関連する特殊文字の入力を許可しない

5. SQLクエリのためにデータベースに送信する前に、サーバー側は特殊文字をフィルタリング、エスケープ、置換、および削除します。

6.標準エンコーディング、文字セット

5.パラメータ化されたクエリがSQLインジェクションを妨げる理由

原理:

パラメーター化されたクエリデータベースサーバーを使用すると、sqlコマンドの一部としてパラメーターの内容が実行されず、データベースがsqlコマンドのコンパイルを完了した後に実行するパラメーターが適用されます

簡単に言うと、パラメーター化によってインジェクションを防止できるのは、ステートメントがステートメントであり、パラメーターがパラメーターであり、パラメーターの値がステートメントの一部ではないためです。データベースは、ステートメントのセマンティクスに従ってのみ実行されます。

6、SQLヘッダー挿入ポイント

UAREFERERCOOKIEIP

7.ブラインドとは何ですか?盲目にする方法?

ブラインドインジェクションとは、SQLインジェクション攻撃中にサーバーがエラーエコーをオフにすることであり、サーバーから返されたコンテンツの変更に基づいて、SQLインジェクションと利用の方法があるかどうかを判断するだけです。ブラインドインジェクションには2つの方法があり、1つは、返されたページのコンテンツが正しいかどうか(ブールベース)によってインジェクションの有無を確認することです。1つは、SQLステートメントの処理時間の違いに基づいて注入(時間ベース)があるかどうかを判断することです。ここでは、ベンチマークやスリープなどの関数を使用して遅延効果を発生させたり、大きなデカルト積の結合ルックアップテーブルを作成したりできます。遅延の目的を達成するため。

8.ワイドバイトインジェクションの原理と根本原因

1.生産原理

データベースがワイド文字セットを使用していて、WEBレイヤーでWEBがこの問題を考慮していない場合、0XBF27は2文字であるため、PHPではaddlashやmagic_quotes_gpcなどがオンになっています。 0xbf27は0xbf5c27になり、データがデータベースに入力されると、0XBF5Cは別の文字であるため、\エスケープ記号は先行するbfによって「食われ」、単一引用符を使用してステートメントを閉じることができます。

2.コーディングする場所

3.根本的な原因

Character_set_client(クライアントの文字セット)とcharacter_set_connection(接続層の文字セット)が異なるか、iconvやmb_convert_encodingなどの変換関数が不適切に使用されています。

4.ソリューション

統合データベース、Webアプリケーション、およびオペレーティングシステムで使用される文字セットは、解析の違いを避けるためにUTF-8に設定する必要があります。または、mysql_real_escape_string + mysql_set_charsetを使用するなど、データを適切にエスケープする必要があります。

5. SQLで更新のみを使用する方法

まずこのSQLを理解する

UPDATE user SET password = 'MD5($ password)'、homepage = '$ homepage' WHERE id = '$ id'

このSQLを次の形式に変更すると、注入が行われます

a。ホームページの値をhttp://xxx.net '、userlevel =' 3に変更します

次に、SQLステートメントは

UPDATE user SET password = 'mypass'、homepage = ' http ://xxx.net'、userlevel = '3' WHERE id = '$ id'

userlevelはユーザーレベルです。

b。パスワード値をmypassに変更します) 'WHERE username =' admin '#

次に、SQLステートメントは

UPDATE user SET password = 'MD5(mypass)' WHERE username = 'admin'#) '、homepage =' $ homepage 'WHERE id =' $ id '

c。id値を「OR username = 'admin」に変更すると、SQLステートメントは次のようになります。

UPDATE user SET password = 'MD5($ password)'、homepage = '$ homepage' WHERE id = '' OR username = 'admin'

9、SQLシェルの記述方法/単一引用はフィルターに掛けられる

シェルの書き込み:root権限、GPCが閉じている、ファイルパスのoutfile関数を知っている

http://127.0.0.1:81/sqli.php?id=1 into outfile 'C:\\wamp64\\www\\phpinfo.php' FIELDS TERMINATED BY '<?php phpinfo(); ?>'
http://127.0.0.1:81/sqli.php?id=-1 union select 1,0x3c3f70687020706870696e666f28293b203f3e,3,4 into outfile 'C:\\wamp64\\www\\phpinfo.php'

ワイドバイトインジェクション

1.スペースの入れ替え方法

%0a、%0b、%a0など/ ** /およびその他のコメント文字<>

2. 5.0以上5.0未満のmysql Webサイトインジェクションの違いは何ですか

5.0未満では、information_schemaシステムテーブルはなく、名前などをリストすることはできません。

5.0未満はマルチユーザー単一操作であり、5.0以上はマルチユーザー複数操作です。

10、XSS

1. XSSの原則

反射する

ユーザーが送信したデータは、実行するコードを作成して、ユーザー情報を盗むなどの攻撃を仕掛けることができます。攻撃を成功させるために、悪意のあるリンクをクリックするようにユーザーを誘導する必要がある

保管タイプ

保存されたXSSは、サーバー側でユーザーが入力したデータを「保存」します。このXSSは強力な安定性を備えています。

DOMタイプ

ページのDOMノードを変更して形成されるXSSは、DOMベースのXSSと呼ばれます。

2. DOMタイプと反射タイプの違い

反映されたXSS:ユーザーがクリックするよう誘導することにより、構築された悪意のあるペイロードによってトリガーされるXSS。反射型XSS検出:ペイロードを含むリンクを要求するたびに、ページには特定の不正なデータが含まれているはずです。DOMタイプ:ページのDOMノードを変更して形成されるXSS。DOMベースのXSSは、jsコードを介したDOM操作によって生成されるXSSであるため、リクエストの応答で対応する不正なデータを取得することさえできません。私の意見の根本的な違いは、出力ポイントの違いです。

3. DOMタイプとXSS自動テストまたは手動テスト

手動テストのアイデア: document.write、innerHTML割り当て、outerHTML割り当て、window.location操作などの関数を見つけ、JavaScriptを記述:直接実行するコンテンツの投稿、eval、setTimeout、setIntervalなど。その変数を見つけ、変数のソースに戻って、制御可能かどうか、および安全関数を通過したかどうかを確認します。自動テストについては、Daoのブログを参照してください。アイデアは、入力から始めて、可変トランスミッションのプロセスを観察し、最後に危険な関数の出力があるかどうか、途中に安全な関数があるかどうかを確認することです。ただし、これにはjavascriptパーサーが必要です。そうでない場合、jsの実行によって取り込まれたコンテンツの一部が失われます。

この質問に答えるとき、顧客の通常の検出は基本的にさまざまな機能ポイントの機能に加えて経験と直感に基づいているため、さまざまな種類のXSS検出方法の検出は実際にはあまり標準化されていません。検出方法なので、答えは貧弱です。

4. XSSの場所をすばやく見つける方法

5. XSSの修正方法に関する提案

入力ポイントチェック:ユーザーが入力したデータ有効性を確認し、フィルターを使用して機密文字をフィルター処理するか、エンコードをエスケープし、特定の種類のデータの形式を確認します。入力ポイントのチェックは、サーバー側で実装するのが最適です。

出力ポイントのチェック:変数がHTMLページに出力されると、出力コンテンツはエンコードされてエスケープされ、出力がHTMLの場合はHTMLEncodedになり、出力がJavaScriptスクリプトの場合はJavascriptEncodedになります。JavascriptEncodeを使用する変数は引用符で囲まれ、危険な文字がエスケープされます。データ部分は引用符をエスケープしてコードの一部にすることはできません。数値と文字を除くすべての文字に16進エンコーディングを使用して、より厳密な方法を使用することもできます。また、ブラウザでは、HTML解析がJavascript解析よりも優先され、エンコーディング方法を明確に考慮する必要があることに注意してください。出力ポイントが異なる場合、XSSを保護する方法は異なる場合があります。これについては、後の記事で説明します。要約を作成します。

さらに、HTTPOnlyによるCookieハイジャックには制限があります。

6. XSSワームの生産条件

通常の状況では、XSSポイントを生成するページがセルフページに属しておらず、ユーザー間の相互作用を生成するページがXSSワームの生成を引き起こす可能性があります。

ストレージXSSは不要

11. CSRF

1. CSRFの原則

CSRFは、ユーザーがキー操作の実行中にキー操作を自発的に開始したかどうかを確認しなかったため、クライアントによって開始されたクロスサイトリクエストフォージェリ攻撃です。

2.防御

リファラーを確認

トークンを追加

3.トークンとリファラーを水平に比較する場合、誰が最高のセキュリティレベルを持っていますか?

どのサーバーもリファラーを取得できないため、トークンのセキュリティレベルが高くなり、HTTPSからHTTPにジャンプした場合、リファラーは送信されません。また、一部のバージョンのFLASHではリファラーをカスタマイズできます。ただし、トークンについては、十分にランダムであり、漏洩しないことを確認してください。(予測不可能性の原則)

4.リファラーの検証の角度は何ですか?もしそうなら、問題を解消する方法

ヘッダー内のリファラーを検証するために、1つは空のリファラーであり、もう1つはリファラーのフィルタリングまたは不完全な検出です。この問題を解消するには、検証済みのホワイトリストに通常のルールを記述する必要があります。

5.トークンに関して、トークンテストのどの側面に注意が払われ、トークンのどの側面がテストされますか?

前任者からの回答を引用する:

トークンへの攻撃、1つはそれ自体への攻撃、1回限りのリプレイテスト、暗号化ルールの分析、検証方法が正しいかどうかなどです。2つ目は、情報漏えいの脆弱性との組み合わせでの取得と、複合攻撃の開始です。情報漏えいの可能性があります。これはキャッシュ、ログ、取得であり、クロスサイトジャンプを使用する多くのログインがトークンに依存している可能性があります。ジャンプの脆弱性とリフレクトクロスサイトがあり、ログインハイジャックに組み合わせることができます。さらに、他のサービスと組み合わせてトークンを記述することもできます。赤い封筒ビジネスをつかむなど、セキュリティと貧弱な設計を回避するにはどうすればよいですか?

11. SSRF

SSRF(サーバー側要求偽造:サーバー側要求偽造)は、サーバーによって開始された要求を形成するために攻撃者によって構築されたセキュリティループホールです。一般に、SSRF攻撃の対象は、外部ネットワークからアクセスできない内部システムです。(サーバーによって開始されるため、接続されているが外部ネットワークから分離されている内部システムを要求できます)

SSRFが形成される理由は、サーバーが他のサーバーアプリケーションからデータを取得する機能を提供し、ターゲットアドレスをフィルタリングおよび制限しないためです。たとえば、指定されたURLアドレスからWebページのテキストコンテンツを取得し、指定されたアドレスに画像をロードし、ダウンロードなどを行います。

1.モニタリング

SSRF脆弱性検証方法:

1)SSRFの脆弱性はサーバーがリクエストを送信できるようにするセキュリティの脆弱性であるため、パケットをキャプチャしてSSRFの脆弱性があるかどうかを判断することにより、送信されたリクエストがサーバーによって送信されたかどうかを分析できます

2)アクセスされたリソースのアドレスをページのソースコードで見つけますリソースのアドレスタイプが  www.baidu.com/xxx.php?image=(address)の場合、SSRFの脆弱性4 [1]がある可能性があります

2. SSRF脆弱性防御バイパスの原因

原因:シミュレートされたサーバーが、合法性の検証なしに他のサーバーリソースを要求します。利用:検出のために悪意のあるイントラネットIPを構築するか、他のサポートされているプロトコルを使用して他のサービスを攻撃します。防御:リダイレクションの禁止、プロトコルの制限、内部および外部ネットワークの制限、URL制限。バイパス:異なるプロトコルを使用し、IP、IP形式をバイパスし、URLや悪意のあるURLに@などを追加します。301ジャンプ+ dns再バインド。

12.アップロード

1.ファイルアップロードの脆弱性の原理

ユーザーのファイルアップロード部分に対するプログラマーの制御の不十分な制御または処理の欠陥により、ユーザーは実行可能な動的スクリプトファイルをサーバーにアップロードするための自分の権限をバイパスできます。

2.一般的なアップロードバイパス方法

フロントエンドjs検証:js / burp変更パッケージを無効化

場合

二重接尾辞

フィルターバイパスpphphp-> php

3.保護

ファイルアップロードディレクトリが実行不可に設定されています

ホワイトリストを使用してファイルのアップロードタイプを決定する

ファイル名とパスを乱数で書き換えます

4.アップロードポイントの要素を確認するポイントは何ですか?

一部のサイトのアップロードファイルタイプの制限はフロントエンドで実装されています。現時点では、アップロードタイプを増やすだけで制限を破ることができます。

13.ファイルに含まれる

1.原則

ユーザーが制御できるスクリプトまたはコードを導入し、サーバーにinclude()などの関数を実行させて、動的変数を介して含める必要があるファイルをインポートします。

ユーザーは動的変数を制御できます。

2.ファイルに含まれるようにする関数

PHP:include()、include_once()、require()、re-quire_once()、fopen()、readfile()、…JSP / Servlet:ava.io.File()、java.io.Fil-eReader() 、…ASP:ファイルを含める、仮想を含める、

3.ローカルファイルには

ローカルファイルを開いて含むことができる脆弱性は、ローカルファイルインクルードの脆弱性と呼ばれます

14.ロジック欠落スキャン

1.金融業界における一般的なロジックの抜け穴

金融サービスへの主な焦点は、データ改ざん(金融データ、または一部の企業の判断データを含む)、競合状況または不適切な設計によって引き起こされるフリース、トランザクション/注文情報の漏洩、および他の人のアカウントの不正な表示や悪意のある操作です。 、トランザクションまたはビジネスステップはバイパスされます。

15.中間者攻撃

中間者攻撃は相互認証攻撃(の欠如)であり、SSLハンドシェイク中にクライアントとサーバー間の相互認証が行われないことにより引き起こされる脆弱性

中間者攻撃を防御するソリューションは、通常、次のテクノロジーに基づいています

1.公開鍵インフラストラクチャPKIはPKI相互認証メカニズムを使用し、クライアントはサーバーを検証し、サーバーはクライアントを検証します。上記の2つの例では、サーバーのみが検証され、SSLハンドシェイクリンクに抜け穴が作成され、相互認証が使用されている場合もしそうなら、相互認証は基本的に強力になる可能性があります

2.遅延テスト

複雑な暗号化ハッシュ関数が計算に使用されて数十秒の遅延が発生します。両方のパーティの計算に通常20秒かかり、通信全体の計算に互いに到達するのに60秒かかる場合、これはサードパーティの仲介者の存在を示している可能性があります。

3.他の形式の鍵交換を使用する

ARPスプーフィング

原理

各ホストにはARPキャッシュテーブルがあり、キャッシュテーブルにはIPアドレスとMACアドレスの対応が記録されており、LANデータ伝送はMACアドレスに依存しています。ARPキャッシュテーブルメカニズムに欠陥があります。つまり、要求元のホストがARP応答パケットを受信したときに、ARP要求パケットを他のホストに送信したかどうかを確認せず、返されたパケットのIPアドレスとMACアドレスを直接対応させます。関係はARPキャッシュテーブルに格納されます。元の対応するIPが同じ場合、元のIPが置き換えられます。このように、攻撃者はホストによって送信されたデータを盗聴する可能性があります

保護

1.ゲートウェイMACとホスト上のIPアドレスのバインドは静的(デフォルトは動的)、コマンド:arp -s gateway IPゲートウェイMAC

2.ゲートウェイでホストMACおよびIPアドレスをバインドします。

3. ARPファイアウォールを使用する

おすすめ

転載: blog.csdn.net/GUDUzhongliang/article/details/108659532