2

セキュリティ クラスの一環として、安全性の低いバージョンの ubuntu にある多くの脆弱性を悪用する必要がありました。私はすべての課題を解決しましたが、誰かが光を当ててくれることを望んでいる 1 つの問題に遭遇しました。

各チャレンジは setgid バイナリであり、乗っ取られると攻撃者に次のレベルの権限が与えられます。そのレベルのグループに追加するには、コマンド l33t を実行しadduser <user> <group>ます。

私のエクスプロイトの 1 つで、私のシェルコードは単純に exec l33t を呼び出し、次のメッセージを受け取りました。

この問題を回避するために、問題なく動作する 2 行の bourne シェルを作成しました。

#!/bin/sh
l33t

安全でない依存関係の問題が発生した理由を説明できる人はいますか?

4

1 に答える 1

0

汚染モードについてまだ知らない場合: これにより、すべてのユーザー入力が「汚染された」とマークされ、「汚染された」値の出力が拒否されます (これは、信頼できない入力を明示的に「汚染解除」する必要があることを意味します)。

とにかく、 の 64 行目AdduserCommon.pmは関数sprintf内にあります。直接dief呼び出すと、スクリプトで何らかのエラーが発生し、そのエラーを報告しようとすると汚染エラーが発生するのではないかと思います。l33tadduseradduser

于 2010-11-10T19:05:14.480 に答える