【JAVA代码审计】————4、XSS

【奇安信安全漏洞】XSS漏洞/重定向漏洞解决及产生分析! 解决基于DOM的XSS漏洞方法,详细讲解 阅读详情

前言

最近几天比较忙,没有连载文章,今天正好有时间就写写吧,连载的都是基础的漏洞,大神路过留个脚印就可以撤了,哈哈,俗话说不喜勿喷,那咱们就开干!

跨站脚本(XSS)原理

先看下百度百科对XSS的介绍:

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

事实上XSS可以分为以下三种类型:

1.反射型XSS

反射型XSS也被称为非持久性XSS,一般反射型XSS是用户直接在URL中提交一段可执行代码,最后直接在页面中输出,页面将提交的代码执行,形成XSS攻击,一般单纯的反射型XSS危害并不大,但是当XSS遇上跨站请求伪造(CSRF)就会形成可怕的蠕虫。

2.存储型XSS

存储型XSS又被称为持久性XSS,存储型XSS是恶意用户输入的可执行代码直接保存在数据库中,最后在某个页面被调用显示出来,最后执行。存储型XSS相对来说危害就非常大,一般恶意用户可通过存储型XSS去盗窃管理员的Cookie,从而获取管理员权限。

3.DOM型XSS

DOM,即文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。DOM型XSS其实是一种特殊的反射型XSS,可能触发的DOM型XSS属性包括但不限于:document.location、document.URL、document.referrer、window.location......

下面详细介绍此三种XSS:

反射型XSS

反射型XSS的执行条件有以下几点:

1.传递参数为用户可控,简单页面如下:

其中搜索框种的值即为可控参数,在URL中表现形式如下:http://localhost:8080/javatest/searchword?word=

2.参数未经过任何过滤或者过滤不完全,最终直接显示在前端页面,形式如下:

此处参数在前端为EL表达式获取,并且为添加任何过滤,最后直接显示在页面。

反射型XSS的表现形式

当输入框输入的参数为:<script>alert(1)</script>  时,就会直接被浏览器当作脚本执行:

URL表现形式:http://localhost:8080/javatest/searchword?word=%3Cscript%3Ealert%281%29%3C%2Fscript%3E

最后弹框:

存储型XSS

存储型XSS的执行条件有以下几点:

1.传递参数为用户可控,简单页面如下,这是一个简单的增加用户界面,文本框中的参数都为用户可控:

2.参数在传递过程中未经过任何有效过滤(或者存在过滤不全,会被绕过),并且能够存储在数据库中,代码如下:

3.在前端页面会显示用户存储的数据,并且未做任何输出过滤(或者过滤不全),页面和代码如下:

存储型XSS的表现形式

在添加用户处输入:<script>alert(1)</script>

数据库中存储的形式如下:

当数据显示在页面,就会执行脚本:

DOM型XSS

DOM型XSS的原理其实和反射型XSS差别并不大,只是可控参数拼接在DOM标签输出,页面如下:

此处‘a’为可控参数,当‘a’为123456789 时:

当‘a’为<img src=1 onerror=alert(1)>时:

XSS的修复

XSS的修复大概分为两种形式,一种为输入验证,一种为输出验证:

1.输入验证,添加全局过滤器,对特殊字符进行过滤,包括(但不限于):

   |(竖线符号)

Ø & (& 符号)

Ø ;(分号)

Ø $(美元符号)

Ø %(百分比符号)

Ø @(at 符号)

Ø '(单引号)

Ø "(引号)

Ø \'(反斜杠转义单引号)

Ø \"(反斜杠转义引号)

Ø <>(尖括号)

Ø ()(括号)

Ø +(加号)

Ø CR(回车符,ASCII 0x0d)

Ø LF(换行,ASCII 0x0a)

Ø ,(逗号)

Ø \(反斜杠)

Ø eval方法

Ø document

Ø cookie

Ø javascript

Ø script

Ø onerror

过滤形式如下(注意大小写):

代码中,获取过滤后的参数,再执行数据库操作:

2.输出验证,对输出的参数做编码过滤,此处不写了,方法大同小异。

过滤后输出截图:

结论

累死了,今天就写这么多吧,写的不好或者有错误之处,多多指教,谢谢!

转自:i春秋

【奇安信安全漏洞】XSS漏洞 重定向漏洞解决及产生分析!_奇安信漏洞 应用程序的客户端代码从javaScript、document.location、request url、document.url、document.referrer。。或者其他任何攻击者可以修改的浏览器对象获取数据、如果未验证数据是否存在恶意代码的情况下,就将其动态的更新到页面的DOM节点,应用程序将易于收到基于DOM的XSS攻击。既然都明确说明了是从客户端获取的数据,需要校验后才可以使用,那思路就清晰了。如何校验呢?也并不是简单的校验字符而已!在上述修复代码中,我们引入了一个名为。 阅读详情

相关推荐

JAVA代码审计

在后端代码处,首先经过Filter(过滤器)和Interceptor(拦截器),然后根据请求的URL映射到绑定的Controller,之后调用Service接口类,然后再调用serviceImpl接口实现类,最后调用DAO。src/main下面有两个目录,分别是java和resources,java目录中主要存放的是java代码,resources目录中主要存放的是资源文件,比如:html、js、css等。@ResponseBody 注解:将该注解写在类的外面,表示这个类所有方法的返回的数据直接给浏览器。

小白鸽 2388

奇安信扫描文件下载功能的存储型XSS漏洞修复

文件流相关的存储型XSS漏洞修复

qq_43599841的博客 1630

Java代码审计之XSS漏洞详解

跨站脚本(Cross-Site Scripting),本应该缩写为CSS,但是该缩写已被层叠样式脚本Cascading Style Sheets所用,所以改简称为XSS。XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。

悦分享 382

奇安信xss漏洞问题解决

重要的事情说三遍,不管你在过滤器配置写的过滤多好,本地代码返回有多正确,它是不会检测到的!你需要在它检测出的接口那加上过滤。ps:在方法里不要写判断,直接走过滤逻辑,因为它这破检测会走别的逻辑,哪怕你用的接口写死只走过滤的逻辑,还是会检测出来漏洞。

hwb33333的博客 4582

【Java代码审计】XSS篇

XSS 漏洞是指攻击者在网页中嵌入客户端脚本(通常是 JavaScript 编写的恶意代码),进而执行其植入代码的漏洞。若 Web 应用未对用户可直接或间接控制的“输入”与“输出”参数进行关键字过滤或转义处理,则很可能存在跨站脚本漏洞。从 Web 应用上来看,攻击者可以控制的参数包括 URL 参数、post 提交的表单数据以及搜索框提交的搜索关键字,一般对该漏洞的审计策略如下收集输入、输出点查看输入、输出点的上下文环境。判断 Web 应用是否对输入、输出做了防御工作(如过滤、扰乱以及编码)

大河之犬的博客 2万+

奇安信安全扫描漏洞解决路径遍历和存储型xss和反射xss攻击漏洞

亲测可用,中级漏洞,解决服务器段请求伪造 final String forURL = ESAPI.encoder().encodeForURL(url); restTemplate.exchange(forURL, HttpMethod.GET,new HttpEntity<String>(headers), List.class, params);

[ 代码审计篇 ] 代码审计思路 详解

源代码审计是网络安全技术工作的重要内容,是安全岗位必备技能。 渗透测试岗几乎都会问道代码审计,这篇文章就来聊一聊代码审计的思路。 这篇文章就来聊一聊什么是代码审计,什么是静态测试 ? 重点部分:代码审计工具介绍,代码审计的思路介绍。 不要觉得代码审计很容易,也不要觉得代码审计很难,重在坚持,重在分析。 文中出现的细节在后续中都会有详细解读!!!

qq_51577576的博客 2万+

直线型一阶倒立摆1---从理论到实践的桥梁

本文深入探讨了直线型一阶倒立摆在控制理论中的核心地位,从非线性控制、鲁棒性到实时反馈等关键问题。通过实际案例和硬件搭建指南,帮助读者理解从理论到实践的过渡,特别适合控制工程初学者和研究人员。文章还提供了算法选型建议和硬件避坑手册,是掌握倒立摆控制的实用指南。

weixin_29047545的博客 318

JAVA代码审计之XSS漏洞

满足上面的条件,导致利用set方法可控制uri值及set方法中存在loadSVGDocument方法可以去引用svg进而去调用loadScript方法,而该loadScript方法中如果类型为application/java-archive时,可引入外部一个jar包,且cs可将该jar包实例化为一个对象,进而导致代码执行。但是结合其他漏洞,就可以达到1click实现RCE漏洞的效果,如宝塔rce,小皮面板rce,cs rce,蚁剑反制,goby反制均为如此。最近看到了很多安全圈的瓜,什么不如保安。

goddemon 1071

Python OpenCV基于颜色通道分离法去除图片中的红色印章

最近一段时间的工作都是研究如何去除图片中的红色印章,在网上查找了大量的大佬写过的方法,发现大多数是采取颜色通道分离法来做,并且效果还不错。站在前人的肩膀上,我又做了些许调整,谈不上是改进,但是能应对更对的情况总还是好的,特此记录。 拿发票做例子,印章相较于其它部分最大的不同就是印章是红色的,而其它部分不是(这是一句废话)。 那么第一步当然就是将红色分离出来,这一步可以采用Python第三方库OpenCV里的 cv2.split()方法,该方法是把RGB图像的三个通道拆分开来,得...

wl_Honest的博客 1万+

maxwell 平面变压器仿真(一)

在学习开关电源设计的时候,我们难免要设计变压器,采用有限元仿真软件MAXWELL 可以帮助我们确定变压器的励磁电感,漏感等参数。对于我们的理论分析大有裨益。但是苦于这破软件的教程真的是相当的零散,我相信大家用起来也总是苦于没有系统的教程指导,撰写本文的目的有两个,一个是记录自己使用的一些问题,一个是给大家提供一个可以参考的文档。

qq_45405656的博客 8246

java代码审计(入门级)—基础漏洞合集

介绍简单的java代码审计,识别程序中存在的经典漏洞

weixin_49349476的博客 3472

宇树智能人形机器人模块化腿部动力系统技术拆解

o电机防摔防护板(3.1.5.1)→端盖总成(3.1.5.2)→电机外壳(3.1.5.4)的冲击力传递路径;o散热风扇(3.1.3.1)推动冷风→大腿基座腔体→散热片组(3.1.5.7)→中空大腿杆排出;o防御专利:覆盖“关节热管理风道接口标准”、“抗冲击结构身份编码”;o大腿杆腔体(3.1.3.4)内置反平行四边形机构,避免连杆外露。:力传感器(3.1.8.4.2)仅部署于足端,缺失关节力矩反馈。:更换行星减速器(3.1.5.5)需拆解整个电机模块;o热量传导路径:电机定子→外壳→散热片组。

weixin_50955533的博客 1232

代码审计中的XSS

0x00 背景 XSS漏洞也叫跨站脚本攻击,是Web漏洞中最常见的漏洞,原理与SQL注入相似,通过来自外部的输入直接在浏览器端触发。XSS漏洞通常被入侵者用来窃取Cookie等,本文以代码审计的形式研究XSS攻击原理、挖掘形式、防御方案及缺陷。 0x01 XSS攻击原理 我们看下面一段代码: 1 <?php 2 3 // Is there any input? ...

weixin_30726161的博客 264

【G4基础03】2.3 How to Specify Materials in the Detector

定义探测器材料

adelall的博客 489

基于STM32F1XX 、HAL库的BH1745NUC-E2环境光传感器驱动应用C语言程序设计

printf("BH1745制造商ID: 0x%02X\r\n", BH1745_ReadManufacturerID(&hbh1745));#define BH1745_ADDR_HIGH 0x39 // ADDR引脚接VDD。#define BH1745_ADDR_LOW 0x38 // ADDR引脚接地。= 0xE0) // BH1745制造商ID为0xE0。// 清除RGBC测量使能位。printf("BH1745初始化失败\r\n");

PP_Cottage的博客 281

代码审计|基于某Java开源系统的代码审计

作者:不染 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。 0x00 前言 本篇文章为Java代码审计入门的一篇文章,篇幅有限,很多漏洞没有审计覆盖,以后有时间再更新一个系列。 0x01 基础环境 1.1 技术框架 核心框架:SpringBoot 2.0.0 持久层框架:Mybatis 1.3.2 日志管理:Log4j 2.10.0 前端框架:Vue 2.6.10 UI框架: Ant-Design-Vue 1.5.2 模板框架: Jeecg-Boot 2.2.0 项目管理框架:.

weixin_42282189的博客 2632

电气论文实现:前推回代在IEEE33节点中的潮流计算实现(matlab,python)

本文首先介绍了前推回代的原理。然后基于IEEE33节点算例,分别用python和matlab运用前推回代进行了潮流计算。

总裁余(余登武)博客 8608

【Java代码审计 | 第五篇】XSS漏洞成因+实战案例

XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的Web安全漏洞,攻击者通过在网页中注入恶意脚本,使得这些脚本在用户的浏览器中执行。XSS攻击通常分为以下三种类型1、存储型XSS:恶意脚本被永久存储在目标服务器上(如数据库),当用户访问包含该脚本的页面时,脚本被执行。2、反射型XSS:恶意脚本作为请求的一部分发送到服务器,服务器将脚本嵌入到响应中返回给用户,脚本在用户浏览器中执行。3、DOM型XSS:恶意脚本通过修改页面的DOM结构来执行,不经过服务器处理。

等风来 1412

YOLOv8+SAM强强联合:用分割“喂“检测,复杂背景下作物AP从72%干到77.7%,杂草误检降60%

目标与背景高度相似:如农业(作物vs杂草)、工业(零件vs台面)、医学(病灶vs正常组织);遮挡严重的场景:如密集人群(人被遮挡)、森林(树木被枝叶遮挡);小目标密集场景:如无人机航拍(远处小目标易混背景)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 793

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java中的代码审计

代码审计,顾名思义,就是对代码进行系统的检查和分析,以发现潜在的问题或优化点。它不仅仅是寻找代码中的错误或漏洞,更是为了确保代码的质量、安全性和性能。代码审计可以分为手工审计和自动化审计两种方式。手工审计需要经验丰富的开发人员逐行检查代码,而自动化审计则借助各种工具和技术来高效地扫描和分析代码。

weixin_46372265的博客 1833

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JAVA代码审计总结

本文总结了代码审计的思路方法和常见漏洞类型。代码审计主要采用逆向追踪、正向追踪、功能点定向挖掘和通读全文四种方法,各有优缺点。常见漏洞类型包括SQL注入、文件上传、XSS、目录穿越、URL重定向、命令执行、XXE、SSRF、SpEL表达式注入和反序列化等。针对每种漏洞,文章详细介绍了其关键词、审计思路、利用方法和修复手段。例如SQL注入可通过搜索Statement等关键词定位,文件上传需关注后缀校验逻辑,XSS需检查输出点过滤情况等。修复措施主要包括参数过滤、禁用危险函数、使用安全API等。

绘梨衣の沉默的博客。主要是CTF竞赛,网络安全,渗透测试,HVV,以及学习到的各种知识的分享 1360

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

代码审计思路详解

代码审计概念 代码审计定义 代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误。 代码审计对象 php,java,C/C++,C#,jsp,asp,net等等 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7f2PGUd-1619771792539)(C:\Users\ASUS\App

Ciyaso的博客 7786

Java代码审计-XSS审计

XSS是Cross Site Scripting的缩写,意为"跨站脚本攻击",为了避免与层叠样式表(Cascading Style Sheet,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。XSS是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。XSS是指攻击者在网页中嵌入客户端脚本(通常是JavaScript编写的恶意代码),进而执行其植入的代码的漏洞,若Web应用未对用户可直接活间接控制的"输入"或者"输出"进行关键字的过滤或者转义处理,则很有可能存在跨站脚本漏洞。

baimaozi008的博客 2028

真JAVA代码审计之XSS漏洞

1.)objectview对象 可以利用反射机制动态的加载classid的类名,且当实例化对象归属于Component的子类或实现类,且类型为string类型以及为public修饰符修饰时,可以进行控制setxxx方法对值进行控制。但是结合其他漏洞,就可以达到1click实现RCE漏洞的效果,如宝塔rce,小皮面板rce,cs rce,蚁剑反制,goby反制均为如此。漏洞原理:关于XSS漏洞的漏洞原理核心其实没啥好说的,网上一查一大堆。其实XSS的漏洞本身单独从一个漏洞的角度而要,利用效果其实不会特别好。

2401_84434570的博客 501
上一篇: 【JAVA代码审计】————3、SQL注入
下一篇: 【移动安全高级篇】————9、动态分析smali
FLy_鹏程万里
FLy_鹏程万里 优质创作者: 后端开发技术领域 优质创作者: 后端开发技术领域 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄9年 1万+粉丝 1364原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值