怂批一个 2022-11-28 11:07 采纳率: 66.7%
浏览 42
已结题

用ASP代码实现跨站脚本攻击

急,求解答!为什么我配置了IIS,代码也和书本上一致,还是不能正确显示如书本的结果呢?

脚本代码如下:
(1)index.asp如下:

<%@Language=VBScript%>
<%If Request.Cookies("userName")<>""Then
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
strRedirectUrl = strRedirectUrl&Response.Cookies("userName")
Response. Redirect(strRedirectUrl)
Else %>
<HTML>
<HEAD>
<TITLE> MyNiceSite. com Home Page </TITLE>
</HEAD>
< BODY >    
< H2> MyNiceSite. com     
< FORM method= "post" action= "page2. asp">    
Enter your MyNiceSite. com username:    
< INPUT type ="text" name= "userName">    
< INPUT type= "submit" name= "submit" value =" submit' ></span>    
<span class="hljs-variable"></FORM>
</BODY >
</HTML>
<%End If%>

(2)page2.asp如下:


<%@ Language =VBScript%>
<%Dim strUserName
If Request. QueryString("userName")<> "" Then
strUserName=Request. QueryString("userName" ')
Else
Response. Cookies("userName")=Request. Form("userName")
strUserName=Request. Form( "userName" )
End If %>
< HTML>
< HEAD> </HEAD>
< BODY>
< H3 align= "center"> Hello: <%= strUserName %> 
</BODY>
</HTML>


书上内容及结果如下:

img

img

我的运行结果如下:

img

希望有心人教教我!教我做成功或者截图教我做成感谢感谢!

  • 写回答

3条回答 默认 最新

  • _东_ 2022-11-29 10:37
    关注
    获得7.50元问题酬金

    你的主要问题是把代码打对,不该空格的地方不要空格,比如 Request. QueryString("userName" ') ,这样子是没法获取到请求数据中的查询字符串的。 应该是Request.QueryString("userName"),并且在传参中,尾巴多了一个单引号...诸如此类的问题有多处。

    我把代码试了一下,主流浏览器都能正常运行。使用的Visual studio 2022,运行在IIS express上。

    index.asp :

    <%@ Language=VBScript %>
    <% If Request.Cookies("userName")<>"" Then
      Dim strRedirectUrl
      strRedirectUrl = "page2.asp?userName="
        strRedirectUrl = strRedirectUrl & Response.Cookies("userName")
      Response.Redirect(strRedirectUrl)
    Else%>
    <html>
    <head>
        <title>MyNiceSite.com Home Page </title>
    </head>
    <body>
        <h2>MyNiceSite.com </h2>
        <form method="post" action="page2.asp">
            Enter your MyNiceSite.com username:    
            <input type="text" name="userName">
            <input type="submit" name="submit" value="submit">
        </form>
    </body>
    </html>
    <% End If %>
    

    Page2.asp:

    <%@ language="VBScript" %>
    <% Dim strUserName
    If Request.QueryString("userName")<> "" Then
        strUserName = Request.QueryString("userName")
    Else
    Response.Cookies("userName") = Request.Form("userName")
    strUserName = Request.Form("userName")
    End If %>
    <html>
    <head>
        <title>Page2</title>
    </head>
    <body>
        <h3 align="center">Hello: <%= strUserName %> </h3>
    </body>
    </html>
    

    这是Chrome浏览器里的测试结果,Edge, IE什么的都可以:

    img

    部署到IIS里,结果是一样的,这是Edge的测试结果:

    img

    评论 编辑记录
  • Flashang_sg 2022-11-28 11:41
    关注

    你需要先讓你的 iis / asp 可以正確的執行普通網頁(例如 hello world 這類的)。
    另外,除了 microsoft windows ie 可以執行 vbscript, 其他瀏覽器無法使用。
    個人認為應該提早學 javascript。

    评论
  • Hello World, 2022-11-28 15:13
    关注

    HTML标签不要有空格:

    img

    评论

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 创建了问题 11月28日

悬赏问题

  • ¥15 Latex算法流程图行号自定义
  • ¥15 关于#python#的问题:我在自己的电脑上运行起来总是报错,希望能给我一个详细的教程,(开发工具-github)
  • ¥40 基于51单片机实现球赛计分器功能
  • ¥15 cs2游戏画面卡住,应用程序sid与指挥者sid不匹配
  • ¥15 实验七:Pandas要有实验截图和代码
  • ¥15 TypeError: Make sure that the iterable only contains strings.
  • ¥35 电脑放图书馆,这是被黑了吗
  • ¥15 等高线中数据取消科学计数法
  • ¥15 Qt播放10路ffmpeg 视频流
  • ¥15 如何利用闲置机械硬盘变现