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 🙂
“Megoldás a WordPress WP-Forum 1.7.4 SQL injection sebezhetőségre” bejegyzéshez 2 587 hozzászólás
A hozzászólások jelenleg nem engedélyezettek ezen a részen.