是否可以注入 Cookie、表单、会话数据?

Is it possible to inject with Cookie, Form, Session data?

提问人:omerix 提问时间:7/6/2021 最后编辑:Zoe is on strikeomerix 更新时间:7/25/2021 访问量:157

问:

我有一个屏幕,我将所有变量打印到屏幕上,并使用经典 asp 将它们显示给用户。

在此屏幕上,我向用户显示“Session”、“Querystring”、“Form”、“Cookie”、“Server.Variables”的值。

我正在做替换,以便一些数据是可以理解的。除此之外,我什么都不做。

显示的值中没有任何内容可以打扰我。

但是,用户可以通过篡改 Cookie 或使用请求表单提交恶意代码来做任何有害的事情吗?

在向用户显示值之前的正则表达式等。我需要申请什么吗?

在同一页面上显示这些值之前,我根据从 SQL Server 分配给 Session 的值检查用户名和密码,并向用户显示以下所有数据。

你可以把它看作是一种phpinfo。

我的经典 asp 代码

<%
variables=variables &   "<style>h3 {margin:3px;text-decoration: underline;}</style>"
variables=variables &   "<h3>Session</h3>"
ix=0
For Each ix in Session.Contents
variables=variables &"<span style='color:red;font-weight:bold;'>"&ix&"</span>="
variables=variables &  Session.Contents(ix) 
variables=variables &  "<br>"
Next

variables=variables &  "<h3>Querystring</h3>"
for each variable_name in request.QueryString
variable_value=request.QueryString(variable_name)
variables=variables &"<span style='color:red;font-weight:bold;'>"&variable_name&"</span>="
variables=variables &  variable_value
variables=variables &  "<br>"
next

variables=variables &  "<h3>Form</h3>"
for each variable_name in request.Form
variable_value=request.Form(variable_name)
variables=variables &"<span style='color:red;font-weight:bold;'>"&variable_name&"</span>="
variables=variables &  variable_value
variables=variables &  "<br>"
next

variables=variables &  "<h3>Cookie</h3>"
for each x in Request.Cookies
  if Request.Cookies(x).HasKeys then
    for each y in Request.Cookies(x)
      variables=variables&("<span style='color:red;font-weight:bold;'>"&x&"</span>"&"<span style='color:blue;font-weight:bold;'>('"&y&"')</span>=" & Request.Cookies(x)(y))
      variables=variables&("<br>")
    next
  else
    variables=variables&("<span style='color:red;font-weight:bold;'>"&x & "</span>=" & Request.Cookies(x) & "<br>")
  end if
next

variables=variables &  "<h3>Server.Variables</h3>"
for each x in Request.ServerVariables
    variables=variables&("<span style='color:red;font-weight:bold;'>"&x&"</span>="&Request.ServerVariables(""&x&"")&"<br>")
next


Response.Write variables
%>
ASP 经典 SQL 代码注入

评论

2赞 Adam 7/7/2021
使用将防止作为表单、查询字符串或 cookie 值传递的任何可能有害的代码在客户端执行。Server.HTMLEncode

答:

0赞 Simon Sawyer 7/14/2021 #1

是 - 在将值输出到页面之前,您没有对值进行编码。至少在值周围使用 Server.HTMLEncode。