如何解决没有查询字符串选项的页面上的查询字符串
我有一个不使用查询字符串的页面。 前任。 https://testsite.com/defalut.aspx
我们的网络管理员运行漏洞扫描,并表示某些页面存在问题。 这是破坏它的 URL 前任。 https://testsite.com/default.aspx?>>>>=1
我知道他使用的软件在测试过程中添加了这个查询字符串,但是如何在没有检查查询字符串的页面上排除这样的查询字符串?
我使用的是 Visual Studio 2019 C#、IIS 10。
报告结果
Using the GET HTTP method,nessus found that :
+ The following resources may be vulnerable to sql injection (on
parameters names) :
> /default.aspx?'%2Bconvert(int,convert(varchar%2C0x7b5
d))%2B'=1
-------- request --------
GET /default.aspx?'%2Bconvert(int,convert(varchar%2C0x7b5d))%2B'=1
HTTP/1.1
Host: testsite.com
Accept-Charset: iso-8859-1,utf-8;q=0.9,*;q=0.1
Accept-Language: en
Connection: Close
Cookie: ASP.NET_SessionId=f1lv3mbn4qodbzm44wjhlhizxswe3
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
Trident/4.0)
Pragma: no-cache
Accept: image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,image/png,*/*
------------------------
-------- output --------
<html>
<head>
<title>ORA-12520: TNS:listener Could not find available handler for requ
ested type of server</title>
<Meta name="viewport" content="width=device-width" />
<style>
------------------------
谢谢
解决方法
我认为您需要更多信息。
如果来自所示请求的响应有一些暗示可能存在漏洞的细节,例如响应中出现的某些查询字符串可能暗示 XSS 等,渗透测试将标记一个问题。
扫描结果将提供有关为什么该请求会揭示潜在漏洞的更多信息 - 请向您的网络管理员询问完整报告的访问权限,因为这将使您能够确定是否存在需要解决的潜在问题,或者这是一个误报。我的猜测是您使用的框架反映了页面链接中的查询字符串,但这是一个真实的猜测。
根据我们的聊天和问题更新进行一些扩展。对于注入攻击和 XSS 等漏洞,主要防御措施是将输入列入黑名单、将输入列入白名单并消除不受信任的数据。
黑名单通常是最后的手段——无论你能阻止什么模式,都可能有办法绕过它。
如果可能,白名单可有效防止恶意数据通过您的应用程序进入,但仅靠其本身可能还不够。如果您网站上的任何内容来自持久数据,是否还有其他恶意数据进入的方式?是否有任何其他应用程序可以更新数据?谁有权直接执行sql?社会工程学是一种真正的威胁,有访问权限的人可能会被诱骗做危险的事情。
中和不受信任的数据意味着不同的事情,具体取决于威胁。对于 sql 注入,不可信的输入通过使用准备好的语句中和 - 永远不要将用户输入连接到语句中。
对于 XSS 中和通常意味着转义任何可能被恶意使用的数据。这通常是在页面上输出数据时而不是在输入时,因为适当的转义形式取决于包含数据的页面内容中的位置 - 是在文本块中,还是在 href 属性中,还是在页面上的脚本。
在您的情况下,由于您从不期望请求参数,您可能可以采用一种非常简单的方法。白名单(通过查询拒绝任何请求)或中和输入(通过剥离任何查询)。如果您的应用程序服务器前面有一个像 Apache httpd 这样的网络服务器,我认为可以使用 MOD_REWRITE 来完成,否则我认为 asp.net 具有类似的请求重写功能。
是列入白名单还是无效化只会影响用户体验,可能无关紧要 - 实际上,实际用户不太可能坐在屏幕前发送潜在的恶意请求。大多数公共网站都充斥着类似于渗透测试的自动攻击尝试。
听起来您的某些页面内容确实依赖于数据库中的数据,因此尽管上述内容可以解决您的渗透测试警告,但值得考虑转义输出以确保真正安全。我假设 asp.net 有一些内置函数来支持这一点。
我也有点担心错误消息是否被转储到页面标题中,就像这种情况一样 - 详细的错误信息本身就是一个漏洞,因为它可以为攻击者提供有关您网站的大量有用信息实施,以及对不同攻击尝试效果的有用反馈。
阅读更多信息的最佳地点是 OWASP website
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。