xss(跨站脚本攻击)

  原理:攻击者可以通过在页面中注入恶意链接或者脚本代码,当受害者访问时,脚本代码会在其浏览器中执行,这个时候,我们可以获取当前用户的cookie或者进行重定向等操作。

  xss造成的原因是因为对用户插入的数据没有进行过滤,导致用户可以上传一些非法数据,对服务器数据进行盗取。

  xss的形成一定是伴随着输入和输出的。

  xss分为反射型xss、存储型xss、DOM型xss(DOM型xss是一种特殊的反射型xss)

1.反射型xss(输入数据,浏览器直接对数据进行输出)是一种非持久型的xss

  常见的情况有两种:

    <script>输出</script>

    输在在html标签的属性中:<input value="输出">、<img onload="输出">、<body style="输出">,我们可以直接在输出中构造xss payload

2.DOM型xss(我们可以通过源码查看,不仅输出了,而且javascript使用这个输出做了其他事情)

  1.显示输出

  2.隐式输出

  3.不管是显示输出,还是隐式输出,最终结果都会通过innerhtml()和document.write()流向浏览器,但是有时候没有流向页面,而是碰到了eval参数

3.存储型xss(输出的位置不一定在输入的位置,而且一个输入点可能存在很多输出的地方)

4.flash xss(谷歌搜索存在漏洞的flash文件)

直接嵌入 <script>alert('xss')</script>
元素事件 <body onload=alert('xss')>
<input value=alert('xss')>
<img style=alert('xss')>
重定向 <a href =http://192.168.59.143>click</a>
<img src =http"//192.168.59.143/a.jpg onerror=alert('xss')>
<a href ="onclick=alert('xss')">type</a>
重定向:<script>windows.location='http://www.baidu.com'</script>

xss的防御

  1.禁止用户输入不可信数据

  2.对用户输入的不可信数据进行编码

xss的绕过:

  1.宽字符绕过

  2.大小写绕过

  3.标签绕过

总结:就是通过输入查看输出,通过输出查看对输入的限制过滤,然后通过过滤条件修改输入进行xss注入。

最新文章

  1. 使用Bower作为Web包管理器
  2. 最轻量级的前端Mvc框架backbone
  3. all things are difficult before they are easy
  4. Oracle常用sql
  5. win7电脑安装wamp出现httpd.exe无法找到组件MSVCR100.dll的解决办法
  6. iOS 瀑布流的基本原理
  7. Java开发中经典的小实例-(随机数)
  8. http://www.cnblogs.com/wzh206/archive/2010/03/21/1691112.html
  9. P1111 修复公路
  10. 水题:HDU 5112 A Curious Matt
  11. wcf系列5天速成——第二天 binding的使用(2)
  12. linux内存基础知识和相关调优方案
  13. mongodb学习(四)CRUD操作
  14. 完全卸载SQL Server 2008r2
  15. R语言-时间序列
  16. Maven之自定义archetype生成项目骨架
  17. springMVC的全局异常设置
  18. 【python】mongo删除数据
  19. Web Service入门简介(一个简单的WebService示例)
  20. WPF 中对启动参数的处理

热门文章

  1. CSS中的间距设置与盒子模型
  2. zigbee通用IO口小作业
  3. struts2入门教学
  4. PI/PO Token配置
  5. PHP带标签的字符串去除标签,计算字符串长度的两种格式,截取字符串
  6. 移动端纯css超出盒子出现横向滚动条
  7. sudo apt-get update 与 sudo apt-get upgrate 的区别
  8. myeclipse 2017 CI 破解
  9. Least Cost Bracket Sequence(贪心)
  10. 百度智能云平台调用食物识别api Java实现