目
录
一、什么是BOA
二、BOA源码分析(TL;DR)
三、从漏洞挖掘角度看BOA
四、真实漏洞分析
五、总 结
BOA是IoT小设备上常见的HTTPD之一。本文将从源码分析、漏洞挖掘、真实漏洞分析三个部分总结BOA的相关特性。其中,源码分析部分涉及到Linux网络编程,漏洞挖掘部分主要关注于如何快速恢复请求结构体、了解数据包处理逻辑以及CGI如何传递数据,真实漏洞分析部分则是分析了三个典型的BOA认证前漏洞,其中两个能够导致认证前任意代码执行,一个认证前信息泄漏。
一
什么是BOA
BOA是一个单任务的HTTPD,简单说,BOA不像常见的HTTPD,为每一个连接使用fork创建子进程进行处理,也不会提前创建一个进程池、线程池用于同时处理多个连接。它在内部采用了多路复用和请求链表来处理所有来自客户端的连接,并且仅仅针对CGI程序、自动目录生成和自动文件压缩采用fork子进程的形式进行处理。简而言之,BOA是一个轻量级的HTTP服务器,主要设计用于嵌入式系统,以高效的性能和小巧的代码体积著称,通常被应用于资源受限的设备,例如路由器、智能家居或者其他的嵌入式环境。
BOA具有如下的一些特点:
-
单线程架构:BOA采用了单线程、事件驱动的架构来处理多个HTTP请求。传统的WEB服务器会为每一个请求使用fork创建子进程进行处理,每次请求都会造成进程创建的开销。BOA的架构避免了这种操作,从而节省了系统资源。但是,只能说BOA适合嵌入式这种请求速度慢、并发少的情景。
-
资源占用低:BOA的代码体积非常小,内存和CPU的使用效率高,适用于资源受限的嵌入式设备。
-
配置简单:BOA的配置文件简单明了,容易调整和优化,可以快速进行部署。
-
快速响应:单线程事件驱动模型使得在轻负载情况下响应迅速,适用于处理少量并发连接。
BOA的源码和官方文档可以在Boa Webserver找到。
二
BOA源码分析(TL;DR)
本章节从源码分析BOA,主要从常规分析HTTPD源码的角度,例如信号量处理、socket从创建到复用、CGI数据传递等,帮助更好理解BOA的运行特性。该部分篇幅过长,对Linux网络编程已经较为熟悉的师傅可以跳过到2.4节BOA的请求结构体说明部分和2.5节状态机处理数据包示意图部分。
01
信号量处理
HTTPD服务器会处理一些常见的信号量,以免HTTPD发生异常终止。在BOA中也是如此,main
函数中调用函数init_signals
,收到指定的信号时,执行预先设定的处理函数。
信号量的处理一般是如下流程:
-
创建信号量处理相关的结构体变量。
-
初始化清空信号量集合。
-
将需要关注的信号量以及对应信号量的处理函数加入到信号量集合中。
-
当HTTPD接收到相应的信号量时,执行预先设定的处理函数。
BOA源码中,对信号量的处理也是满足如上的流程。
从细节来看,对于一些常见的信号量例如SIGSEGV
、SIGBUS
、SIGINT
、SIGUSR1
都是采取打印日志消息,然后调用函数abort
直接终止掉自身。需要注意的信号量例如SIGTERM
、SIGHUP
、SIGCHLD
、SIGPIPE
,在下面会额外详细说明。
SIGTERM信号
SIGTERM
是终止信号,该信号不同于SIGKILL
,可以被捕获和处理,允许程序在终止前执行一些清理操作,例如释放资源、保存或关闭文件状态等等。在BOA的信号处理中,对于SIGTERM
信号设置了函数sigterm
,当接收到该信号时,设置全局变量lame_duck_mode
值。该变量标志着BOA进入了停止接受新连接,但是继续处理已经接受过的连接的状态。
SIGHUP信号
当挂起进程的控制终端时,SIGHUP
信号就会被触发。对于HTTPD
此类没有控制终端的后台程序,通常会利用SIGHUP
信号来强制重新读取配置文件。
在BOA源码中,当SIGHUP
信号被触发,设置全局变量sighup_flag=1
。在函数main
的while
循环中,检测到该变量被设置,则调用函数sighup_run
释放请求队列中的所有就绪请求,重新加载、读取配置文件。
SIGCHLD信号
当进程的子进程状态发生变化,例如退出或暂停,该信号量会被触发。SIGCHLD
信号量的作用一般是用于防止僵尸进程的产生或者使子进程的僵尸状态结束。僵尸态指的是子进程处于结束之后、但是父进程还没有读取退出状态;或者是父进程退出,子进程还没退出。
BOA的架构决定了,只有在CGI
的时候才会使用fork+exec
创建子进程,SIGCHLD
信号也主要是对于CGI
子进程。当SIGCHLD
信号产生,设置变量sigchld_flag=1
。在函数main
的while
循环中,同样会检测该变量是否被设置,如果设置则调用函数sigchld_run
,其中调用函数waitpid
读取子进程返回状态。
SIGPIPE信号
当进程向一个已经关闭的管道或者已经关闭的socket
写入数据时,会触发SIGPIPE
信号。这种情况在HTTPD
中是可能发生的,例如来自客户端的连接从客户端直接关闭了,或者是和CGI
使用管道通信,但是CGI
关闭了相应的管道。
在BOA代码中,将SIGPIPE
信号的处理函数设置成SIG_IGN
,也就是忽略SIGPIPE
信号。通过忽略该信号,可以防止BOA因为意外的写入操作而奔溃终止。
02
socket相关
BOA中负责创建、设置、监听socket
的逻辑都在函数main
中。main
函数的while
死循环,调用函数get_request
,函数get_request
调用accept
接受来自客户端的连接。accept
接受的连接存放在请求结构体的成员request->fd
中,后续接受来自客户端的数据、发送处理完毕的数据都使用request->fd
。
在这个部分主要关注BOA是如何对socket
进行编程的,不会具体涉及其他具体的代码。
代码符合Linux网络编程的一般逻辑的,稍微需要注意的一些技术点包括:
-
设置
socket
为非阻塞 -
使用
select
设置多路复用 -
使用
setsockopt
设置较大的发送缓冲区 -
设置
TCP_NODELAY
禁用Nagle
算法,减少数据传输延迟
以下是在函数main
中和socket
相关的代码片段:
1. 创建socket
2. 将socket
设置成非阻塞
3. 设置端口复用
- 使用
bind
命名socket
,将socket
与socket
地址绑定
- 使用
listen
监听socket
6. 使用accept
接受来自客户端的连接请求 在函数main
的while
死循环中,调用函数get_request
,在该函数中使用accept
接受来自客户端的连接请求,并且初始化conn
结构体,加入到就绪队列中。
使用select实现I/O复用
在HTTPD
中通常需要同时处理监听socket
和连接socket
,这就是I/O复用的一种应用场景:同时监听多个文件描述符。I/O复用虽然能够同时监听多个文件描述符,但是是阻塞的,而且如果有多个文件描述符同时就绪的话,不采取额外的措施(例如多进程、多线程)的话,只能串行依次处理。Linux中能够实现I/O复用的系统调用主要有select
、poll
和epoll
。
BOA仅仅单纯使用了select
来实现I/O复用。变量block_read_fdset
可以读取的文件描述符集合,block_write_fdset
可以写入的文件描述符集合。如下的代码位于函数main
的while
循环中,能够一直监控可读写的文件描述符集合。并且通过宏FD_ISSET
判断文件描述符是否处于可读写的状态,如果满足则进行相应的读写,在如下的代码中,能够判断监听socket:server_s
是否可读,如果可读,则调用函数get_request
读取来自客户端的请求。
总体来说,BOA的I/O复用还是比较简单,没有采用多进程、多线程机制来对客户端连接进行并发处理,而是使用在函数main
中通过while
轮询,监听可读写的socket
。可读的情况一般是客户端发起了新的连接和数据,可写的状态则是可以往客户端写入数据或者写入到CGI
数据等等。
03
CGI可控数据源
BOA在执行CGI
时会使用fork + exec
创建执行CGI
子进程,其中,通过设置环境变量数组和通过标准输入传递请求体的方式将数据给CGI
,CGI
处理完毕数据之后,通过标准输出再传递到BOA以发送给客户端。
CGI所需的环境变量数组,在函数create_common_env
中被初始化。这个函数在实际的设备中可能会根据需求添加一些额外的环境变量键值对。
随后,在函数create_env
中会继承全局变量common_cgi_env
中的环境变量键值对,并且额外添加一些真正可控的环境变量键值对,例如:
-
SCRIPT_NAME
-
QUERY_STRING
-
PATH_INFO
-
…
CGI
中可控的数据源大概就是如上的环境变量键值对和请求体转换而成的标准输入了。
04
BOA的数据结构及其含义
05
BOA的状态机
一个简单的HTTP请求格式大概如下,主要分成4个部分:
-
请求行:包括请求方法、请求URI、HTTP版本。
-
请求头:包含多个头部字段,由冒号分隔的键值对组成。
-
空行:用于分隔请求头和请求体。。
-
请求体:如果是POST请求包含请求头。
BOA使用了有限状态机(finite state machine)来处理HTTP协议请求,笔者根据源码把状态机分成了三个部分来理解:
-
第一个部分是解析请求行和请求头。这个部分比较简单,实现的原理就是逐个字符处理HTTP请求,如果发现第一个
\r\n
,说明已经出现了请求行,后续出现\r\n
则是每个请求头字段的键值对,如果出现\r\n\r\n
则是说明到请求体了。 -
第二个部分是
CGI
部分。BOA和CGI
之间的数据是通过传递环境变量数组和管道来进行数据交互的,在状态机中主要是BOA通过管道传递待处理数据到CGI
的标准输入,待CGI
处理完毕之后通过标准输入再到管道传递到BOA中,最后再发送到客户端。 -
第三个部分是非
CGI
部分。实际业务中,需要将BOA的GET/POST请求处理部分源码进行扩展,BOA源码中,仅仅是将POST请求保存到临时文件,以及,读取并返回GET请求的文件。
[点击查看高清图片](https://mp.weixin.qq.com/s/yasSA6tdVrGB43kyXFUsRA)
三
从漏洞挖掘角度看BOA
该部分对BOA架构的设备进行漏洞挖掘提出了一些建议,主要是如何快速从获取到BOA版本、提供了一些价值较高的函数可以辅助快速恢复请求结构体、根据数据包处理特性指出了大概率会根据业务二次开发(可能存在认证前漏洞)的几个重要函数,以及分析了三个较为典型的认证前漏洞。
01
结构体恢复
在BOA的二进制程序中,可以通过搜索字符串``SERVER_SOFTWARE``或者直接搜索``boa``,定位到引用函数``create_common_env``进而快速定位到BOA版本。同时在这个函数中还可以恢复环境变量数组``common_cgi_env``。
定位到BOA版本之后,就可以下载对应的源码,进而恢复二进程中的重要结构体和函数。BOA是单线程模型,在对HTTP请求进行处理的过程中,会将具体的请求转换成请求结构体``request``,并且后续的数据包请求函数都会接受该结构体指针作为传参。
恢复结构体``request``可以更好帮助我们理解相关的处理逻辑,那么如何更快、更好根据源码恢复该结构体的内容呢?一个浅显的原则就是去找到那些满足如下条件的函数,在二进制中定位到这些函数后,然后结构源码创建、恢复结构体。
-
条件1:尽可能更多使用到该结构体成员。
-
条件2:和业务代码关联不大,避免业务代码逻辑干扰恢复。
-
条件3:在源码中不大可能被大篇幅修改到。
-
条件4:有尽可能多的字符串辅助恢复。
经过筛选,挑出了如下的一些比较合适的函数:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以上四个函数,恢复结构体``request``基本上已经够用了,因为该结构体组成基本上是线性的,而且没有涉及到复杂的条件编译,基本上定位到重要的一些结构体成员后,就可以将上下相邻的成员也恢复。但是成员相对位置不绝对,可能在编译优化的时候导致偏移发生变化,还是需要根据二进制中的位置结合源码,才能完全确定。除此之外,可能开发者会对结构体中的成员进行扩展,例如某些SDK会对BOA进行了额外的开发。
实际上通过函数``complete_env``、函数``process_logline``、函数``process_option_line``,基本上可以恢复绝大部分的结构体成员,包括二次开发添加的一些成员。还有一些重要的结构体成员可以通过指定的函数恢复,例如``prev``和``next``可以通过函数``dequeue``和函数``enqueue``恢复。这两个函数用于维护结构体``request``组织成的双链结构,在请求、释放请求的时候被相应调用。
02
数据包处理
数据包处理主要发生在函数main
的while
循环,调用函数process_requests
处理接收到的请求数据。函数process_requests
由调用了如下的几个重要函数:
-
函数
read_header
:处理请求头 -
process_option_line
:处理请求头中的字段,可能形成一些可控的环境变量。 -
process_logline
:处理请求行,一般不大可能会更改额外代码。 -
process_header_end
:请求头处理完毕之后继续处理数据,在这个函数中可能存在鉴权。例如reltek sdk
的BOA有在这个函数中使用函数auth_authorize
进行鉴权。 -
函数
webs*Define
:常见的二次开发的BOA版本,使用该函数注册API的回调函数进一步处理客户端的请求,其中包含了许多业务相关的代码,存在漏洞的概率较高。
四
真实漏洞分析
01
案例一:vivotek认证前栈溢出
这个案例虽然没有找到具体的CVE编号,但是涉及的漏洞是个典型,漏洞发生在Vivotek多个设备型号中,是程序BOA的一个认证前缓冲区溢出漏洞,攻击效果可以达到认证前RCE。
该漏洞的典型在于,一是漏洞发生在认证前,是strncpy
导致的,比较具有代表性;二是BOA没有符号,连函数符号都没有,只能根据关键字符串从源码对应着去恢复相关函数、相关结构体。漏洞的相关资源都在如下:
首先是先定位到版本号,然后下载源码以辅助恢复符号。通过搜索字符串:SERVER_SOFTWARE
,可以得到版本0.94.14rc21,并从git下载源码,checkout到相应的分支。
根据漏洞信息搜索字符串Content-Length
定位到漏洞。经过函数恢复和请求结构体恢复之后,可以知道漏洞调用链从近到远依次是:
-
read_header
:处理请求首行、请求头字段 -
process_requests
:按照状态机,对请求进行处理 -
loop
:main
函数中的死循环,一直监听来自客户端的连接,如果有就绪的则调用函数process_request
处理
如下是反编译代码,参考源码,此时的数据包处理状态,应该是解析完毕了请求首行,但是还没有到该处理请求体的状态,也就是位于该处理请求头字段的时候。漏洞触发条件是:
-
判断请求方式是POST或PUT,
req->client_stream
存储的是整个数据包,指针haystack
和client_stream_post
用来辅助遍历该数据包。 -
然后通过
strstr
找是否包含Content-Length
字段。按照正常逻辑来说,冒号和回车之间的值就是该字段的值。 -
最后将值复制到该函数栈上的变量
dest
,值的大小是回车和冒号之间的字节大小。
函数strncpy
中,最后一个传参没有对数据长度进行校验,导致缓冲区溢出,甚至可以达到任意代码执行的效果。参数PoC:
案例小结:漏洞发生在状态机处理请求头的时候,在函数read_header
厂商自定义的代码中,由于对Content-Length
请求头字段的数据没有校验,导致缓冲区溢出,进而可以达到任意命令执行的效果。
02
案例二:CVE-2019-19822 敏感信息泄漏漏洞
CVE-2019-19822是发生在以Realtek SDK开发的路由器设备中的敏感信息泄漏漏洞,此处以设备TOTOLINK A3002RU,固件版本2.0.0为例,分析该漏洞。
Realtek SDK中的BOA经过了二次开发,加入了较多的业务代码,无法通过之前说的环境变量SERVER_SOFTWARE
获取到版本,但是可以通过搜索字符串boa
获取到版本,然后找到源码,再根据关键的字符串,大体可以恢复出来请求结构体辅助理解反编译代码。
漏洞的PoC是直接访问config.dat
文件。这个漏洞的触发逻辑稍微复杂一点,笔者原本计划尝试通过仿真搭建环境,但是失败了,本文就直接结合源码和反编译代码进行分析。
在BOA的状态机中,当处理完请求头之后,就会执行函数process_header_end
。这个函数的主要作用是为执行cgi或GET请求做准备工作,例如转换URI、获取文件真实路径等工作。在二次开发中,经常将鉴权相关的逻辑集成到这个函数中,因此很多师傅对BOA进行漏挖的时候会直接定位到这个函数。此次分析的BOA就是这种情况。
该BOA相对源码新增了用于认证的字段req->user
、req->pass
、req->auth_flag
,如果请求中的账号、密码与本地保存的账号、密码一致,则设置认证通过标志auth_flag
。
如果认证未通过,会进入认证前的URI判定,指定用户认证前可以访问的资源。但是在判断的时候,能够触发的return
是白名单的机制,只有特定的几种情形才会导致函数结束,例如:
-
大前提条件是:URI包含
.html
、.asp
、是POST请求 -
URI中包含字符串
login
、forget.asp
、Login
剩余的场景则会继续执行后续的代码。
接下来就是根据请求方式,如果是GET请求,如果URI中不包含.htm
、.asp
、.navigation.js
、.cgi
,cgi_type
就会是初始的req->cgi_type
,该字段在函数translate_uri
中被赋值,赋值是根据请求PATH的类型判断的,感兴趣的师傅可以进一步到函数get_mime_type
中查看。在函数translate_uri
中仅仅当PATH
中包含CGI
,才会被赋值,除此之外默认是值0
。
函数init_get
负责将请求的资源读取,并返回给客户端。
案例小结:那么该认证前信息泄漏的成因就很显然了,在处理完毕请求头后,执行函数process_header_end
时,认证失败后的可访问资源判定采用了白名单退出机制,导致可绕过,获取到配置文件。
03
案例三:CVE-2018-20056 Dlink认证前栈溢出
漏洞CVE-2018-20056是发生在设备D-LINK DIR-605L 300M wireless cloud routing 和 DIR-619L 300M wireless cloud routing中的缓冲区溢出漏洞。漏洞成因是在程序/bin/boa
的formLanguageChange
接口存在sprintf导致缓冲区溢出漏洞,攻击者可以通过参数currTime
构造数据包,可以导致任意代码执行。
这个BOA也是典型的二次开发的BOA,使用了函数wabAspInit
用来解析、处理Form
表单逻辑和ASP
请求。如下通过函数websFormDefine
来定义form
接口和处理用到的回调函数;通过函数websAspDefine
来定义asp
接口和处理用到的回调函数。
在函数websFormDefine
中,维持一个全局的链表用于保存API和API对应的回调函数。如下,每次调用该函数,都会在全局链表root_form
中插入一个新的节点,节点中有三个字段分别是:API
、API
对应的回调函数、指向的下一个节点。插入节点采用的是尾插法。
注册的回调函数会在函数form_handler
中被调用,该函数又被函数init_form<-
函数write_body
调用。在BOA的源码中,函数write_body
的调用时机是向客户端写入BODY内容的时候。也就是说,该程序BOA是在向客户端写入BODY
内容的时候,根据请求时的API,执行相应的回调函数,并且将回调函数的结果也写入到BODY
中。
对此类自定义BOA开展漏洞挖掘,如果是找认证后漏洞则是直接去审计这个函数里面注册的回调函数,并查看其中的数据源是否可控、是否可导致漏洞。如果是找认证前漏洞则是去分析鉴权逻辑,通常来说,鉴权逻辑发生在函数process_header_end
中。该函数发生在状态机处理数据包时,已经处理完请求行和请求头的阶段。
继续回到漏洞,接口formLanguageChange
对应的回调函数formLanguageChang
中,通过函数websGetVar
获取到用户提交的参数,然后使用函数sprintf
拼接,拼接的过程中没有对参数长度进行检查,导致栈上的缓冲区溢出。
那么接下来就是分析,该接口为什么可以认证前被触发,触发PoC如下:
该BOA包含了函数符号,因此可以直接定位到函数process_header_end
中的鉴权处理逻辑。在该函数中一共包含三次路径判定,在第三次会判定失败,进入正常的POST请求处理,在向客户端写入BODY
结果的时候调用到form
回调函数,进而触发漏洞。
漏洞分析如下:
1. req_uri_type=0
恒成立,因为POC的URI中不包含如下的字符串:
2. 进入第二次关键if
判定和第三次关键if判断。其中第二次关键if
判定会通过,和变量is_initialized
无关。第三次关键if
判定会不通过,在与逻辑判定处URL中包含字符串formLanguageChange
。随后,程序进入正常的处理POST请求的逻辑。
3. 进入正常的POST请求处理逻辑,随后会进入到BODY_WRITE
状态(向客户端写入BODY
结果)调用函数write_body->
函数init_form
,再执行到formLanguageChange
的回调函数,导致漏洞触发。
案例小结:处理完毕请求头之后,执行函数process_header_end
,由于接口formLanguageChange
对应的回调函数存在漏洞,且可以认证前访问,导致漏洞触发。漏洞触发的时机是在向客户端写入BODY
结果。
五
总 结
BOA是IoT小设备中常见的HTTPD,从状态机理解数据包处理流程、分析请求数据结构能够帮助安全研究人员快速理解业务逻辑,进而定位到可能发生漏洞的地方。本文的主要贡献是从源码小结了BOA的状态机,结合经验和源码提出了快速恢复BOA请求结构体的方法,以及结合三个典型的BOA认证前漏洞,提供了对BOA进行漏洞挖掘的一般方法,文中给出了案例的固件下载链接,感兴趣的师傅可以尝试交流。
【版权说明】
本作品著作权归OneShell所有
未经作者同意,不得转载
OneShell
天工实验室安全研究员
专注于 IOT 设备的漏洞挖掘和利用。
黑客/网络安全学习路线
对于从来没有接触过黑客/网络安全的同学,目前网络安全、信息安全也是计算机大学生毕业薪资相对较高的学科。
大白也帮大家准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
这也是耗费了大白近四个月的时间,吐血整理,文章非常非常长,觉得有用的话,希望粉丝朋友帮忙点个**「分享」「收藏」「在看」「赞」**
网络安全/渗透测试法律法规必知必会****
今天大白就帮想学黑客/网络安全技术的朋友们入门必须先了解法律法律。
【网络安全零基础入门必知必会】什么是黑客、白客、红客、极客、脚本小子?(02)
【网络安全零基础入门必知必会】网络安全专业术语全面解析(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开发基本流程控制if … else
python入门教程之python开发可变和不可变数据类型和hash
【网络安全零基础入门必知必会】之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
****网络安全/渗透测试入门掌握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安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了
觉得有用的话,希望粉丝朋友帮大白点个**「分享」「收藏」「在看」「赞」**
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取