Megoldás a WordPress WP-Forum 1.7.4 SQL injection sebezhetőségre

Múlt héten milw0rm SQL injection jellegű biztonsági rést talált a Wordpress Forum plugin 1.7.4 verziójában. Én pedig itt megmutatom, hogyan lehet a hibát kijavítani.

Az eredeti hibajelentés itt található.

Mint ahogyan a bevezetőben is említettem, ez egy standard SQL parancs befecskendezésés hiba, vagy szépen angolul SQL injection. A hiba a _GET paraméter trehány kezelésén és a forum_get_posts_by_user funkció hibás hívásán alapul.
A forum_show_profile funkció a ludas, ami egy alias a forum_get_profile funkcióra, a wp-forum.php 917. sorában:

function forum_show_profile(){
       return forum_get_profile($_GET['user']);
}

Nos, nézzük mit is csinál a forum_get_profile funkció. Erre választ a forum_functions.php 363. sorában találhatunk:

function forum_get_profile($user){
        global $user_ID, $table_threads, $wpdb, $rss_link, $profile_link;
        $profile = new WP_User($user);
        ...
        <td valign='top'  class='table_meta'>Recent posts: </td><td>".forum_get_posts_by_user($user, 10)."</td>
        ...

Azt hiszem, a legegyszerűbb megoldás az, hogy a kapott $user változót erőszakosan számmá konvertáljuk még WP_User osztály hívása előtt. Valahogy így:

	$user = intval($user);
        $profile = new WP_User($user);

Nos, ennyi volt :)

Hasonló bejegyzések

3 Visszakövetések

  1. 2008 01 27: WP-Forum 1.7.4 SQL injection | WordPress Magyarország

Szólj hozzá

Itt szabad hozzászólni, vitatkozni, egyetérteni, hőbörögni, meg mindent, amíg valaki értelmes módon teszi ezt meg, és nem személyekedve.

Önmagában azért, mert az nem konstruktív, másrészt pedig mert az ilyen hozzászólásokat megírni sem érdemes, úgysem fognak megjelenni, mivel megjelenés előtti előmoderálás van érvényben.

A hozzászólásokra vonatkozó szabályokat itt olvashatod el részletesen.