🚪
2021-03-28にコミットされたPHPバックドアを試す
はじめに
先日(2021年03月28日)、PHPにバックドアを仕掛けるコミットがありました。
コミットがあった翌日には問題のコードは削除されておりPHPユーザに影響を及ぼすことはないと思われますが、興味本位でバックドアがあるPHP(以下、バックドアPHP)を確認してみます。
バックドアが仕掛けられたコミット
[skip-ci] Fix typo · php/php-src@c730aa2
▼ 仕掛けられたバックドアのコード
php-src/zlib.c at c730aa26bd52829a49f2ad284b181b7e82a68d7d · php/php-src
バックドアが存在しているPHPの環境構築
構築の流れとしては、バックドアPHPをGitHubから取得&ビルドします。
ビルド環境構築の手間を避けるため、Dockerを利用しています。
具体的には、オフィシャルのPHPコンテナイメージを生成するDockerfile
を修正して、バックドアが存在するバーションのPHPを取得するようにしてコンテナイメージを作成しています。
▼ オフィシャルのPHPコンテナのDockerfile
php/8.0/buster/cli at master · docker-library/php
下画像がDockerfileの修正内容
バックドアの確認
User-Agentt
ヘッダの値に「zerodium<任意のPHPコード>
」のリクエストを送信することでバックドアを確認することができます。
(※ User-Agent
ではなく User-Agentt
)
下画像がバックドア経由で任意のPHPコードを実行している様子
参考
- バックドアの情報
php.internals: Changes to Git commit workflow - コミットIDを指定してGitHub上からソースコードをDLする方法
git - How to get certain commit from GitHub project - Stack Overflow
Discussion