
CVE 2021-21315 PoC
これは CVE-2021-21315 の Proof of Concept です。この脆弱性は Node.JS 用の System Information ライブラリ(npm パッケージ "systeminformation")に影響します。npmjs.com/systeminformation
"si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad() に渡される service パラメータを必ずチェックまたはサニタイズしてください... 文字列のみを許可し、配列はすべて拒否してください。文字列のサニタイズは期待どおりに機能します。"
(私の意見では)この脆弱性は十分に説明されていないため、影響を受けるバージョンの systeminformation をベースにした小さなアプリを作成することにしました。 PoC には以下が含まれます:
再現手順:


これは文字列のサニタイズにより失敗します:

CVE の詳細に記載されているとおり「サニタイズは期待どおりに機能し、配列はすべて拒否されます [...]」
今回は、"name" の値を確認すると、サニタイズされていません - 成功です! コマンドが実行されたかどうか確認してみましょう
成功です! コマンドが実行されました。 もちろん "pwn.txt" 自体に興味を持つ人はいませんが、潜在的な攻撃者は以下のことが可能です:
「コマンドインジェクション」は無害に聞こえますが、特定の条件が満たされると大きな影響を与える可能性があります
この問題は "systeminformation" のバージョン 5.3.1 で修正されました https://www.huntr.dev/users/EffectRenan にクレジットを捧げます(彼が脆弱性を発見しましたが、私の意見では、彼の "PoC" は現実世界での影響を示していませんでした)
また、この PoC を CTF で遠慮なく使用してください。ただし、発見者である EffectRean と PoC 作成者である私にクレジットを記載していただけると嬉しいです。それでは!
このプロジェクトは教育目的のみに使用できます。事前の許可なく対象システムに対してこのソフトウェアを使用することは違法であり、このソフトウェアの誤用によるいかなる損害についても著者は責任を負いません。