2016-09-15 57 views
-5

我必須創建一個可以注入SQL的應用程序,但是我不能讓SQL注入成爲可能。我嘗試了所有的SQL注入,但我沒有成功。可以編寫像admin'#這樣的用戶名,因爲這會註釋掉該行。爲什麼不能SQL注入?

我希望你能幫助我。你可以在下面看到我的代碼。

<?php 
    include('include/config.php'); 
    include('parts/header.php'); 

    $submit = $_POST['submit']; 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    if ($submit) { 
     if(!empty($username OR !empty($password))) { 
      $sqlQuery = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'"); 

      if(mysql_num_rows($sqlQuery) == 1) { 
       // Success - admin'# 
       echo "LOGGEDIN"; 
       $_SESSION['loggedin'] = 1; 
      } 
      else { 
       echo "Wrong password or username"; 
      } 
     } 
     else { 
      echo "You didn't fill every field."; 
     } 
    } 
?> 

<div id="container"> 
    <form action="login.php" method="POST"> 
     <input type="text" name="username" placeholder="Type user name..."> 
     <input type="password" name="password" placeholder="Type password..."> 
     <input type="submit" name="submit" value="Log in"> 
    </form> 
</div> 
+1

這是託管在活的網站的某個地方? – RamRaider

+0

你的AND條件使它始終爲假 –

+3

你試圖注入它的是什麼? – Phiter

回答

-9

可以使用mysql_real_escape_string功能,使一個變量安全:

$username = mysql_real_escape_string($_POST['username']); 
$password = mysql_real_escape_string($_POST['password']); 
+0

我的任務是讓一個應用程序不安全,但我的代碼不能sql注入:/ –

+0

你需要使用htmlspecialchars()或strip_tags ()。 1st將會轉換特殊的字符,如<<,它會顯示爲<,但不會被執行。第二隻是將所有標籤剝離。 – Decoder

+0

檢查此鏈接http://stackoverflow.com/questions/6857817/a-php-function-to-prevent-sql-injections-and-xss – Decoder

-2
<?php 
include('include/config.php'); 
include('parts/header.php'); 


$submit = $_POST['submit']; 
$username = (int)$_POST['username']; 
$password =(int)$_POST['password']; 

if ($submit) { 
    if(!empty($username OR !empty($password))) { 
     $sqlQuery="SELECT * FROM users WHERE user_login = '$username' AND password = '$password'"; 

     //SELECT * FROM `wp_users` WHERE `user_login`='1' OR '1' = '1' AND `user_pass`='1' OR '1' = '1' 
     //$sqlQuery = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'"); 
     echo $sqlQuery; 
     exit; 
     if(mysql_num_rows($sqlQuery) == 1) { 
      // Success - admin'# 
      echo "LOGGEDIN"; 
      $_SESSION['loggedin'] = 1; 
     } else { 
      echo "Wrong password or username"; 
     } 
    } else { 
     echo "You didn't fill every field."; 
    } 
} 
?> 

<div id="container"> 
    <form method="POST"> 
     <input type="text" name="username" placeholder="Indtast brugernavn.."> 
     <input type="password" name="password" placeholder="Indtast kodeord.."> 
     <input type="submit" name="submit" value="Log ind"> 
    </form> 
</div> 

您查詢輸出將是這一點,並始終爲真,

SELECT * FROM wp_users WHERE user_login = '7' AND user_pass = '7' 
+0

Doenst工作:/給我錯誤的密碼聲明。 –

+0

你檢查了鏈接嗎? –

+0

爲什麼,我可以爲了投票而選擇嗎? –