我的任务是制作一个易受攻击的 php 应用程序,这是我的登录页面代码。问题是我不能让它变得脆弱。当我尝试使用登录字段进行 SQL 注入时,没有任何反应。
如何使其容易受到 SQLi 攻击or '1'='1'
或类似攻击?
检查登录.php
require "config.php";
$tbl_name="members";
mysql_connect("$servername", "$dbusername", "$dbpassword")or die("Spajanje bezuspješno");
mysql_select_db("$dbname")or die("Selektrianje baze bezuspješno");
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
header("location:addnews.php");
}
else {
header("location:login_failed.php");
}
配置文件
$servername='localhost';
$dbusername='root';
$dbpassword='qwe123';
$dbname='ferida';
connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbusername,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbusername","$dbpassword");
if(!$link){die("Ne mogu se spojiti na MySQL");}
mysql_select_db("$dbname",$link) or die ("Ne mogu otvoriti bazu podataka".mysql_error());
}
数据库
CREATE TABLE IF NOT EXISTS `members` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(65) NOT NULL,
`password` varchar(65) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4*/ ;
INSERT INTO `members` (`id`, `username`, `password`) VALUES
(1, 'admin', 'P@ssw0rd'),
(2, 'r00t', '1qa2ws'),
(3, 'editor', 'q1w2e3r4');