【奇安信安全漏洞】XSS漏洞 重定向漏洞解决及产生分析,算法真题解析:美团+Tencent+字节跳动+阿里+360+拼多多

产生原因:

1、反射型XSS
反射型XSS,也称为非持久性XSS,是最常见的一种XSS。

XSS代码常常出现在URL请求中,当用户访问带有XSS代码的URL请求时,服务器端接收请求并处理,然后将带有XSS代码的数据返回给浏览器,浏览器解析该段带有XSS代码的数据并执行,整个过程就像一次反射,故称为反射型XSS。

该类攻击的主要特点是它的及时性和一次性,即用户提交请求后,响应信息会立即反馈给用户。该类攻击常发生在搜索引擎、错误提示页面等对用户的输入做出直接反应的场景中。

2、存储型XSS
存储型XSS,也称为持久性XSS。

在存储型XSS中,XSS代码被存储到服务器端,因此允许用户存储数据到服务器端的Web应用程序可能存在该类型XSS漏洞。攻击者提交一段XSS代码后,服务器接收并存储,当其他用户访问包含该XSS代码的页面时,XSS代码被浏览器解析并执行。

存储型XSS攻击的特点之一是提交的恶意内容会被永久存储,因而一个单独的恶意代码就会使多个用户受害,故被称为持久性XSS,它也是跨站脚本攻击中危害最的一类。二是被存储的用户提交的恶意内容不一定被页面使用,因此存在危险的响应信息不一定被立即返回,也许在访问那些在时间上和空间上没有直接关联的页面时才会引发攻击,因此存在不确定性和更好的隐蔽性。

这类攻击的一个典型场景是留言板、博客和论坛等,当恶意用户在某论坛页面发布含有恶意的Javascript代码的留言时,论坛会将该用户的留言内容保存在数据库或文件中并作为页面内容的一部分显示出来。当其他用户查看该恶意用户的留言时,恶意用户提交的恶意代码就会在用户浏览器中解析并执行。

3、DOM型XSS
DOM (Document Objet Model)指文档对象模型。

DOM常用来表示在HTML和XML中的对象。DOM可以允许程序动态的访问和更新文档的内容、结构等。客户端JavaScript可以访问浏览器的文档对象模型。也就是说,通过JavaScript代码控制DOM节点就可以不经过服务器端的参与重构HTML页面。

该类攻击是反射型XSS的变种。它通常是由于客户端接收到的脚本代码存在逻辑错误或者使用不当导致的。比如Javascript代码不正确地使用各种DOM方法(如document.write)和Javascript内部函数(如eval函数),动态拼接HTML代码和脚本代码就容易引发DOM型的跨站脚本攻击。

因此,DOM型XSS与前面两种XSS的区别就在于DOM型XSS攻击的代码不需要与服务器端进行交互,DOM型XSS的触发基于浏览器端对DOM数据的解析来完成,也就是完全是客户端的事情。

应用程序的客户端代码从javaScript、document.location、request url、document.url、document.referrer。。或者其他任何攻击者可以修改的浏览器对象获取数据、如果未验证数据是否存在恶意代码的情况下,就将其动态的更新到页面的DOM节点,应用程序将易于收到基于DOM的XSS攻击。

解决办法:

既然都明确说明了是从客户端获取的数据,需要校验后才可以使用,那思路就清晰了。如何校验呢?也并不是简单的校验字符而已!

示例:

//客户端获取值
var actionValue = $(“#action”).val();
//filterForDOMXSS函数用来过滤值
var modeFlag = 0
var sanitizedActionValue = filterForDOMXSS(actionValue,modeFlag);
var encodedActionValue = sanitizedActionValue.value;
var url = “…/…/…/ReportAction.do?action=” + encodedActionValue;
window.location.href = url;

//此函数用来自定义校验获取到的值的内容
function filterForDOMXSS(value,modeFlag) {
var searchStatus = false;
// 过滤关键词,后续可以继续加
var crucialword = [‘javascript’,“eval”,“alert”,“onclick”,“ondbclick”,“onmousedown”,“onmouseup”,“onmouseover”,“onmouseout”,“onmousemove”,“onkeydown”,“onkeyup”,“onkeypress”,“<script+.>“,”<p+.>”,“<a+.>“,”<img+.>”,“<h+.>“,”<textarea+.>”,“<span+.>“,”<div+.>”,“<td+.>“,”<tr+.>”,“<th+.>“,”<li+.>”,“<ul+.>“,”<option+.>”,“<select+.>“,”<del+.>”,“<ol+.>“,”<label+.>”,“<button+.>“,”<style+.>”,“<em+.>“,”<strong+.>”,“<strike+.>“,”<b+.>”,“<s+.>“,”<u+.>”,“<sub+.>“,”<sup+.>”,“<small+.>“,”<dl+.>”,“<dt+.>“,”<i+.>”,“<pre+.>“,”<q+.>”,“<blockquote+.>“,”<br+.>”,“<code+.>“,”<cite+.>”,“\$\(+.*\)”];
for(var i = 0;i<crucialword.length;i++){
var check = new RegExp(crucialword[i],“gi”);
if(check.exec(value)){
searchStatus = true;
break;
}
}
if(searchStatus){
value = value.replace(/javascript/gi,“”)
.replace(/eval/gi,“”)
.replace(/alert/gi,“”)
.replace(/onclick/gi,“”)
.replace(/ondbclick/gi,“”)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

  • 18
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值