sql-server – 如何利用“EXEC @sql”?

前端之家收集整理的这篇文章主要介绍了sql-server – 如何利用“EXEC @sql”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的同事对他的代码不安全,并允许用户上传要在服务器上运行的sql文件.
删除文件中的任何关键词,如“EXEC”,“DROP”,“UPDATE”,“INSERT”,“TRUNC”

我想通过利用他的EXEC(@sql)向他展示他的方式的错误

我的第一次尝试将是’EXEXECEC(N”SELECT”你DRDROPOPped the ball Bob!”)’

但他可能会在循环中过滤掉所有内容.

有没有办法可以利用我的同事的代码?或者过滤掉关键词?

编辑:我让他检查他的代码.如果代码包含关键字,则不执行它.我还在试图弄清楚如何使用二进制转换来利用它.

解决方法

>告诉你的同事他是个白痴.
>做一个 obfuscated SQL query,类似于:

选择@sql = 0x44524f5020426f627350616e7473

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

你那里有一个巨大的安全漏洞.有趣的是,这甚至不需要重新发明.阻止此类事件发生的正确方法是创建和使用具有正确权限的帐户(例如:只能对表x,y和z执行选择查询).

猜你在找的MsSQL相关文章