играюсь с http://forum.antichat.ru/thread130070-damn.html не могу придумать как провести инекцию... PHP: <?php // Retrieve data $id = $_GET['id']; $id = stripslashes($id); $id = mysql_real_escape_string($id); if (is_numeric($id)){ $getid="SELECT first_name, last_name FROM users WHERE user_id = '$id'"; $result=mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' ); $num=mysql_numrows($result); $i=0; while ($i < $num) { $first=mysql_result($result,$i,"first_name"); $last=mysql_result($result,$i,"last_name"); echo "<pre>ID: $id<br>First name: $first<br>Surname: $last</pre>"; $i++; } } ?> регистр глобалс офф. хелп
PHP: <?php // Retrieve data $id = $_GET['id']; $id = stripslashes($id); $id = mysql_real_escape_string($id); if (is_numeric($id)){ $getid="SELECT first_name, last_name FROM users WHERE user_id = '$id'"; $result=mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' ); $num=mysql_numrows($result); $i=0; while ($i < $num) { $first=mysql_result($result,$i,"first_name"); $last=mysql_result($result,$i,"last_name"); echo "<pre>ID: $id<br>First name: $first<br>Surname: $last</pre>"; $i++; } } ?>
скачай и глянь. э не я выдумал код этот. вон написана хак тренировачная площадка....я глянул исходник и офигел сам.
в \sqli_low.php (самый легкий) никакой защити: >> $id=$_GET['id']; >>$getid="SELECT first_name, last_name FROM users WHERE user_id = '$id'"; в \sqli_med.php (средный) уже защита: >> $id = mysql_real_escape_string($id); в \sqli_high.php защита stripslashes и mysql_real_escape_string. все уровни надо проходить по очереди. пройди сначало \sqli_med.php.. попробуй-ка обойти mysql_real_escape_string
да они хакеры, хуле предлагают провести xss , обойти htmlspecialchars >>echo '<pre>Hello ', htmlspecialchars($_GET['name']), '</pre>'; lfi в $file: PHP: switch($file){ default: include("fi_content.php"); break; }
sqli_med.php PHP: $id = $_GET['id']; $id = mysql_real_escape_string($id); $getid="SELECT first_name, last_name FROM users WHERE user_id = $id"; $result=mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' ); Здесь переменная $id не обрамляется кавычками в запросе. Тобишь mysql_real_escape_string до фени )) Я находил такую скулю в реальном движке http://forum.antichat.ru/showpost.php?p=1279348 Что касается sqli_high.php PHP: $id = $_GET['id']; $id = stripslashes($id); $id = mysql_real_escape_string($id); Возможно из-за stripslashes+mysql_real_escape_string и при меджик_квотес=вкл а так же при правильно составленном значении переменной $id (ну там ////') получится так что некоторые слэши\кавычки заэкранируют друг друга, а некоторые нет ((; <= Вероятно я написал бред, просто строю предположения в какую сторону копать. А вот как они хотят обойти is_numeric - действительно интересно.