Mysql

  • Автор темы Snake
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Snake

#1
Вобщем стала такая задача! Нужно узнать какие базы MySQL есть на сервере, потом узнать какие таблицы есть в каждой базе и название полей ну а потом естественно вывести! Возможно ли вообще такое написать на РНР и если да то подскажите как! :)
Спасибо!
 
G

Gisma

#3
посмотри базу данных MySQL :) "mysql" там в таблицах все что тебе нужно:)
 
S

Snake

#4
Понимаю что немного не по теме! Я долго долбался почему же у меня phpMyAdmin не работает! Оказалось интепритатор старый! :) Вобщем я обновился и теперь у меня некоторые скрипты не работаеют!! У меня файл для рабты с MySQL. Вобщем система такая:

//Это все один файл

<?php
if($sub == "1")
{
//тут соединение с базой(все пароли, адреса задаются в else)
}

else
{

<form action=/index.php method="post">
<input type="hidden" name=sub value=1>
<input type="submit" value=Submit>

}

?>


Т.е. получается что при подтверждении данные else'а передаются в первую часть программы и начинается работа с базой. Но когда я запускаю скрипт, т.е. идет работа с else'ом, выдается вот такое вот "Notice: Undefined variable: sub in F:\Server\www\index.php on line 6", а дальше все таблицы и т.д.(весь else) На старом интепритаторе все работало, а поставил 5-й и начало выдавать. Т.е. нажимаю на submit, а данные даже не посылаются, возвращает на начальный уровень ;) Кстати я поставил в php.ini что выводило все ошибки кроме замечаний и надпись исчезла! Но скрипт все равно не работает! Может знает в чем дело!?
 

acorn

PHP Developer
29.08.2004
585
3
#7
Кажется, я понял в чем твоя ошибка.
Поставь перед $sub знак @ т.е:
Код:
if(@$sub == "1")
Еще вариант: проверять существует ли перменная перед if-ом:
Код:
if(IsSet($sub))
//...а тут уже второй if
 
S

_serg_

#10
Лучше пусть будут...
так у него именно из-за этого вылазят косяки в хтмл-представлениях
да и вообще на боевом сайте надо прятать такие дела
а если он сам какой код разрабатывает, пусть поднимает для этого девелоперский сервер. вот там, как раз, все нотисы, ворнинги, ерроры - включать в обязательном порядке
 

acorn

PHP Developer
29.08.2004
585
3
#11
Мне кажется, что лучше просто временно отключить, т.е. поставить @ - хотя, смотря что там и как там.. трудно сказать, когда не знаешь что там конкретно.
 
S

_serg_

#12
трудно сказать, когда не знаешь что там конкретно
я насмотрелся на коды этих движков - и пхпББ, и этот же ИПБ и не только форумы - мамбы (это ваще продкт-загадка), битриксы (один из самых нормальных по сравнению с остальными)...
и у всех одна и та же проблема - народ абсолютно не следит ни за ворнингами, ни за нотисами
такое впечатление, что их просто отключают, как ненужное.
бесит просто. как можно предлагать пусть и бесплатный, но все-таки глючный продукт.
на боевом сайте вообще ничего выводиться не должно - все в лог

а то будет примерно так:

имеем - сайт MoneyNews
http://www.moneynews.ru/
открываем любой материал (наугад):
http://www.moneynews.ru/article.asp?view=4908
пробуем на прочность
http://www.moneynews.ru/article.asp?view='4908
на лицо стандартная sql-инъекция
что-бы проэксплуатировать ее - надо узнать структуру таблицы:
http://www.moneynews.ru/article.asp?view=4...999999999999999
итого:
MS-SQL -сервер, система, вероятно, масдай (причем никакого сканирования еще не производилось - все видно на экране)
дальше я ничего делать, конечно, не буду, но даже лапух сразу попробует заюзать мс-скуэльную процедуру выполнения консольных команд. если удастся, сразу зальет веб-шелл, качнет, например, пинча, запустит эту заразу, убирется за собой и пойдет смотреть почту - что там нам прислал пинч.

з.ы. несколько минут, что бы найти в поисковике уязвимый сайт! офигеть...
 
S

sergushkin

#14
Вобщем стала такая задача! Нужно узнать какие базы MySQL есть на сервере, потом узнать какие таблицы есть в каждой базе и название полей ну а потом естественно вывести! Возможно ли вообще такое написать на РНР и если да то подскажите как!
Всё это можно получить с помощью SQL-запросов

1) Запрос
Код:
show databases;
возвращает таблицу из одного столбца с названиями баз данных на сервере MySQL

2) Запрос
Код:
show tables;
возвращает таблицу из одного столбца с названиями таблиц в активной в данный момент базе данных

3) Запрос
Код:
describe <table_name>;
возвращает таблицу с полной информацией о структуре таблицы с название <table_name> в активной в данный момент базе данных
 
Статус
Закрыто для дальнейших ответов.