【问题标题】:Escaping characters, SQL Injection转义字符,SQL 注入
【发布时间】:2013-07-04 10:17:23
【问题描述】:

我在 SQL 注入问题中有这个查询:

"SELECT * FROM user_data WHERE keywords LIKE \%" + querystring + "\% AND owner=’" + owner + "’;"

其中查询字符串由用户直接输入,并且自动设置所有者。 语法应该是正确的,但我不明白 \% 在这个位置做什么......查询不正确不是吗?它应该导致利用查询问题的SQL注入问题,但是这个“\%”真的让我感到不安。

【问题讨论】:

    标签: sql escaping sql-injection


    【解决方案1】:

    假设查询字符串有

    '; SELECT * FROM SYS.DATABASES; --
    

    如果黑客使用 CURL 工具进行尝试,您认为会发生什么? 您的语法将带来从第一个查询到所有数据库列表的所有内容,实际上这是一个非常简单的示例。在某些环境中,即使防火墙配置良好,这种注入也可以让黑客进入整个服务器甚至域。

    【讨论】:

    • 我的意思是在LIKE之后写\%是没有意义的,这是不正确的,所以即使我们写你写的,我们也会因为这个\%没有正确放置而出错我们?
    • 你是对的,它会导致 SQL 解析失败。为了通过解析,它需要是单引号
    猜你喜欢
    • 2015-03-06
    • 2010-12-21
    • 2011-09-26
    • 1970-01-01
    • 2010-11-08
    • 2020-09-28
    • 2013-06-30
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多