2017-01-16 18 views
-3

私のPHPコード:一部とパスワード:いくつかのこのmysqlクエリはどのように機能しますか?

localhost/example/Less-1/index.php?id=1

<!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> 

私は

localhost/example/Less-1/index.php?id=1 order by 100

結果はユーザ名である次のクエリを使用してこのページを注入SQLにしようとしています

結果はusername:someとpassword:some

私は$id=2,3,...でも同様にチェックし、それは正常に動作します なぜそれはそのように機能しますか?私は誤りを正しく取得する必要がありますか?

+0

私は、廃止予定のAPI mysql_ *を使用しないで、myslqi_ *やそれ以上のPDOを使用することをお勧めします。 PHP v7でMysql_ * APIが削除されました –

+0

一重引用符が間違っていると思います。 ocalhost/example/Less-1/index.php?id = 1 ';を試してください。 DROP TABLEユーザー。 # – Alex

答えて

0

私はあなたのデータベースと接続を接続する方法を知っている。だから私はコードでdb接続を書いている..それと試してみてください、何か問題がある場合は教えてください。 :

<!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 


       // include("../sql-connections/sql-connect.php"); 


       if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) { 
         echo 'Could not connect to mysql'; 
         exit; 
        } 

        if (!mysql_select_db('mysql_dbname', $link)) { 
         echo 'Could not select database'; 
         exit; 
        } 

        $sql = "SELECT * FROM users WHERE id='".$id."' LIMIT 0,1"; 
        $result = mysql_query($sql, $link); 

        if (!$result) { 
         echo "DB Error, could not query the database\n"; 
         echo 'MySQL Error: ' . mysql_error(); 
         exit; 
        } 

        while ($row = mysql_fetch_assoc($result)) { 
         echo '<font color= "#0000ff">'; 
           echo 'Your Login name:'. $row['username']; 
           echo "<br>"; 
           echo 'Your Password:' .$row['password']; 
           echo "</font>" 
        } 

        mysql_free_result($result); 




       ?> 
       </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> 
+1

ありがとうございます。出来た –

0

この場合、データベースクエリではエラーは発生しません。セッションIDと等しくないIDの場合は、例外をスローする必要があります

if ($_GET['id'] != $_SESSION['id']) { 
    throw \Excetption("You don't have access."); 
} 
関連する問題