mysql - 测试 SQL 注入(inject)/删除表不起作用

标签 mysql sql sql-injection

我正在尝试通过删除表(用户)来测试针对我的网站的 SQL 注入(inject),但它不起作用。

我的sql字符串语法:

String sql = "select * from users where username='" + username + "' and password='" + password + "';";

我将 jack 放入用户名字段中,然后 测试';删除表用户; -- 在密码字段中输入并获取以下sql字符串:

从用户名='jack'和密码='test'的用户中选择*;删除表用户; --'; 然后我执行它:

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);

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

最佳答案

<罢工> 密码应该是:

' OR 1=1; DROP TABLE users; -- 
    <罢工>
  1. '将关闭密码字符串
  2. 1=1将确保您找到结果。
  3. --会评论最后'从以前的密码

编辑:

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

您只需关闭密码字符串

'; DROP TABLE users; -- 

enter image description here

关于mysql - 测试 SQL 注入(inject)/删除表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940646/

相关文章:

php - CI 数据映射器 : Iterate parent child

javascript - 从函数中的查询获取结果并计算 Codeigniter 中的 num_rows

mysql - 如果连接表中没有任何内容,则从左表事件中获取所有内容

php - 准备好的语句是否可以防止我在数据库中看到垃圾?

mysql - 什么是 MySQL 限制,它可以存储多少?

c# - 在客户端控制台应用程序中将 SQL Server 连接字符串保存在何处?

sql - 不需要的 MySQL 索引

sql - MS-Access慢查询

php - 使用 PHP multi_query 到 DROP TABLE 的 SQL 注入(inject)

asp.net - 恶意用户可以修改 View 状态吗?