ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

14.06.2009, 01:17
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
PHP код:
if ($do=="add") {
$ttitle=mhtml(substr($HTTP_POST_VARS["ttitle"],0,256));
$url=mhtml(substr($HTTP_POST_VARS["url"],0,256));
$email=mhtml(substr($HTTP_POST_VARS["email"],0,256));
$description=mhtml(substr($HTTP_POST_VARS["description"],0,2048));
$c1=intval($HTTP_POST_VARS["c1"]);
$error="";
if ($c1==0) $error.="<LI>".$LANG["mustbecat"];
if (empty($email)) $error.="<LI>".$LANG["mustbeemail"];
if (empty($url)) $error.="<LI>".$LANG["mustbeurl"];
if (empty($ttitle)) $error.="<LI>".$LANG["mustbetitle"];
if (empty($description)) $error.="<LI>".$LANG["mustbedescription"];
if (empty($error)) {
if ($cat["mailifnewlink"]=="yes") {
mail($cat["mailifnewlinkto"],$cat["mailifnewlinksubject"],"TITLE: $ttitle\nURL: $url\n");
}
mysql_query("INSERT INTO main SET title='$ttitle', description='$description', url='$url', cat1='$c1', cat2='0', cat3='0', gin=0, gout=0, moder_vote=0, email='$email', type=0;") or die(mysql_error());
require("template.php");
if($onregister == "on")
{
$headers = "From: $namesender <$emailsender>\n";
mail($email,$subjbefore,html_entity_decode($templbefore,ENT_QUOTES),$headers);
}
$r=mysql_query("SELECT max(lid) FROM main WHERE url='$url'") or die(mysql_error());
$cid=@mysql_result($r,0,0);
print ("<HTML><HEAD>\n");
print ("<META HTTP-EQUIV=refresh CONTENT='0;url=thx.php?id=$cid'>\n");
print ("</HEAD></HTML>\n");
die();
}
}
Скрипт: add.php
Функция: mhtml() // Самописная
PHP код:
function mhtml($t)
{
$t=StripSlashes($t);
$t=str_replace("'","'",$t);
$t=str_replace("\"",""",$t);
return $t;
}
Функция эта сначала убирает слэши,которые экранируют кавычки(обратные то бишь) и спецсимволы экранируются.Также заменяются символы '\' и ' на хтмл сущности.т.е. бесполезные их варианты при проведении XSS.Ладно.Зато есть инжект в INSERT запросе.
Уязвимые параметры: $email,$url,$ttitle,$description.
Почему я так решил? Проверил на локалхосте:
PHP код:
<?php
$n=mhtml(substr($_GET["x"],0,256));
echo $n;
function mhtml($t)
{
$t=StripSlashes($t);
$t=str_replace("'","'",$t);
$t=str_replace("\"",""",$t);
return $t;
}
?>
Или я неправильно накодил,или стр реплейс не работает.Эта функция не заменяет кавычку вообще.На сервере включён magic_quotes_gpc.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|