测试SQL注入/丢弃表不起作用

时间:2017-03-22 00:29:24

标签: mysql sql sql-injection

我试图通过尝试删除表(用户)来测试针对我的网站的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);

但它不起作用,不知道为什么?

2 个答案:

答案 0 :(得分:1)

<击> 密码应为:

' OR 1=1; DROP TABLE users; -- 
    <击>
  1. '将关闭密码字符串
  2. 1=1将确保您找到了结果。
  3. --将评论之前密码的最后'
  4. 修改

    我犯了一个错误。正在考虑一个不同的黑客。 1=1将绕过密码检查并传递登录屏幕。

    您只需要关闭密码字符串

    '; DROP TABLE users; -- 
    

    enter image description here

答案 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; -- ';