Joomla 1.0.9 Weblinks Remote Blind SQL Injection Exploit
Juni 20th, 2006 by admin
Joomla <= 1.0.9 (Weblinks) Remote Blind SQL Injection Exploit
der titel sagt eigentlich schon alles.
das exploit findet man bei milw0rm.com. da es joomla bis jetzt nicht geschaft hat ein update zu veröffentlichen.
hab ich mal ein hier ein paar ansärtze wie man das sicherheitsproblem lösen kann.
als 1. dachte ich das im administrator bereich etwas nicht richtig überprüft wird. aber falsch gedacht. das problem ist in der datei components/com_weblinks/weblinks.php.
als erstes sollte man mal überlegen ob normale user (also frontend-user) wirklich weblinks speichern können. wenn nicht ist folgende variante die beste:
-
saveWebLink( $option );
suchen und auskommentieren.
man könnte auch die funktion suchen
-
function saveWeblink( $option ) {
und ein
gleich darunter einsetzen.
wenn ein "Author" Weblinks anlegen soll einfach
-
if ($my->gid <1) {
suchen und mit
-
if ($my->gid <= 1) {
ersetzen.
das ganze schützt ersteinmal vor dem einfachen users, das exploit funktioniert aber immer noch. das grundproblem ist
-
if (!$row->check()) {
hier werden die post variablen nicht richtig überprüft. um das ganze zu lösen müssen 2 dateien bearbeitet werden.
1. die schon bekannte weblinks.php
folgende if anweisung suchen
-
if (!$row->bind( $_POST, 'published' )) {
und mit
-
if (!$row->bind( $_POST, 'published,hits,params,archived,sid,checked_out_time,checked_out' )) {
ersetzen. das hält schon mal ein paar angriffe auf.
das 2. und wichtigste ist die weblinks.class.php die sich im gleichen ordner befindet.
-
function check() {
suchen und darunter:
-
global $database;
-
foreach($numbers_ar as $nr_name)
-
{
-
{
-
$this->_error = 'Please provide a valid Number';
-
return false;
-
}
-
}
-
foreach($escapes_ar as $escape_name)
-
{
-
$this->$escape_name = $database->getEscaped( $this->$escape_name );
-
}
einfügen. das verhindert die sql injection da die wichtigen parameter escaped werden.
ps: das grundgerüst dieses exploits können spamer auch zum verteilen ihrer links benutzen es brauch nur ein parameter angehängt zu werden und schon verlinkt man auf die besten porno- und potenzmittel-seiten
Posted in misc |