代码之家  ›  专栏  ›  技术社区  ›  Biff MaGriff

如何利用“EXEC@sql”?

  •  8
  • Biff MaGriff  · 技术社区  · 15 年前

    我的同事对他的代码不安全,允许用户上传SQL文件在服务器上运行。 他去掉了文件中的关键词,比如 "EXEC", "DROP", "UPDATE", "INSERT", "TRUNC"

    我想利用他的错误来向他展示他的错误 EXEC ( @sql )

    'EXEXECEC (N''SELECT ''You DRDROPOPped the ball Bob!'')'

    但他可能会把这些都过滤掉。

    有没有办法利用我同事的代码?或者过滤掉关键词就足够了?

    编辑:我让他签了密码。如果代码包含关键字,他不会执行它。我仍在试图找出如何利用这个二进制转换。

    2 回复  |  直到 15 年前
        1
  •  5
  •   NullUserException Mark Roddy    15 年前
    1. 告诉你的同事他是个白痴。

    2. obfuscated SQL query ,类似于:

      select @sql = 0x44524f5020426f627350616e7473

    这将需要一些调整,这取决于代码的其余部分看起来像什么,但想法是用十六进制编码代码并执行它(或者更确切地说,让它执行)。还有其他方法可以混淆要注入的代码。

    你的安全漏洞很大。有趣的是,这甚至不是需要重新发明的东西。阻止此类事情发生的正确方法是创建并使用具有正确权限的帐户(例如:只能执行 select

        2
  •  1
  •   Community Mohan Dere    9 年前

    看一看 ASCII Encoded/Binary attacks

    应该让你的朋友相信他是命中注定的。。;)


    Converting a String to HEX in SQL