XSS 跨站脚本攻击实例1
14.44-16.22 编码,跨站脚本攻击1
16.22-16.53 整理cnblog
这篇文章适合知道有XSS脚本攻击,但是一头雾水,从未操作过,也不知道脚本攻击会给客户端用户带来什么不便之处,有什么危害。
通过Asp.net实现搜索功能,你提交了搜索条件后都在搜索框下方第一行显示 “您搜索的内容是:xxxx”
1.页面有3个控件, 一个 输入框(txtSearch),一个搜索按钮(btn),一个div (id=”result” runat=”server”)
- <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
- CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" ValidateRequest="false" %>
- <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
- </asp:Content>
- <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
- <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox><asp:Button ID="btn"
- runat="server" Text="" onclick="btn_Click" />
- <div id="result" runat="server">
- </div>
- </asp:Content>
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- namespace WebApplication1
- {
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- protected void btn_Click(object sender, EventArgs e)
- {
- result.InnerHtml = ": " + txtSearch.Text.Trim();
- //result.InnerHtml = ": " + HttpUtility.HtmlEncode(txtSearch.Text.Trim());
- }
- }
- }
分别在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">您搜索的内容是: </div><script type="text/javascript">alert('跨站攻击鸟')</script><div></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 就为<script type="text/javascript">alert('跨站攻击鸟')</script> 当然如果你赋值了,就以你赋值的为算。
XSS 跨站脚本攻击实例1的更多相关文章
- XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析
2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...
- xss(跨站脚本攻击),crsf(跨站请求伪造),xssf
我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...
- web应用程序安全攻防---sql注入和xss跨站脚本攻击
kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 博文主要内容包括两种常见的web攻击 sql注入 XSS跨站脚本攻击 代 ...
- 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...
- PHP漏洞全解(四)-xss跨站脚本攻击
本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...
- JAVA覆写Request过滤XSS跨站脚本攻击
注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...
- xss跨站脚本攻击及xss漏洞防范
xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...
- PHP进行安全字段和防止XSS跨站脚本攻击过滤(通用版)
废话不多说,直接贴使用方法和代码: 使用方式:1)写在公共方法里面,随时调用即可.2)写入类文件,使用是include_once 即可 代码: /* 进行安全字段和xss跨站脚本攻击过滤(通用版) - ...
- 初窥XSS跨站脚本攻击
XSS跨站脚本攻击的分类 一. 反射型XSS跨站脚本攻击 二. 存储型XSS跨站脚本攻击 三. 基于DOM的XSS跨站脚本攻击 1.反射性XSS 经过后端,不经过数据库 2.储存型XSS 经过后端,经 ...
随机推荐
- 我的Android进阶之旅------>Android使用百度地图时,关于android.permission.BAIDU_LOCATION_SERVICE的声明警告。
[重要提醒] 定位SDKv3.1版本之后,以下权限已不需要,请取消声明,否则将由于Android 5.0多帐户系统加强权限管理而导致应用安装失败. <uses-permission androi ...
- msql 2000 使用DBCC CHECK DB 得出错误,槽引用错误
转自:http://www.cnblogs.com/firstrose/p/4256257.html 某个SQL2000的数据库,在通过备份/还原的方法升级到2005时发生错误: 查找解决方法未果 正 ...
- Ubuntu16.04安装Chrome浏览器及解决root不能打开的问题
1. 安装桌面(emmm,不知道是否只执行第二个命令就行) # apt-get install gonme# apt-get install ubuntu-desktop2. 安装Chrome浏览器 ...
- 0402-服务注册与发现-Eureka Server使用、将服务注册到Eureka server上
一.Eureka Server使用 官方文档地址:http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud. ...
- BAPI: TRANSACTION_BEGIN的作用
大概知道是启动一个新会话, CALL FUNCTION 'TRANSACTION_BEGIN' 业务数据处理, CALL FUNCTION 'TRANSACTION_END' 详细功能不清楚. CLE ...
- oracle数据向历史表数据迁移————procedure
create or replace procedure remove_refund_his_pro isbegin declare cursor refund_query_cur is select ...
- $Eclipse+Tomcat搭建本地服务器并跑通HelloWorld程序
本文结构:(一)环境准备(二)在Eclipse里创建Dynamic Web工程(三)写一个简单的Servlet类并配置web.xml(四)运行程序 (一)环境准备 1.Eclipse:要使用for J ...
- 在看 jquery 源码中发现的一些优化方向
1. 避免使用 $.fn.each 或 $.each 因为它比原生的 for/while 真的会慢一些,循环次数越多差距越大. 另外,对象的 for-in 比 for 是要快一丢丢的,但数组的 for ...
- 【Head First Servlets and JSP】笔记11:cookie
容器如何知道客户是谁?(这并不是HTTP能实现的!IP地址不能唯一的标识用户,另外,非必要不采用HTTPS 继续mark孤傲苍狼的博客,百科全书 cookie——Header——字典——键值对—— 延 ...
- 正则表达式 获取字符串内提取图片URL字符串
#region 获取字符串内提取图片URL字符串 /// <summary> /// 获取字符串内提取图片URL字符串 /// </summary> /// <param ...
