【发布时间】:2015-04-11 07:16:51
【问题描述】:
我被要求查看一些经典的 ASP 代码,这很好。但遇到的问题是他正在使用名为 Sql Inject Me (SIM) 的 FireFox 插件测试 SQL 注入漏洞。 它得到 306 注入错误。他希望能够运行它而不会出现这些错误。
我开始...
function scrub() {
var oldLastname = document.getElementById("Jobtitle").value;
var newLastName = oldLastname.replace(";", " ").replace("="," ").replace(' " " ', " ").replace("'"," ");
}
这将在单击提交按钮时触发。我不确定这是否会清除错误
我读到了 FireFoxes 插件在做什么,那就是……
“该工具通过表单字段发送数据库转义字符串来工作。然后它会查找输出到页面呈现的 HTML 中的数据库错误消息。”
在我走得更远然后发现有更简单的方法之前,有什么好的想法可以解决这个问题吗?我确实发现这个链接很有用,直到我意识到它是关于 php 而不是 JavaScript 或 ASP。 Looked at this
【问题讨论】:
-
搜索和替换是不够的。将 SQL 语句更改为 parameterized queries 并阅读 OWASP 的 SQL Injection Prevention Cheat Sheet。
-
@Melioratus,我不习惯经典的 ASP。我确实有他发送的另一个页面,其中包含为更新创建的记录集。我要看看那些参数化查询。它们看起来很相似。
-
如果您遇到困难或需要其他资源,请在评论中联系我,我会看看能否为您指明正确的方向。
-
@Melioratus,谢谢...我查看了参数化查询,但不了解如何使其工作。对象看起来像这样..objRecordset.Fields("City") = Request("City")。我以前没有遇到过这样的事情。我尝试删除一些字符,例如 ' ; -- 但我得到的错误数量与他相同,唯一的区别是他得到了 302 而我得到了 404
-
在 stackoverflow 上找到另一个示例,显示使用 classic ASP with jScript 的参数化 sql。因为经典的 asp 允许多种方式连接到数据库,所以您应该在您的问题中添加一些 SQL 语句的代码示例,以便我们找到正确的语法。
标签: javascript asp-classic sql-injection