x-MU.net > секрет > site mu bugs
site mu bugs18 января 2007. Разместил: Everybody |
|
Вообще, вот пару багов в некоторых сайтах:
mutoolz он сохраняет в Cookie пароли на входы, которые хранятся в tmp/cache эта уязвимость в своё время была на многих сайтах MU online Уязвимость довольно простая, но досихпор актуальна на многих сайтах. Решение проблемы: создать файл .htacces с такими строками <Limit GET="GET"> Order allow,deny Deny from all. Allow from 127.0.0.1. </Limit> <Limit POST="POST"> Order allow,deny Deny from all. Allow from 127.0.0.1. </Limit> поместить его в папку tmp muweb или самописные сайты. Баг в Раскидке поинтов, если у нас имеется на чаре не раскиданные поинты (допустим 100 поинтов) заполняем поля: Strenght: 50 Vitality: 20 Energi: 38 Agiliti: 0.5 скрипт будет выполнен наполовину, то есть на Strenght u на Vitality и на Energi добавятся статы, но при прочтении Agiliti т.к. число нецелое произойдет сбой поинтов и статы останутся на месте. SQL inj подверженны большинство самописных сайтов. Например скрипт смены пароля $sql_pw_check = mssql_query("SELECT memb__pwd FROM MEMB_INFO WHERE memb__pwd='$oldpwd' and memb___id='$login'"); $pw_check = mssql_num_rows($sql_pw_check); Здесь мы видим memb__pwd='$oldpwd' and memb___id='$login' то есть из этого следует, что если мы введём вместо пароля (зная логин) эту строку: ' OR '1'='1 то скрипт будет выполнен следующим образом:$sql_pw_check = mssql_query("SELECT memb__pwd FROM MEMB_INFO WHERE memb__pwd='$oldpwd' OR '1'='1' and memb___id='$login'"); $pw_check = mssql_num_rows($sql_pw_check); видим что будет выполняться: memb__pwd='$oldpwd' OR '1'='1' из этого следует, что при проверке пароля если даже его нету, а 1=1 то пароль будет изменён. массовое изменение пароля. login: ' OR '1'='1 Pass: ' OR '1'='1 new pass: 123любой123 И скрипт выполнится для всех пользователей. Серваки так вешать можно. Как исправить Администратору: Сделать проверку на SQL inj при вводе или проверки вводимых символов. |