14.44-16.22  编码,跨站脚本攻击1

16.22-16.53 整理cnblog

 

这篇文章适合知道有XSS脚本攻击,但是一头雾水,从未操作过,也不知道脚本攻击会给客户端用户带来什么不便之处,有什么危害。

 

 

通过Asp.net实现搜索功能,你提交了搜索条件后都在搜索框下方第一行显示  “您搜索的内容是:xxxx”

1.页面有3个控件, 一个 输入框(txtSearch),一个搜索按钮(btn),一个div (id=”result”  runat=”server”)

 

Default.aspx代码
  1. <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
  2.     CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" ValidateRequest="false" %>
  3. <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
  4. </asp:Content>
  5. <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
  6.     <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox><asp:Button ID="btn"
  7.         runat="server"  Text="" onclick="btn_Click" />
  8.   <div id="result" runat="server">
  9.   </div>
  10. </asp:Content>

 

Default.aspx.cs代码
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. namespace WebApplication1
  8. {
  9.     public partial class _Default : System.Web.UI.Page
  10.     {
  11.         protected void Page_Load(object sender, EventArgs e)
  12.         {
  13.         }
  14.         protected void btn_Click(object sender, EventArgs e)
  15.         {
  16.             result.InnerHtml = ": " + txtSearch.Text.Trim();
  17.             //result.InnerHtml = ": " + HttpUtility.HtmlEncode(txtSearch.Text.Trim());
  18.         }
  19.     }
  20. }

 

 

分别在IE 和CHROME下分别测试

 

1. 在IE 和 chrome 下

1)搜索sdf,IE,chrome正常显示:您搜索的内容是:sdf

 

2 )搜索内容为: </div><script type="text/javascript">alert('跨站攻击鸟')</script><div>

 

您搜索的内容是 这段字符串是放在一个<div></div>

如果我们搜索 </div><script type="text/javascript">alert('跨站攻击鸟')</script>

则 这段字符串变为  <div>       </div><script type="text/javascript">alert('跨站攻击鸟')</script><div>   </div>,签名2个div就闭合了,中间一个元素为script元素,最后div也闭合了

 

 

  • IE下展示为:

此处就弹出了对话框。对其他用户有什么威胁呢?仅针对此情况来说,正常情况下,A用户提交内容后,服务器都会将内容保存到数据库服务器中,那么B用户如果访问到了A用户评论的那个界面就会弹出上面的对话框。这就影响了网站整体体验。

 

解决办法:  后台给div赋值时候,请用html encode编码

将上面btn按钮的事件代码改成 result.InnerHtml = "您搜索的内容是: " + HttpUtility.HtmlEncode(txtSearch.Text.Trim()) 就行了

 

如下图,就不会弹出对话框来了,而是将搜索内容完全展示出来鸟

 

 

我们来查看html源码,看见 html标签信息都被编码了,这样浏览器就不知道这是一个脚本代码

 

<div id="MainContent_result">您搜索的内容是: &lt;/div&gt;&lt;script type=&quot;text/javascript&quot;&gt;alert('跨站攻击鸟')&lt;/script&gt;&lt;div&gt;</div>

 

  • chrome浏览器访问

      

居然什么都不显示,并且浏览器捕捉到了一些错误哦,提示xss攻击

于是这个alert就不执行了。

 

 

 

本实例项目下载地址----->XSS实例1.zip

 

 

总结:

1.可见IE浏览器的安全性真够糟糕,简单的xss脚本攻击都不做任何处理。所以大家尽量少用IE浏览器,尽量用火狐,谷歌的,并尽量使用最新版的。

2.解决办法就是:保存用户提交的数据后再展示之前一定要进行html encode编码再展示

3. asp.net 默认机制  input value 提交后,返回的内容在你不赋值之前一定是html encode编码,就像刚才提交的 </div>…<div>那段,返回的input value 就为&lt;script type=&quot;text/javascript&quot;&gt;alert('跨站攻击鸟')&lt;/script&gt;   当然如果你赋值了,就以你赋值的为算。

XSS 跨站脚本攻击实例1的更多相关文章

  1. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  2. xss(跨站脚本攻击),crsf(跨站请求伪造),xssf

    我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...

  3. web应用程序安全攻防---sql注入和xss跨站脚本攻击

    kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 博文主要内容包括两种常见的web攻击 sql注入 XSS跨站脚本攻击 代 ...

  4. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  5. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  6. JAVA覆写Request过滤XSS跨站脚本攻击

    注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...

  7. xss跨站脚本攻击及xss漏洞防范

    xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...

  8. PHP进行安全字段和防止XSS跨站脚本攻击过滤(通用版)

    废话不多说,直接贴使用方法和代码: 使用方式:1)写在公共方法里面,随时调用即可.2)写入类文件,使用是include_once 即可 代码: /* 进行安全字段和xss跨站脚本攻击过滤(通用版) - ...

  9. 初窥XSS跨站脚本攻击

    XSS跨站脚本攻击的分类 一. 反射型XSS跨站脚本攻击 二. 存储型XSS跨站脚本攻击 三. 基于DOM的XSS跨站脚本攻击 1.反射性XSS 经过后端,不经过数据库 2.储存型XSS 经过后端,经 ...

随机推荐

  1. 让VisualStudio Profiler捕捉执行的sql语句

    启动Profiler之前设置一下Targets的属性就行,图中有说明.

  2. 解释一下python的and-or语法

    与C表达式 bool ? a : b类似,但是bool and a or b,当 a 为假时,不会象C表达式 bool ? a : b 一样工作应该将 and-or 技巧封装成一个函数: def ch ...

  3. OC、C#与JAVA语法特点一些异同(差集&交集)

    C#对JAVA: 1.扩展方法 2.部分类 3.动态对象 4.匿名返回类型 5.表达式树 6.Linq 7.没有函数指针,委托,事件的直接提供方式 8.JAVA接口不规定以I开头,这个很烂的思想! J ...

  4. 《Python 机器学习》笔记(四)

    数据预处理--构建好的训练数据集 机器学习算法最终学习结果的优劣取决于两个主要因素:数据的质量和数据中蕴含的有用信息的数量. 缺失数据的处理 在实际应用过程中,样本由于各种原因缺少一个或多个值得情况并 ...

  5. MFC实现文字随鼠标移动

    1 实验介绍 此实验是在刚开始接触MFC时做的.它要求实现的功能如下: 文字跟随鼠标动态移动(跟随移动方式自定) 修改图标为自己喜欢的图标 修改窗口标题 修改文档名称 可以用菜单项选定指定的颜色显示文 ...

  6. mysql数据库中表记录的玩法

    一.增加表记录(相当于插入表记录) 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); 语法二: INS ...

  7. Kattis - prva 【字符串】

    题意 从上到下 或者 从左到右 组成的长度 >= 2 的字符串 如果遇到 # 就断掉 输出 字典序最小的那一个 思路 只要从上到下 和从左到右 分别遍历一遍,将 长度 >= 2 的字符串 ...

  8. PAT 天梯赛 L1-032. Left-pad 【字符串】

    题目链接 https://www.patest.cn/contests/gplt/L1-032 思路 要分两种情况处理 ①字符串长度 <= 填充长度 就在字符串前面输出(填充长度 - 字符串长度 ...

  9. 吐槽 MySQL数据库jdbc操作,varchar类型占位符问题——单引号造孽

    很长时间不写代码动手能力明显下降很多常见的错误还是经常发生,今天吐血了一次. 简单的坑总是要多跳几次才能甘心.很清晰的记得大学的时候在此坑差点闷死,现在又跳进这个坑了,搞了半天终于知道错在哪里. St ...

  10. Linux centos7 安装 keepalived-2.0.6

    1.下载(版本:2.0.6) cd /home/install/ wget http://124.205.69.170/files/1255000006EF2AA1/www.keepalived.or ...