サーバアップロードの脆弱性(転載)

5805 ワード

前言:解析脆弱性を学びましたが、環境が不足しているため、Apacheの解析脆弱性が再現されただけで、一部の場所(IIS 7.0/IIS 7.5/Nginx<8.03奇形解析脆弱性)については理解できません.その他の基本的な理解では、解析ホールはアップロードホールなどと結合し、shellを持つことが多い.
一、IIS 5.x/6.0解析脆弱性
IIS 6.0の解析利用方法は2つある.ディレクトリ解析
/xx.asp/xx.jpg

1つ目は、ウェブサイトの下にフォルダを作成する名前です.asp、.asaのフォルダは、ディレクトリ内の任意の拡張子のファイルがIISによってaspファイルとして解析され実行されます.例えばディレクトリsp.aspを作成すると、
/sp.asp/1.jpg

aspファイルとして実行されます.黒広がアップロードフォルダのパスを制御できると仮定すると、アップロード後の画像が名前を変更してもshellを持つことができます.
2.ファイル解析
sp.asp;.jpg

2つ目はIIS 6である.0の下で、セミコロンの後のは解析されないで、つまり
sp.asp;.jpg

サーバからsp.aspとIIS 6と見なされる.0デフォルトの実行可能ファイルはaspのほかに3種類あります
/sp.asa
/sp.cer
/sp.cdx

要するにIIS 6.0以前(バージョン6.0を含む)のサーバは安全ではなかったが、今は使わないようだ.最新バージョン8.0です.7.0と8.0はよく使われています.
修復シナリオ
1.マイクロソフトの公式パッチはまだなく、自分で正則を書くことで、xxのアップロードを阻止することができる.asp;.jpgタイプのファイル名.2.ユーザーがフォルダを作成することを制限する権限設定を行います.
二、IIS 7.0/IS 7.5/Nginx<8.03奇形解析脆弱性
デフォルトのFast-GIオープン状況では、黒広にsp.jpgという名前がアップロードされ、内容は
shell.php','w'),' eval($_POST[cmd])?>');?>

のファイルにアクセスし、sp.jpg/にアクセスします.php、このディレクトリの下で一言木馬shellが生成されます.php
脆弱性の原理
NginxのデフォルトはCGIでPHP解析をサポートしています.一般的な方法は、Nginxプロファイルで正規一致でSCRIPT_を設定することです.FILENAME.www.xxにアクセスすると.com/phpinfo.jpg/1.phpというURLの場合、$fastcgi_script_nameは「phpinfo.jpg/1.php」に設定され、SCRIPT_に構築されます.FILENAMEはPHP CGIに渡すが、PHPはなぜこのようなパラメータを受け入れる、phpinfo.jpgはPHPファイルとして解析しますか?これでfix_についてお話ししますpathinfoという選択肢です.このオプションをオンにすると、PHPで次のような論理がトリガーされます.
PHPはSCRIPT_FILENAMEはphpinfoです.jpg,一方1.phpはPATH_INFO、前に1.phpパスの下のファイルはphpとして解析されるのでphpinfo.jpgはPHPファイルとして解析した.
脆弱性の形式
www.xxxx.com/UploadFiles/image/1.jpg/1.php
www.xxxx.com/UploadFiles/image/1.jpg%00.php
www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php

修復シナリオ
1.phpを修正する.iniファイル、cgi.fix_pathinfoの値は0に設定されています.2.Nginxプロファイルに次のコードを追加します.
if ( $fastcgi_script_name ~ ..*/.*php ) {
  return 403;
  }

この行のコードはtestのようなものに一致するという意味です.jpg/a.phpのURLの場合、403エラーコードが返されます.
三、Apache解析脆弱性
Apacheは右から左へ判断解析を開始する、認識不可能解析であれば左へ判断する.
例えばsec.php.owf.rar".owf"と".rar」という接尾辞はapacheが認識できない解析であり、apacheはsecをphp.owf.rarはphpに解析する.
合法的な接尾辞かどうかをどのように判断するかがこの脆弱性の利用の鍵であり、テスト時にsecをアップロードしようとすることができる.php.rara.jpg.png...(よくある接尾辞を全部書いて...)合法的な接尾辞かどうかをテストします
脆弱性の形式
www.xxxx.xxx.com/test.php.php123
残りの構成の問題で脆弱性が発生
(1)ApacheのconfにAddHandler php 5-scriptを配置する行がある場合.phpの場合はファイル名に含まれる限り.phpファイル名がtest 2であるも.php.jpgもphpで実行されます.(2)ApacheのconfにAddTypeアプリケーション/x-httpd-phpを配置する行がある場合.jpgは拡張子がjpgであってもphp方式で実行できる.
修復シナリオ
1.apacheプロファイル、禁止.php.このようなファイルが実行され、プロファイルに追加されます.

        Order Allow,Deny
        Deny from all

2.擬似静的エネルギーでこの問題を解決し、類似の書き換えを行う.php.*このようなファイルはapacheのhttpdを開きます.conf LoadModule rewriteを見つけたmodule modules/mod_rewrite.so#番号を削除し、apacheを再起動し、サイトのルートディレクトリの下で構築します.htaccessファイル、コードは以下の通りです.

RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php

テキストリンク:
安全脈拍-解析脆弱性namsk-解析脆弱性Webサーバのiis,apache,tomcatの3つの間の比較phpstudy解析脆弱性