Я изучаю sql иньекцию методы защиты и нападения по курсу знаменитого американского специалиста по информационной безопасности - Hitesh'а. Проблема заключается в том, что денвер автоматически удаляет специальные символы в запросе к база данных. Так как в коде php никаких методов для удаления специальных символов не используется и в MySql терминале все команды работают, но иньекции с сайта не работают, как будто запросы фильтруются, но в коде никаких методов нет. Подкскажите, что это может быть ?
PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Less-1 SqL Injection master Course by Hitesh Choudhary</title> <link rel="stylesheet" href="../index.html_files/freemind2html.css" type="text/css"/> </head> <body> <div style=" margin-top:70px;color:#FFF; font-size:23px; text-align:center"> <h1><span class="style1">Welcome </span><font color="#FF0000">to SQL injection Master Course </font></h1> <h1><span class="style2">Lesson-1</span></h1> <h1><span class="style4">Hint : Error based string</span> <br> <font size="3" color="#666666"> <?php //including the Mysql connect parameters. include("../sql-connections/sql-connect.php"); // take the variables if(isset($_GET['id'])) { $id=$_GET['id']; //logging the connection parameters to a file for analysis. $fp=fopen('result.txt','a'); fwrite($fp,'ID:'.$id."\n"); fclose($fp); // connectivity $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; $result=mysql_query($sql); $row = mysql_fetch_array($result); if($row) { echo '<font color= "#0000ff">'; echo 'Your Login name:'. $row['username']; echo "<br>"; echo 'Your Password:' .$row['password']; echo "</font>"; } else { echo '<font color= "#900">'; print_r(mysql_error()); echo "</font>"; } } else { echo "Please input the ID as parameter with numeric value";} ?> </font> </h1> </div> <img border="0" src="img1.gif" alt="funny" width="200" height="200"> <div class="botton_fix">For more please visit : <a href="http://www.hiteshchoudhary.com" target="_blank">www.hiteshchoudhary.com</a></div> </br></br></br><center> </center> </body> </html> пример входных данных: id=-1' union all select 1,2,3-- ничего не возвращает. стандартная проверка на иньекцию: id=1' не возвращает ошибки.
sql-connect.php PHP: <?php //including the Mysql connect parameters. include("../sql-connections/db-creds.inc"); error_reporting(0); $con = mysql_connect($host,$dbuser,$dbpass); // Check connection if (mysqli_connect_errno($con)) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } else { @mysql_select_db($dbname,$con) or die ( "Unable to connect to the database: $dbname"); } ############################################ #do not touch this part of code $form_title_in="Please Login to Continue"; $form_title_ns="New User"; $feedback_title_ns="New User"; $form_title_ns= "Less-24"; ?>
нет, не оно. Совсем не нужно выкладывать никаких других листингов. Достаточно прочитать этот. Давай еще попробуй.
@SpikePHP ну хоть ты-то прочитай листинг и найди самостоятельно. Давай, если до начала второй практики ГП Австрии (14:55 МСК) не найдешь - тогда скажу.
Я сделал базу, сделал таблицу. Если id=1 то возвращает т.е. если без инъекции --- Добавлено --- Ну, т.е. дело в апострофе, ведь так?