Копаясь в одном движке нашел такую инъекцию: Code: SELECT * FROM table WHERE 1 order by [SQL] Т.к. union в данном случае не применить то я попытался провести слепую инъецию по методу more than 1 row описанную здесь : Code: SELECT * FROM table WHERE 1 order by (select if(1=2,1,(select 1 union select 2))) Но такой запрос не выдает ошибки, т.к. таблица содержит всего одну запись и видимо оптимизатор MySQL вообще не выполняет то что написано после order by Есть ли какие-то приемы или хитрости, чтобы выражение выполнилось??
Такс берем мою https://forum.antichat.ru/thread43966.html стататью в руки и пролистываем до пункта 3.4 Иньекция после ORDER BY и читаем: PS пропарил насчет одной записи в таблице... соответственно выше написанное работать не будет. Как и вообще это безнадежный случай.
Code: if (isset($_GET["direction"])) { $direction = $_GET["direction"]; } if (isset($_GET["page"])) { $page = $_GET["page"]; } if (!isset($_GET["sort"])) { $version_direction = "void"; $sort = "server_name"; } else if ($_GET["sort"] == 'server_version') { $version_direction = "server_version"; $sort = "server_version_major ".$direction.", server_version_minor ".$direction.", server_version_release ".$direction.", server_version_build"; } else { $version_direction = "void"; $sort = $_GET["sort"]; } if ((!isset($_GET["showgroup"])) or ($_GET["showgroup"] == 'all')) { $showgroup = "all"; $group = "WHERE 1"; } else if ($_GET["showgroup"] == 'Private') { $group = "WHERE server_ispname='$showgroup' OR server_ispname=''"; } else if ($_GET["showgroup"] != 'Private') { $group = "WHERE server_ispname='$_GET[showgroup]'"; } include("tpl_listing_top.php"); if (isset($_GET["direction"])) { $pagedirection = $_GET["direction"]; } if (empty($pagedirection)) { $pagedirection = "asc"; } if (empty($direction)) { $direction = "asc"; } if (empty($page)) { $page = 1; $pagestart = $page -1; } else { $pagestart = (($page -1) * $setting["perpage"]); } $serverquery = query("SELECT * FROM $dbtable1 $group"); $servercount = number_format(mysql_num_rows($serverquery)); $request = query("SELECT * FROM $dbtable1 $group order by $sort $direction, server_name LIMIT $pagestart,$setting[perpage]"); собственно инъекция либо в $sort либо в $direction Инъекию в $_GET[showgroup] не рассматриваем так как на искомом серваке включено magic_quotes