![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Web Securiy
文章平均质量分 85
jimmyleeee
从事应用安全十余年,一直在努力......
展开
-
应用安全系列之三十八:注入问题的成因以及预防原理
自从有了OWASP TOP的排名依赖,注入问题就一直排名前三,这就说明了注入问题对系统的影响是十分严重的,而且,注入问题一般比较容易被利用。注入问题产生的根本原因就是程序在接受到请求中的参数时,没有经过严格的验证和正确地使用就直接被使用于解释型语言、结构化查询语言或者标签语言等语言的环境里用作程序执行的一部分。它的发生需要两个条件:原创 2023-02-13 11:31:39 · 698 阅读 · 0 评论 -
什么是SSRF以及如何预防-----代码实例
SSRF的预防代码实例原创 2022-05-19 17:11:16 · 1017 阅读 · 0 评论 -
应用安全系列之三十六:未释放的资源
在各种语言中都会遇到各种资源,有数据库资源,文件资源,Socket资源以及流资源等,这些资源都是有限的,当程序中的代码申请了资源之后,却没有释放,就会导致资源没有被释放,当系统没有充足的资源时,就会导致系统因为资源枯竭而导致服务不可用。当一个攻击者重复地出发导致资源泄露的操作时,就会发起DOS攻击。下面就是一段导致文件泄露的示例代码:ZipFile zipFile = new ZipFile(fileName);Enumeration<ZipEntry> elments = (E原创 2022-05-17 11:19:28 · 553 阅读 · 0 评论 -
什么是SSRF以及如何预防?
SSRF就是Server-side request forgery的简称,主要是指一个攻击者通过篡改诱导服务器发起一个没有授权的或者和业务实际需求目的不一致的请求,核心就是Server发起了一个攻击者伪造的请求。关于伪造请求,就需要了解一个请求的几个组成部分,一个HTTP的主要组成部分如下:HTTP://IP|domainname:port/path?querystring这里的请求伪造应该是包括这个请求里的任何一个组成部分,包括协议、IP或者域名、端口、路径以及查询参数。协议一般Web站原创 2022-05-12 16:23:32 · 1649 阅读 · 0 评论 -
各种系统路径和文件名长度的最大限制
Linux在Linux系统下,可以查看limits.h头文件里面有针对NAME和PATH的最大长度限制:#ifndef _LINUX_LIMITS_H#define _LINUX_LIMITS_H......#define NAME_MAX 255 /* # chars in a file name */#define PATH_MAX 4096 /* # chars in a path name including nul */......#en原创 2022-05-10 11:53:57 · 14783 阅读 · 0 评论 -
应用安全系列之三十五:格式化字符串
在使用格式化字符串函数时,通常会以printf([格式化字符串],参数)的形式进行调用,如果攻击者可以控制格式化字符串的值,或者不正确的以printf(参数)的形式进行调用,并且参数的值攻击者可控,攻击者可以通过使用特定的格式化字符获取系统内存信息或者修改系统的内存数据。格式化字符串漏洞所造成的危害包括:泄露系统内存信息,造成系统的信息泄露 可用于修改内存数据,当修改内存中的函数返回地址时,攻击者就可以控制代码执行逻辑,注入Shellcode,造成远程代码执行。 发起DOS攻击格式化字..原创 2022-05-05 18:07:41 · 881 阅读 · 0 评论 -
如何进行应用安全测试(AST)
随着应用或者API被攻击利用已经越来越多,虽然来自开源组件的漏洞加剧了这一现象的发生,但是,其实主要还是在于应用程序或者API本身没有做好防范,根源在于源代码本身的质量没有严格把控。AST是指Application Security Testing,主要包括静态应用测试(SAST)、交互式应用测试(IAST)、动态应用测试(DAST)以及软件成分分析(SCA)等工具。应用测试工具AST是专门用于检测源代码安全问题的工具,如何有效地将AST工具应用于开发过程中,也是一个比较有挑战的事情。将AST工具集原创 2022-04-22 21:00:49 · 1237 阅读 · 0 评论 -
Java如何判断一个上传文件的内容类型
关于如何判断一个文件的类型,在如何判断一个文件的类型_jimmyleeee的博客-CSDN博客已经介绍了,但是在实际运用于真正的文件上传时,还是有些注意事项需要注意的。在进入主题之前,首先需要简单介绍一下MultipartFile这个类,通过getOriginalFilename()获取文件的名字,但是这个名字只是上传文件的名字,通过这个名字是无法访问到这个文件的。以下是测试时的debug信息:可以看到MultipartFile类中,有filename,有filelocation,甚至还有临时.原创 2022-04-18 18:42:16 · 8430 阅读 · 0 评论 -
如何判断一个文件的类型
在文章应用安全系列之二十四:文件上传_jimmyleeee的博客-CSDN博客描述了上传文件时需要判断文件的几个方面,其中一个就是文件的类型,当然,如果要根据文件的后缀判断,也能满足大部分需求,如果确实需要判断文件的类型,或者某些时刻文件没有扩展名时,就会遇到麻烦。Java提供了集中方法来判断一个文件的类型,其中比较常用的方法是:Files.probeContentType,但是,它有一个缺点就是,当文件没有扩展名时,返回的结果是null,下面是一个使用这个方法的代码:public class T原创 2022-04-18 11:43:05 · 8405 阅读 · 5 评论 -
应用安全系列之三十四:数值溢出
应用程序中难免会遇到数字的处理,针对数字的处理如果不当也会造成严重的问题,著名的Heartbleed漏洞也是没有验证数字的有效性导致的。数值处理不好的,轻则产生异常,重则影响整个程序的正常运行,因此,针对由数值导致的问题也不能掉以轻心。主要问题总结为以下几点:1) 异常当从请求中获取参数的值需要转成数字时,这是就可能产生异常,产生异常的原因:一、内容符合数值的要求,含有异常字符;二、数值超出了数值类型的范围。如一下代码:public static void main(String[] ar原创 2022-04-15 18:36:26 · 4142 阅读 · 0 评论 -
应用安全系列之三十三:配置管理
不安全的反序列化HTTP Header注入/HTTP Cookie注入SMTP Header注入日志伪造IMAP命令行注入POP3命令行注入SMTP邮件命令行注入XQuery注入XSLT注入NoSQL注入原创 2022-04-14 11:34:59 · 1986 阅读 · 0 评论 -
应用安全系列之三十二:会话管理
Web应用基于HTTP协议实现的,但是,HTTP协议是无状态的【参考RFC2616section 5】,也就是说如果纯粹基于HTTP协议来实现一个应用,前后请求的消息就需要一个能够保持登录状态的东东,这个东东就是会话【session】。由于HTTP是无状态,所以这个会话的管理是通过Cookie来实现的,通常通过Cookie来管理的有标示会话的ID和用户登录之后获得的Token。由于会话ID或者Token表示一个人已经登录而且可以根据自己的权限在网站内畅游,所以,他也就成了攻击者的目标。以前,出现过的会.原创 2022-04-13 19:07:11 · 650 阅读 · 0 评论 -
应用安全系列之三十一:信息泄露
当攻击者攻击某个系统时,首先要做的就是收集目标系统的信息,然后,根据收集的信息再搜索可能存在的漏洞,对系统发起攻击。当系统的实现或者配置不正确时,却正好可以提供攻击者想要的信息,下面就列出一些容易出现信息泄露的方面。业务逻辑的提示信息业务逻辑设计时会涉及到错去的情况如何处理,提示什么信息,提示的信息如果不注意处理,就可能会导致信息泄露。例如:登录时提示用户名是否有效,就可能被用于发起用户枚举攻击;当访问某个内部对象的时候,提示此对象不存在,就可以收集内部存在的对象信息等等。针对此种情况,一般原创 2022-04-12 17:01:36 · 2747 阅读 · 0 评论 -
应用安全系列之三十:任意重定向
任意重定向,英文是Open Redirect,主要意思就是在Web应用程序进行跳转时,没有控制重定向的目标,导致可以跳转到任意一个网站。重定向在包括站forward和redirect两种,也就是转发和重定向。转发一般都用于站内的页面之间的跳转,用的都是没有站点的路径信息,而重定向一般都会使用URL跳转,可以站内,也可以站外。重定向的方法有多种,在有META标签内跳转、javascript跳转以及header头跳转,这些跳转一般都比较难易用来攻击。另外一种常用的跳转方法是在...原创 2022-04-12 12:52:13 · 1825 阅读 · 2 评论 -
应用安全系列之二十九:密码管理
一个系统的登录有多种方式,严格的有使用人的指纹、虹膜等生物特征作为登录凭据,在一些电影大片中,也经常看到一些牛逼的人如何盗取指纹来获取系统的登录。生活中,常见的指纹锁采用的是人的指纹作为登录凭证。不过,在Web应用系统,密码还是最常用也是最方便的登录方式,同时,它也是攻击者千方百计想要获得的信息。 本文就是讨论使用密码的过程中常遇到的一些问题,以及如何避免类似问题。网络上经常有一些常用的密码库,而且写密码库中的密码都是非常有规律的简单的密码,例如:12345678,qwe...原创 2022-04-11 16:30:19 · 2183 阅读 · 0 评论 -
应用安全系列之二十八:随机数
随机数产生器有两种:非确定性的随机数产生器和确定性的随机数产生器。非确定性的随机数产生器(Non-deterministic Random Bit Generators),也称为真随机数产生器,简称NRBG,主要是利用物理熵源的随机数发生器,它的随机性是不可预测的,(熵源是一种产生完全不可预测的无序数据的比特源,而且各比特之间满足统计独立,例如:噪声源、热源、硬盘寻道时间、模数转换过程,等等)。确定性的随机数产生器(Deterministic Rand...原创 2022-04-10 19:05:22 · 1634 阅读 · 0 评论 -
应用安全系列之二十七:加密算法
为了维持所要保护的信息的机密性和完整性,在一个安全系统里,必须要有加密模块的保护。而且,对于Web应用程序,使用加密算法保护敏感数据已经变成一个很关键的部分,但是,有的Web应用程序经常存在一些不正确的做法,例如:使用一些设计不好的加密算法,使用不合适的加密算法或者不正确地使用一些很强的加密算法,这些都可能导致敏感数据的泄露。要保护好数据,就必须正确地使用合适的算法。在对数据加密之前,首先应该知道使用什么加密算法、需要加密哪些数据,以及如何才能正确地使用这些加密算法去保护...原创 2022-04-10 17:40:37 · 2254 阅读 · 0 评论 -
应用安全系列之二十六:应用层DOS攻击
DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。主要手段就是通过非正常方法消耗计算机的资源,包括:带宽、内存、CPU、文件、数据库连接等。说到DOS攻击,可能很多人立刻就想到了各种协议级别的攻击,例如;TCP SYN FLOOD等,这里所说的DOS攻击不谈这些协议层的攻击,只谈论一些在应用曾因为某些编码或者设计错误而导致的DOS攻击。应用层的可能导致DOS攻击的主要有:注入攻击、权限控制、资源耗尽、Serv原创 2022-04-08 18:03:23 · 3958 阅读 · 0 评论 -
应用安全系列之二十五:不安全的反序列化
序列化过程是将一个对象转换成一种数据格式以有利于存储或者传输。而反序列化则是一个相反的过程,把一定格式的数据转变成一个对象。比较流行的数据格式包括:XML,JSON。这种反序列化过程,当出现输入的数据可以被篡改或者控制时,他可以用于发起攻击,攻击的结果包括但不限于:DOS、访问控制、以及RCE等。DOS攻击以Java语言为例,如果构造的一个对象里有一个数组对象,而数组对象的大小被改为整形的最大值,就会导致在反序列化时,分配一个超大的数组,进而导致OutOfMemoryError 错误。访问控原创 2022-04-07 18:31:16 · 1444 阅读 · 0 评论 -
Handlebars 框架的XSS问题
Handlebars框架【Handlebars】是一个JavaScript的一个模板语言,根据其首页的介绍:Handlebars is a simple templating language.在这里姑且整它为一种模板语言吧。它主要的功能就是使用模板和输入的对象输出HTML或者其他文本格式,它输出对象的方法如下:<p>{{firstname}} {{lastname}}</p>Handlebars输出的方式主要有两种,一种方式是{{{data}}},这种格式输出原创 2022-04-06 20:54:55 · 1886 阅读 · 0 评论 -
应用安全系列之二十四:文件上传
虽然文件上传已经成为非常重要的功能,但是,它也带来一定的风险。本文主要介绍文件上传的相关问题和预防措施。原创 2022-04-03 11:56:02 · 2307 阅读 · 0 评论 -
应用安全系列之二十三:SSRF
SSRF(Server-Side Request Forgery,服务器端请求伪造),该漏洞产生的主要原因是:服务器端接收到了请求中的参数,在没有对参数进行任何验证的情况下,使用它的值作为访问的目标地址或者目标地址的一部分。导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。因此,SSRF经常将含有SSRF漏洞的服务器作为跳板来访问网络内部的机器或者攻击其他因特网上的机器。 由于攻击者可以操纵被访问的目标,攻击者可以将访问目标修改为...原创 2022-02-09 18:45:34 · 2503 阅读 · 0 评论 -
应用安全系列之二十二:授权问题
权限管理是一个系统的比较核心的安全模块,如果没有正确的权限管理,由权限问题导致的问题基本上都是比较严重的问题,而且带来的危害也很严重,更为重要的是,权限的安全问题很容易被利用而且比较难于监测。 权限问题主要分为两种:水平越权和垂直越权。 1水平越权 水平越权是指同一个角色的不同人员都有各自的私有信息和资源,特别是私有信息,在信息安全越来越被关注的当代,这些信息对用户也越来越重要,如果授权控制不当,导致用户的私有信息泄露,对产品的影响会很大,特...原创 2021-07-11 09:19:49 · 807 阅读 · 0 评论 -
应用安全系列之二十一:认证问题
一个系统针对每一个用户都有一个认证的方式,一个用户原创 2021-05-30 15:28:16 · 957 阅读 · 0 评论