微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 IIS 会关心查询字符串中的“convert”是否拼写错误?

如何解决为什么 IIS 会关心查询字符串中的“convert”是否拼写错误?

我试图了解经典 ASP 页面的行为,通过查看 IIS 日志和浏览器上的行为来深入了解注入向量。

从浏览器中,我注意到有时从不请求页面,这取决于查询字符串中的拼写。

例如,https://example.com/test.asp?id=convert() 打开页面,我可以使用 Request.Querystring 读取查询字符串。当然它可能是一个 sql 注入向量,但我的页面读取它(并丢弃请求)。

然而,https://example.com/test.asp?id=conveert() 永远不会传递到页面页面打不开,浏览器出现一个完全空白的页面

IIS 服务器是否会根据拼写对查询字符串进行预处理并“拒绝”某些 QS?这两个请求都在状态为 200 的 IIS 日志中。但只有一个可以访问 test.asp 页面。这是服务器上的正常行为吗?服务器人员告诉我他没有过滤“convert()”。

记录查询字符串的代码示例:

Dim conn,incomingQS
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Application("ConnectionString")
conn.Execute("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED")
incomingQS = Request.Querystring
incomingQS = DoubleApostrophes(incomingQS)
conn.Execute("INSERT INTO tabLog(qsDate,qsContent) VALUES (getdate(),'" & incomingQS & "')")
conn.Close
Set conn = nothing

在IIS日志中,当查询字符串使用“CONVERT”时,我的日志中有一个条目。当完全相同的查询字符串使用“CONVEERT”时,没有条目,这意味着永远不会引用该页面。为什么会这样?

感谢您在这里提供任何见解。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。