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

by

·

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);
        ...
        Recent posts: ".forum_get_posts_by_user($user, 10)."
        ...

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 🙂

Comments

2 587 hozzászólás a(z) “Megoldás a WordPress WP-Forum 1.7.4 SQL injection sebezhetőségre” bejegyzéshez

  1. […] cikket, amit itt syntax highlighter hiányában nem tudok publikálni. De elérhető magyarul itt, angolul pedig […]