我试图向我的客户证明系统对 mysql 注入不安全。我想要一些证据,要么向我显示完整的用户列表(从..中选择 *),要么在系统中注入新的用户/管理员,以便我之后能够登录。
这是我如何构建系统的简化:
PHP登录网站:
$user = $_POST["user"];
$pwd = $_POST["pwd"];
$query1 = "INSERT INTO user_log (username, password,ip) VALUES ('$user','$pwd','127.1.1.1')";
$result1 = mysql_query($query1) or die("Query failed: " . mysql_error());
$query2 = "select * from login where name = '$user' and pass = '$pwd' limit 1";
$result2 = mysql_query($query2) or die("Query failed: " . mysql_error());
mysql表是这样的:
CREATE TABLE `user_log` (
`idadmin` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(45) DEFAULT NULL,
`password` varchar(45) DEFAULT NULL,
`ip` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idadmin`)
)
CREATE TABLE `login` (
`idlogin` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`pass` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idlogin`)
)
尽管我可以看到它完全不安全,但我发现它很难注入。
- 我尝试的第一件事是注入 INSERT 查询,但除了向 user_log 表发送垃圾邮件之外,很难从中获得一些不错的结果。
- 我尝试创建一个通过第一个 query1 并在 query2 处注入的查询。但由于引用,这非常复杂。
在这种特定情况下进行注入的任何想法或其他类型的技术?