2023年1月21日
npmを眺めていたらパストラバーサルの修正にnormalizeを使用したものがあったので動作を見てみました。
https://www.npmjs.com/advisories/1714
公式
https://nodejs.org/api/path.html#path_path_normalize_path
ソースコード
同じディレクトリに「text.txt」を置いてあるのでそれを見に行きます。
normalize使わないほう。
まぁこんなもんだよなという感じです。
普通に表示できていますが、ファイル読み込みと画面表示の方法がわからなかったのでひたすらに調べていました。
なのでこの時はめっちゃ感動していたりします。
normalize使ったほう。
ドキュメント通りパスが正規化されていました。
これであれば「/home/ubuntu~」から始まっていることを確認できれば変なことは起こらなそうですね。
環境作っていて思いましたが「この方式で作ればパストラバーサルは起こらない」みたいなのは無いんですね。
フレームワークをちゃんと使ってればXSSやSQLインジェクションは起こらないと同じ感じでパストラバーサルもそんな感じかと思いましたがそんなこと無いっぽいです。
(それがあったら単純ミスでCVEになってないか?)
normalizeのメモでした。
最初はCVEを再現しようとしたのですが、ライブラリの使い方がわからなかったので修正点のみクローズアップしました。
何が一番大変かってnode.jsを普通に使うことです。
hello worldすら手こずりました。
検証らしい結果にならなかったので記事にしなくてもいいかなと思いましたが、せっかくなので記事にしました。