页面上没有查询字符串选项的查询字符串



我有一个不使用查询字符串的页面。前任。https://testsite.com/defalut.aspx

我们的网络管理员运行漏洞扫描,并表示某些页面存在问题。这是破坏它的URL前任。https://testsite.com/default.aspx?<lt<lt<lt<lt<lt;foo";bar’314>gt>gt>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这样的Web服务器,我认为两者都可以用MOD_REWRITE完成,否则我认为asp.net也有类似的请求重写功能。

白名单还是中立只会影响用户体验,可能无关紧要——实际上,实际用户不太可能坐在屏幕前发送潜在的恶意请求。大多数公共网站都充斥着类似于渗透测试的自动攻击尝试。

听起来你的一些页面内容确实依赖于数据库中的数据,所以尽管上面的内容可以解决你的笔测试警告,但为了真正安全,还是值得考虑转义输出。我认为asp.net有一些内置的功能来支持这一点。

如果错误消息被转储到页面标题中,我也有点担心——详细的错误信息本身就是一个漏洞,因为它可以向攻击者提供关于您的网站实现的许多有用信息,以及关于不同攻击尝试效果的有用反馈。

阅读更多信息的最佳地点是OWASP网站

相关内容

  • 没有找到相关文章

最新更新