SSL请求中的查询参数

时间:2016-08-31 07:24:38

标签: security penetration-testing

渗透测试的一个结果来自以下4个URL的“SSL请求中的查询参数”。 为查询参数ln传递的值是primefaces(ln = primefaces)。 它是primefaces jsf库,所以我们没有专门将其他值传递给查询参数ln。 如何确认?

https://example.com/BelsizeWeb/faces/javax.faces.resource/primefaces.js

https://example.com/BelsizeWeb/faces/javax.faces.resource/jquery/jquery-plugins.js

https://example.com/BelsizeWeb/faces/javax.faces.resource/jquery/jquery.js

https://example.com/BelsizeWeb/faces/javax.faces.resource/fileupload/fileupload.js

实体:ln(参数)

原因:查询参数通过SSL传递,可能包含敏感信息

1 个答案:

答案 0 :(得分:1)

您的渗透测试工具对以下任何查询参数进行了以下虚假假设:

  1. 该值包含敏感数据(例如密码)
  2. 可通过浏览器历史记录访​​问(针对恶意JavaScript)
  3. 将记录在后端服务器上
  4. 大多数时候,第一个是假的,在这种情况下,其他问题甚至都不重要。

    即使1为真,只有为网页发出的请求(地址栏中显示的网址)才会在历史记录中结束。 XHR请求和其他图像,css,js等请求不会。

    最后一个问题是相当有缺陷的。如果正在记录URL,那么将敏感数据作为路径段传递并不是更好,但我猜测您的工具会抱怨GET /endpoint?code=xyz123不是 GET /endpoint/code/xyz123。 POST表单是另一种选择,但是当2.不适用时,POST的唯一好处是,如果访问日志的人无法访问传入数据(并且您确定POST表单)未记录)。

    总而言之,只要1& 1,就应该使用POSTed url编码形式。 2,或1& 3适用于您的情况。常见例子:

    • 使用POST提交用户密码的表单
    • 使用自我提交表单(而不是在重定向中查询params)将“令牌”从一个域传递到另一个域(例如OIDC)。