Py学习  »  DATABASE

java中的mysql表名注入

Donatello • 5 年前 • 1301 次点击  

我有必要 生成表 运行时在数据库中。
我不能用 编制报表 在这种情况下。

我想找一个 图书馆 验证 的查询或表名输入 MySQL 但只找到了 伊萨皮 它只能 逃跑 我的绳子。我有我的自定义验证器,但我知道在这种情况下我不能确定。

我读了很多关于如何滥用sql注入的例子。但通常参考资料给出的示例是参数,而不是表名。据我所知,当参数在查询结束时,这是可能的。

问题1 :您能举例说明如何滥用这些查询吗?

"CREATE TABLE " + tableName + "(id int primary key)"

"DROP TABLE " + tableName

对应表名 -来自客户的输入

它可以非常有用的测试我的验证器。当我尝试这样做时,我总是有sql语法错误。

问题2 :通常他们在需要使用某个字符作为“或类似的字符”时以及在他们编写请求之后使用这种策略。对于这种策略,需要使用空格。

是否可以在不能有空格的输入中粘贴SQL注入?只有信吗? 下划线可以作为中断查询的字符吗?

更新 以下内容:

如果在“firstname\u lastname”中的下划线之前添加转义字符是安全的?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47588
 
1301 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Kramer
Reply   •   1 楼
Kramer    6 年前

我建议你不要这么做,但如果你必须这么做的话,迈克尔·布彻的评论非常好。你可以使用标签或 %00 %09 /**/ %0d %0a 取决于数据库实现。