sql-server – 如何利用“EXEC @sql”?
发布时间:2020-12-12 06:36:36 所属栏目:MsSql教程 来源:网络整理
导读:我的同事对他的代码不安全,并允许用户上传要在服务器上运行的SQL文件. 他删除了文件中的任何关键词,如“EXEC”,“DROP”,“UPDATE”,“INSERT”,“TRUNC” 我想通过利用他的EXEC(@sql)向他展示他的方式的错误 我的第一次尝试将是’EXEXECEC(N”SELECT”你DRDR
我的同事对他的代码不安全,并允许用户上传要在服务器上运行的SQL文件.
他删除了文件中的任何关键词,如“EXEC”,“DROP”,“UPDATE”,“INSERT”,“TRUNC” 我想通过利用他的EXEC(@sql)向他展示他的方式的错误 我的第一次尝试将是’EXEXECEC(N”SELECT”你DRDROPOPped the ball Bob!”)’ 但他可能会在循环中过滤掉所有内容. 有没有办法可以利用我的同事的代码?或者过滤掉关键词? 编辑:我让他检查他的代码.如果代码包含关键字,则不执行它.我还在试图弄清楚如何使用二进制转换来利用它. 解决方法>告诉你的同事他是个白痴.>做一个 obfuscated SQL query,类似于: 选择@sql = 0x44524f5020426f627350616e7473 这将需要一些调整,具体取决于代码的其余部分,但我们的想法是用十六进制编码代码并执行它(或者更确切地说,让它执行).还有其他方法来混淆要注入的代码. 你那里有一个巨大的安全漏洞.有趣的是,这甚至不需要重新发明.阻止此类事件发生的正确方法是创建和使用具有正确权限的帐户(例如:只能对表x,y和z执行选择查询). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |