1

JAVA环境

1、WebGoat

WebGoat 是一个由 OWASP 维护的 Web 应用程序靶场环境,旨在帮助大家学习 web 应用程序的漏洞原理及测试方法。

项目地址:

| https://github.com/WebGoat/WebGoat

该项目使用 java 语言开发,涉及漏洞包括 OWASP Top10,参考文档:

| https://owasp.org/www-project-webgoat/

2、JVApp

Java漏洞练习程序,开发工具Eclipse,运行环境Java 1.7以上版本,Tocmat7以上。

https://github.com/shack2/JVApp

安装方法:

1.首先安装jdk1.7以上版本,下载Tomcat7以上版本,将war包程序部署到Tomcat webapps目录

2.安装mysql5.7,如果是其他5.x版本或导入SQL报错,修改JVAPP.sql中的utf8mb4为utf8,然后新建数据库apptest使用navicat导入sql文件。

3.启动tomcat,待程序解压后,修改JVApp中WEB-INF/classes/config.properties中的数据库连接信息(ip、数据库、账号、密码)等信息,修改完成后重启tomcat即可。

 4.访问程序:http://127.0.0.1/JVApp/

3、SecExample

https://github.com/tangxiaofeng7/SecExample

AVA 漏洞靶场 (Vulnerability Environment For Java)

Name

Star

[注入漏洞-SQL注入]

🌟🌟🌟

[注入漏洞-命令注入]

🌟

[注入漏洞-spel表达式注入]

🌟🌟🌟

[XSS漏洞]

🌟

[CSRF漏洞]

🌟🌟

[SSRF漏洞]

🌟🌟

[CORS漏洞]

🌟🌟🌟🌟

[反序列化漏洞-Fastjson反序列化]

🌟🌟🌟🌟

[验证码相关漏洞]

🌟🌟

安装

git clone https://github.com/tangxiaofeng7/SecExample.git

cd SecExample

docker-compose up -d

访问: http://localhost:8080

靶场攻略 | 网络安全靶场合集-编程之家

http://127.0.0.1:8080/ssrfoutput

靶场攻略 | 网络安全靶场合集-编程之家

4、Micro_service_seclab

这是一个Java漏洞靶场

这个Java漏洞靶场是基于SpringBoot开发,目的是用来检测SAST工具的准确性(关注漏报和误报问题)的。

如果想学习使用CodeQL检测漏洞,可根据文章《CodeQL从入门到放弃》 结合此项目进行学习。

可以用此靶场测试(CodeQL, CheckMarx, Fortify SCA)白盒检测工具,根据预先埋点的漏洞,与测试结果进行对比,

判断在什么地方存在误报和漏报的问题。

当然,你也可以用这个靶场做黑盒测试,所有漏洞都提供了数据库文件

https://github.com/cream-sec/micro_service_seclab

支持的漏洞

SQL注入

SQL注入这部分,会出现很多不同白盒写法导致的SQL注入。

种类

解释

伪代码

String Source

输入点是字符串类型

one(@RequestParam(value = "username") String username)

List

输入点是Long泛型(用来测试误报)

longin(@RequestBody Listuser_list)

Optional

新特性

optionalLike(@RequestParam(value = "username") Optionaloptinal_username)

ListSource

输入点是String泛型

in(@RequestBody Listuser_list)

Object Source

对象类型

objectParam(@RequestBody Student user)

MyBatis注入

XML分离SQL检测

myBatis(@RequestParam(value = "name") String name)

In类型注入

In类型注入

参照代码

Like类型

Like类型注入

参照代码

Lombok

Lombok对注入漏洞的影响

参照代码

MyBatis注解方式注入

MyBatis注解方式注入

参照代码

Spring Data JPA

JPA 方式

参照代码

2). RCE命令执行

种类

解释

伪代码

processBuilder

processBuilder导致的RCE

Runtime.getRuntime().exec(args)

Runtime.getRuntime().exec(args)导致的RCE

3). FastJson反序列化漏洞

提供1.2.31版本的Fastjson供进行测试。

@RestController
@RequestMapping(value = "/fastjson")
public class FastJsonController {

    @PostMapping(value = "/create")
    public Teacher createActivity(@RequestBody String applyData,
                                  HttpServletRequest request, HttpServletResponse response){
        Teacher teachVO = JSON.parseObject(applyData, Teacher.class);
        return teachVO;
    }

}

Bash

4. SSRF漏洞

种类

解释

伪代码

url.openConnection()

url.openConnection()引起的SSRF

参照代码

Request.Get()

Request.Get()引起的SSRF

参照代码

OkHttpClient

OkHttpClient引起的SSRF

参照代码

DefaultHttpClient

DefaultHttpClient引起的SSRF

参照代码

url.openStream()

url.openStream()引起的SSRF

参照代码

5.XXE

种类

解释

伪代码

DocumentBuilderFactory

DocumentBuilderFactory引起的SSRF

参照代码

6. 反序列化漏洞

持续添加中

7. 逻辑漏洞

添加中

5、Hello-Java-Sec

Java漏洞平台,结合漏洞代码和安全编码,帮助研发同学理解和减少漏洞,代码仅供参考

https://github.com/j3ers3/Hello-Java-Sec

●默认账号:admin/admin

●目前实现的漏洞点有:

 SQLi
XSS
RCE
Deserialize
SSTI
SpEL
SSRF
Directory Traversal
Redirect
CSRF(X)
File Upload
XXE
Actuator
Fastjson
Xstream
Log4shell
JNDI
Dos
more(X)

Bash

安装运行方法如下:

IDEA

配置数据库连接,数据库文件db.sql

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=1234567

Bash

JAR(JDK1.8)

git clone https://github.com/j3ers3/Hello-Java-Sec
cd Hello-Java-Sec
mvn clean package -DskipTests
java -jar target/hello-1.0.0-SNAPSHOT.jar

Bash

Docker

mvn clean package
./deploy.sh

Bash

靶场攻略 | 网络安全靶场合集-编程之家

技术架构:

●Java 1.8

●SpringBoot 4.0

●Bootstrap 4.6.0

●Codemirror 5.62.0

开启环境:

靶场攻略 | 网络安全靶场合集-编程之家

访问:http://127.0.0.1:8080

账号密码:admin/admin

靶场攻略 | 网络安全靶场合集-编程之家

2

Python环境

1、TIWAP

https://github.com/tombstoneghost/TIWAP

**TIWAP是一款包含大量漏洞的Web应用渗透测试学习工具,**该工具基于Python和Flask实现其功能,帮助信息安全爱好者或测试人员学习和了解各种类型的Web安全漏洞

当前版本的TIWAP实验环境中包含了二十种安全漏洞,具体如下所示:

●SQL注入

●Blind SQL注入

●NoSQL注入

●Command注入

●业务逻辑漏洞

●敏感数据泄露

●XML外部实体

●安全错误配置

●反射型XSS

●存储型XSS

●基于DOM的XSS

●HTML注入

●不安全的证书验证

●硬编码Credentials

●不安全的文件上传

●暴力破解

●目录遍历

●跨站请求伪造(CSRF)

●服务器端请求伪造(SSRF)

●服务器端模板注入(SSTI)

其中,每一种漏洞都提供了三种等级的漏洞利用难度,即低级Low、中级Medium和困难Hard,可以根据自己的需求在设置页面中进行相应的配置。

2、SSTI-labs

https://github.com/X3NNY/sstilabs书签:https://github.com/X3NNY/sstilabs

这个项目是为了帮助正在学习SSTI的伙伴,你可以从中学到一些绕过方法,同时如果你有新的绕过姿势,你可以参与到本项目的贡献之中.

flask-lab

确保你已经安装了python

克隆项目或者下载zip文件

pip install -r requirements.txt

python app.py

它将运行在5000端口上,为了安全起见,请不要使用root用户运行

3

PHP环境

1、DVWA

DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的 PHP/MySQL Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助 web 开发者更好的理解 web 应用安全防范的过程。项目地址:

| https://github.com/digininja/DVWA

可docker安装

docker pull vulnerables/web-dvwa
docker run –rm -it -p 80:80 vulnerables/web-dvwa
访问80端口就可以了哈

Bash

DVWA 共有十个模块,分别是:

1.Brute Force(暴力(破解)) 2.Command Injection(命令行注入) 3.CSRF(跨站请求伪造) 4.File Inclusion(文件包含) 5.File Upload(文件上传) 6.Insecure CAPTCHA (不安全的验证码) 7.SQL Injection(SQL注入) 8.SQL Injection(Blind)(SQL盲注) 9.XSS(Reflected)(反射型跨站脚本) 10.XSS(Stored)(存储型跨站脚本)

DVWA-WooYun

DVWA-WooYun 是基于 wooyun 历史真实漏洞而设计的漏洞靶场, 项目地址:

| https://github.com/lxj616/DVWA-WooYun

包含的漏洞如下:

靶场攻略 | 网络安全靶场合集-编程之家

2、Bwapp

一款非常好用的漏洞演示平台,包含有100多个漏洞

docker search bwapp
docker pull raesene/bwapp
docker run -itd –name bwapp raesene/bwapp

Bash

3、iwebsec

4、Pikachu

Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。

Pikachu上的漏洞类型列表如下:

●Burt Force(暴力破解漏洞)

●XSS(跨站脚本漏洞)

●CSRF(跨站请求伪造)

●SQL-Inject(SQL注入漏洞)

●RCE(远程命令/代码执行)

●Files Inclusion(文件包含漏洞)

●Unsafe file downloads(不安全的文件下载)

●Unsafe file uploads(不安全的文件上传)

●Over Permisson(越权漏洞)

●../../../(目录遍历)

●I can see your ABC(敏感信息泄露)

●PHP反序列化漏洞

●XXE(XML External Entity attack)

●不安全的URL重定向

●SSRF(Server-Side Request Forgery)

●管理工具

●More…(找找看?..有彩蛋!)

项目地址:

| https://github.com/zhuifengshaonianhanlu/pikachu

docker安装

git clone https://github.com/zhuifengshaonianhanlu/pikachu
cd pikachu
docker build -t "pikachu" .
使用当前目录 kerfile 创建镜像,命为 pikachu。要和 Dockerfile 在同一目录,注意命令后面还有一个点
中间会拉取 lnmp 环境,大约有 200M
docker run -it -d -p 8082:80 pikachu
首页有一个初始化按钮,点击初始化后即可

Bash

5、Permeate

6、SQLI-Labs

专注于 sql 注入研究的靶场,共计 65 关,项目地址:

https://github.com/Audi-1/sqli-labs

docker安装

docker pull acgpiano/sqli-labs
docker images
docker run -dt –name sqli -p 80:80 –rm acgpiano/sqli-labs
访问80端口

Bash

7、Upload-Labs

upload-labs 是一个使用 php 语言编写的,专门收集渗透测试和 CTF 中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。项目地址:

| https://github.com/c0ny1/upload-labs

靶机包含的漏洞类型分类:

靶场攻略 | 网络安全靶场合集-编程之家

docker pull c0ny1/upload-labs
docker run -d -p 81:80 c0ny1/upload-labs
可以正常启动
但是,当上传文件时,会出现下图所示的报错,即使上传合法的文件也是报错
解决:
① 进入upload-labs容器
docker exec -it [CONTAINER ID] /bin/bash  #查看CONTAINER ID命令docker ps
② 创建upload文件夹:mkdir upload
③ 给upload赋权限:chmod 777 upload
此时,一切正常。靶场搭建完毕!

Bash

8、XSS-Labs

针对 xss 漏洞的专项训练靶场,一共 20 关,涉及的知识点包括:

●无过滤 XSS (level 1)

●各种难度的构造闭合 XSS (level 2、3、4、5、6)

●各种难度的绕过过滤 XSS (level 2、3、4、5、6)

●双写拼接 XSS (level 7)

●实体编码+HTML 编码 XSS (level 8、9)

●input 中的 XSS (level 10)

●HTTP headers 头中的 XSS (level 11、12、13)

●exif XSS (level 14)

●angularjs XSS (level 15)

●URL 编码 XSS (level 16)

●embed 标签的 XSS (level 17、18)

●Flash XSS (level 19、20)

项目地址:

| https://github.com/do0dl3/xss-labs

在线地址:http://test.xss.tv

XSS Vulnerability Scenarios (challenges)

https://github.com/moeinfatehi/xss_vulnerability_challenges

this repository is a docker containing some "XSS vulnerability" challenges and bypass examples.

The ideas behind challenges are: 

●Javascript validation bypass

●html entities bypass

●WAF bypass

●Black-list validation bypass

●Basic XSS validation bypass

●Double encode bypass of WAF to exploit XSS

●Exploiting XSS by bypassing escape characters

启动方法:

sudo docker run -d -p 9003:80 moeinfatehi/xss_vulnerability_challenges

Bash

或者

git clone https://github.com/moeinfatehi/xss_vulnerability_challenges.git
cd xss_vulnerability_challenges
docker-compose up
访问http://localhost:9003

Bash

靶场攻略 | 网络安全靶场合集-编程之家

9、SSRF-LAB

SSRF-LABS 有一个好看又简洁的界面,提供了最基本的 REST API 和客户端 WebHook 功能用于 SSRF 测试。项目地址:

| https://github.com/m6a-UdS/ssrf-lab/

以此衍生出的新的靶场,基于实际环境的云基础设施攻击靶场 DVCA,项目地址:

| https://github.com/m6a-UdS/dvca

项目以 AWS 为目标云,通过 SSRF 漏洞获得云基础设施的管理员权限

10、Webug4.0

基础环境是基于PHP/mysql制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 虚拟机中

安装

虚拟机下载地址:https://pan.baidu.com/s/1k6Th3RwJZTHrmoS2EbO6vA 提取码:pzaq

11、XXE-lab(针对XXE)

xxe-lab由国内大佬@c0ny1开发的,与sqli-labs有些类似,主要专注于XML外部实体注入漏洞这一块。

xxe-lab是一个使用php,java,python,C#四种当下最常用语言的网站编写语言来编写的一个存在xxe漏洞的web demo。

GITHUB地址:https://github.com/c0ny1/xxe-lab

安装

php_xxe
直接放在php web页面下即可运行。

java_xxe
java_xxe是serlvet项目,直接导入eclipse当中即可部署运行。

python_xxe:
安装好Flask模块
python xxe.py

Csharp_xxe
直接导入VS中运行

Bash

12、PHP7 版 sqli-labs

基于第一个 sqli-lab 项目,将所有代码适配到 php7 版本,涉及的技术和测试方法跟第一个项目相差无几,项目地址:

| https://github.com/skyblueee/sqli-labs-php7

靶场攻略 | 网络安全靶场合集-编程之家

13、Mutillidae_2

包含四十多个漏洞,使用 php 语言编写

部署:curl -sSL https://websploit.org/install.sh | sudo bash

4

ASP环境

1、MSSQL-SQLi-labs

https://github.com/Larryxi/MSSQL-SQLi-Labs

关于系统的说明

1.前期使用的架构是Windows 2003上的iis+asp+bootstrap+mssql 2000

2.asp开发参考的书目是《ASP 从入门到精通(放弃)》

3.主要的代码逻辑则仿造的是php版的sqli-labs,完成了前20关的内容,其中也有些小替换

程序的几个关键点

1.asp不支持动态包含文件所以就重复了多次前端页面

2.对于数据库的报错特性,在脚本中设置了捕获陷阱,当有报错时再把错误信息写入到页面中

3.由于使用到Recordset,不能简单地取出某一列来判断SQL语句是否有查询出结果,而是需要同时判断BOF和EOF才更加合理

4.在SQL Server 2000中QUOTED_IDENTIFIER 为 ON 时,双引号只能用于分隔标识符,不能用于分隔字符串,所以在某些关卡中对查询语句进行了替换

详见:NmapRecordSearch && MSSQL-SQLi-Labs 初步开发小结

5

NoSQLi Lab

之前的项目都是针对关系型数据库的利用,这个项目是针对非关系型数据库的漏洞环境,比如 redis、mongoDB 等,测试起来还是有所差别的,项目地址:

| https://github.com/digininja/nosqlilab

apt-get update && apt-get dist-upgrade
apt-get install php-mongodb apache2 vim mongodb git php

cd /var/www/html/
rm index.html
git clone https://github.com/digininja/nosqlilab

Bash

靶场攻略 | 网络安全靶场合集-编程之家

6

GO环境

https://github.com/leveryd/go-sec-code书签:GitHub – leveryd/go-sec-code: Go相关的安全研究

"漏洞类型"包括:

●任意文件读取

●任意文件写入

●SSRF

●命令执行注入

●SQL注入

●模板注入

●并发攻击

靶场攻略 | 网络安全靶场合集-编程之家

靶场攻略 | 网络安全靶场合集-编程之家

7

Node靶场

1、Vulnerable-node

https://github.com/cr0hn/vulnerable-node

2、JuiceShop

使用 Node.js、Express 和 Angular 编写的 web 漏洞靶场环境,同样包含 OWASP Top 10 所有漏洞,比较贴近现在流行的前后端分离的架构,学习如何发现 API 的安全漏洞

curl -sSL https://websploit.org/install.sh | sudo bash

8

Ruby靶场

Ruby靶场

https://github.com/cliffe/secgen

9

API测试环境

1、APISandbox

Pre-Built Vulnerable Multiple API Scenarios Environments Based on Docker-Compose.

APISandbox是一个包含多个场景的API漏洞靶场。

目前有以下几个API漏洞场景靶场:

✔️4ASystem: 4A认证系统下的API平行越权

✔️APIVuln: 生产消费流水线中的API缓存投毒

✔️GraphqlNotebook: 一个使用GraphQL的留言板以及经典API漏洞

✔️InfoSystem: WSDL泄露API越权进后台Getshell

✔️OASystem: SpringBoot微服务架构下的API Gateway配置问题

✔️OWASPApiTop10: 使用go作为后端实现解释OWASP API Top 10的漏洞

欢迎小伙伴提交更多API安全实战思路攻略等,社区会帮忙实现成靶场环境~

安装

在Ubuntu 20.04下安装docker/docker-compose:

# 安装pip
curl -s https://bootstrap.pypa.io/get-pip.py | python3

# 安装最新版docker
curl -s https://get.docker.com/ | sh

# 启动docker服务
systemctl start docker

# 安装compose
pip install docker-compose

bash

其他操作系统安装docker和docker-compose可能会有些许不同,请阅读Docker文档进行安装。

使用

# 下载项目
wget https://github.com/API-Security/APISandbox/archive/refs/heads/main.zip -O APISandbox-main.zip
unzip APISandbox-main.zip
cd APISandbox-main

# 进入某一个漏洞/环境的目录
cd OWASPApiTop10

# 自动化编译环境
docker-compose build

# 启动整个环境
docker-compose up -d

bash

每个环境目录下都有相应的说明文件,请阅读该文件,进行漏洞/环境测试。

测试完成后,删除整个环境

docker-compose down -v

本项目中所有环境仅用于测试,不可作为生产环境使用!

注意事项:为防止出现权限错误,最好使用root用户执行docker和docker-compose命令、docker部分镜像不支持在ARM等架构的机器上运行

项目地址:https://github.com/API-Security/APISandbox

10

云安全测试环境

云安全测试环境

Metarget的名称来源于meta-(元)加target(目标,靶机),是一个脆弱基础设施自动化构建框架,主要用于快速、自动化搭建从简单到复杂的脆弱云原生靶机环境。

安装环境

Ubuntu 16.04或18.04

Python >= 3.6 (不支持Python 2.x!)

pip3

 从源码安装

拉取仓库,安装必要库文件:

git clone https://github.com/brant-ruan/metarget.git

cd metarget/

pip install -r requirements.txt

使用Metarget,搭建脆弱场景,例如:

./metarget cnv install cve-2019-5736

基本操作

usage: metarget [-h] [-v] subcommand …
automatic constructions of vulnerable infrastructures
positional arguments:
  subcommand     description
    gadget       cloud native gadgets (docker/k8s/…) management
    cnv          cloud native vulnerabilities management
    appv         application vulnerabilities management
optional arguments:
  -h, –help     show this help message and exit
  -v, –version  show program's version number and exit

Bash

执行./metarget gadget list了解当前支持的云原生组件。

管理云原生组件

usage: metarget gadget [-h] subcommand …
positional arguments:
  subcommand  description
    list      list supported gadgets
    install   install gadgets
    remove    uninstall gadgets
optional arguments:
  -h, –help  show this help message and exit

Bash

示例

#安装制指定版docker
./metarget gadget install docker –version 18.03.1
#安装指定版本Kubernetes
./metarget gadget install k8s –version 1.16.5
#安装指定版本的Kata-containers
./metarget gadget install kata –version 1.10.0
#安装指定版本Linux内核
./metarget gadget install kernel –version 5.7.5

Bash

管理“云原生组件”的脆弱场景

usage: metarget cnv [-h] subcommand …

positional arguments:
  subcommand  description
    list      list supported cloud native vulnerabilities
    install   install cloud native vulnerabilities
    remove    uninstall cloud native vulnerabilities

optional arguments:
  -h, –help  show this help message and exit

Bash

执行./metarget cnv list了解当前支持的云原生组件脆弱场景。

示例:

#CVE-2019-5736
./metarget cnv install cve-2019-5736
#CVE-2018-1002105
./metarget cnv install cve-2018-1002105
#Kata-containers安全容器逃逸
./metarget cnv install kata-escape-2020
#CVE-2016-5195
./metarget cnv install cve-2016-5195

Bash

目前支持的云原生脆弱场景

场景名称

涉及组件

场景类型

CVSS 3.x

Writeup

cve-2018-15664

docker

容器逃逸

7.5

cve-2019-13139

docker

命令执行

8.4

链接

cve-2019-14271

docker

容器逃逸

9.8

链接

cve-2020-15257

docker/containerd

容器逃逸

5.2

链接

cve-2019-5736

docker/runc

容器逃逸

8.6

cve-2019-16884

docker/runc

容器逃逸

7.5

cve-2021-30465*

docker/runc

容器逃逸

7.6

链接

cve-2017-1002101

k8s

容器逃逸

9.6

链接

cve-2018-1002105

k8s

权限提升

9.8

cve-2018-1002100

k8s/kubectl

容器逃逸

5.5

cve-2019-1002101

k8s/kubectl

容器逃逸

5.5

cve-2019-11246

k8s/kubectl

容器逃逸

6.5

cve-2019-11249

k8s/kubectl

容器逃逸

6.5

cve-2019-11251

k8s/kubectl

容器逃逸

5.7

cve-2019-11253

k8s

拒绝服务

7.5

cve-2019-9512

k8s

拒绝服务

7.5

cve-2019-9514

k8s

拒绝服务

7.5

cve-2019-9946

k8s

流量劫持

7.5

cve-2020-8554

k8s

中间人攻击

5.0

cve-2020-8555

k8s

服务端请求伪造(SSRF)

6.3

cve-2020-8557

k8s

拒绝服务

5.5

cve-2020-8558

k8s

服务暴露

8.8

cve-2020-8559

k8s

权限提升

6.8

cve-2021-25741

k8s

容器逃逸

8.1

cve-2016-5195

kernel

容器逃逸

7.8

cve-2016-8655

kernel

权限提升

7.8

cve-2017-6074

kernel

权限提升

7.8

cve-2017-7308

kernel

容器逃逸

7.8

链接

cve-2017-16995

kernel

权限提升

7.8

cve-2017-1000112

kernel

容器逃逸

7.0

链接

cve-2018-18955

kernel

权限提升

7.0

cve-2020-14386

kernel

容器逃逸

7.8

cve-2021-22555

kernel

容器逃逸

7.8

kata-escape-2020

kata-containers

容器逃逸

6.3/8.8/8.8

cap_dac_read_search-container

危险配置

容器逃逸

链接

cap_sys_admin-container

危险配置

容器逃逸

cap_sys_ptrace-container

危险配置

容器逃逸

privileged-container

危险配置

容器逃逸

链接

mount-docker-sock

危险挂载

容器逃逸

链接

mount-host-etc

危险挂载

容器逃逸

mount-host-procfs

危险挂载

容器逃逸

链接

mount-var-log

危险挂载

容器逃逸

链接

管理“云原生应用”的脆弱场景

usage: metarget appv [-h] subcommand …

positional arguments:
  subcommand  description
    list      list supported application vulnerabilities
    install   install application vulnerabilities
    remove    uninstall application vulnerabilities

optional arguments:
  -h, –help  show this help message and exit

Bash

执行./metarget appv list了解当前支持的云原生应用脆弱场景。

注意:在构建云原生应用的脆弱场景前,需要先安装Docker及Kubernetes,可以使用Metarget相关命令来完成。

示例:

./metarget appv install dvwa

参考文档:https://github.com/Metarget/metarget/blob/master/README-zh.md

容器测试工具

CDK是一款为容器环境定制的渗透测试工具,在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式,插件化管理。

https://github.com/cdk-team/CDK/wiki/CDK-Home-CN

11

APP靶场

1、DIVA

在APP项目交付的时候经常会测试客户端今天通过靶场来学习一下客户端不规范项。

DIVA (Damn insecure and vulnerable App),是一个故意设计为全身漏洞的APP软件,它能让开发人员、QA、安全人员了解到APP软件一般存在的问题。

| https://github.com/payatu/diva-android

Compile Diva

●Download the source

●Open the project in Android Studio

●For Native library – open command line

●$ cd /app/src/main/jni

●$ make (This needs to be done only once, unless you make changes to the native code – in which case run "make clean && make")

●This will compile the native library and copy all the compiled versions in directory jniLibs which is required when building the app

●From the menu bar: Build->Make Project or Run->Run App

Run Diva

●Compile/download the app

●On your phone settings. Go to security and check Unknown Sources checkbox. This allows you to install apps outside of play store. You don’t need to do this if you are installing the app on an emulator.

●Connect your phone to the computer (make sure USB debugging is enabled on your phone) or run the emulator.

●cd

●adb install

●Start playing.

Current Challenges include:

1.Insecure Logging

2.Hardcoding Issues – Part 1

3.Insecure Data Storage – Part 1

4.Insecure Data Storage – Part 2

5.Insecure Data Storage – Part 3

6.Insecure Data Storage – Part 4

7.Input Validation Issues – Part 1

8.Input Validation Issues – Part 2

9.Access Control Issues – Part 1

10.Access Control Issues – Part 2

11.Access Control Issues – Part 3

12.Hardcoding Issues – Part 2

13.Input Validation Issues – Part 3

不安全日志输出-Insecure Logging

开发人员有意或无意地记录敏感信息(如凭据,会话ID,财务详细信息等)

靶场攻略 | 网络安全靶场合集-编程之家

我们输入的数字”123456789”,使用adb logcat 命令可以看到

E/diva-log( 3575): Error while processing transaction with credit card: 123456789

text

使用jd-gui看下logActivity.class 可以发现

{Log.e("diva-log", "Error while processing transaction with credit card: " + paramView.getText().toString());
Toast.makeText(this, "An error occured. Please try again later", 0).show();}、

Java

代码中使用了log.e,如果开发人员在debug时不小心忘记去掉log输出,将会造成很大的安全隐患。

不安全的数据存储

Insecure Data Storage -Part1

不安全的数据存储也是App常见的安全问题之一,主要有三种方式:

●将敏感数据保存到配置文件中。

●将敏感数据保存在本地的sqlite3数据库中

●将敏感数据保存在临时文件或者sd卡中。

使用了SharedPreferences类,该类是Android平台上一个轻量级的存储类,主要是用来保存一些常用的配置,本例中是用该类存储了用户名和密码,因此是具有风险的。SharedPreferences类存储的数据会以.xml的形式存储在/data/data/apppackagename/shared_prefs目录下

输入用户名和密码都为admin

靶场攻略 | 网络安全靶场合集-编程之家

使用adb连接手机查看文件

靶场攻略 | 网络安全靶场合集-编程之家

InsecureDataStorage1Activity.class

paramView = PreferenceManager.getDefaultSharedPreferences(this).edit();
EditText localEditText1 = (EditText)findViewById(2131493000);
EditText localEditText2 = (EditText)findViewById(2131493001);
paramView.putString("user", localEditText1.getText().toString());
paramView.putString("password", localEditText2.getText().toString());
paramView.commit();
Toast.makeText(this, "3rd party credentials saved successfully!", 0).show();

Java

Insecure Data Storage -Part2

一般app对应的数据库目录: /data/data/apppackagename/databases

输入用户名,密码都为ceshi

靶场攻略 | 网络安全靶场合集-编程之家

使用adb查看数据库

靶场攻略 | 网络安全靶场合集-编程之家

InsecureDataStorage2Activity.class

  SQLiteDatabase localSQLiteDatabase = this.mDB;
  paramView = new java/lang/StringBuilder;
  paramView.<init>();
  localSQLiteDatabase.execSQL("INSERT INTO myuser VALUES ('" + localEditText1.getText().toString() + "', '" + localEditText2.getText().toString() + "');");
  this.mDB.close();
  Toast.makeText(this, "3rd party credentials saved successfully!", 0).show();

Java

Insecure Data Storage -Part3

输入用户名和密码为demo

靶场攻略 | 网络安全靶场合集-编程之家

使用adb查看临时文件,目录在/data/data/apppackagename/

靶场攻略 | 网络安全靶场合集-编程之家

InsecureDataStorage3Activity.class

      Object localObject2 = File.createTempFile("uinfo", "tmp", (File)localObject1);
      ((File)localObject2).setReadable(true);
      ((File)localObject2).setWritable(true);
      localObject1 = new java/io/FileWriter;
      ((FileWriter)localObject1).<init>((File)localObject2);
      localObject2 = new java/lang/StringBuilder;
      ((StringBuilder)localObject2).<init>();
      ((FileWriter)localObject1).write(localEditText.getText().toString() + ":" + paramView.getText().toString() + "n");
      ((FileWriter)localObject1).close();
      Toast.makeText(this, "3rd party credentials saved successfully!", 0).show();

Java

Insecure Data Storage -Part4

存储sd卡的目录一般在:/mnt/sdcard

InsecureDataStorage4Activity.class

    paramView = (EditText)findViewById(2131493010);
    EditText localEditText = (EditText)findViewById(2131493011);
    File localFile = Environment.getExternalStorageDirectory();
    try
    {
      Object localObject1 = new java/io/File;
      Object localObject2 = new java/lang/StringBuilder;
      ((StringBuilder)localObject2).<init>();
      ((File)localObject1).<init>(localFile.getAbsolutePath() + "/.uinfo.txt");
      ((File)localObject1).setReadable(true);
      ((File)localObject1).setWritable(true);
      localObject2 = new java/io/FileWriter;
      ((FileWriter)localObject2).<init>((File)localObject1);
      localObject1 = new java/lang/StringBuilder;
      ((StringBuilder)localObject1).<init>();
      ((FileWriter)localObject2).write(paramView.getText().toString() + ":" + localEditText.getText().toString() + "n");
      ((FileWriter)localObject2).close();
      Toast.makeText(this, "3rd party credentials saved successfully!", 0).show();
      return;
    }

Java

可以看到使用Environment.getExternalStorageDirectory()来获取sd卡的目录,文件名为.unifo.txt

靶场攻略 | 网络安全靶场合集-编程之家

12

其他测试环境

1、Vulhub

Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。项目地址:

| https://vulhub.org/

使用文档:

| https://vulhub.org/#/docs/

当前涉及漏洞环境 200 个,Github 项目地址:

| https://github.com/vulhub/vulhub

靶场攻略 | 网络安全靶场合集-编程之家

2、VulApps

收集各种漏洞环境,为方便使用,统一采用 Dockerfile 形式。同时也收集了安全工具环境。

| 喜欢请点 Star,如果不打算贡献,千万别 Fork

本项目 GitHub 地址: https://github.com/Medicean/VulApps

DockerHub 在线镜像地址

http://vulapps.evalbug.com/

靶场攻略 | 网络安全靶场合集-编程之家

3、vulawdhub

https://github.com/0xs1riu5/vulawdhub

利用docker技术创建的有漏洞的cms环境集合

13

综合靶场环境

1、Metasploitable

它是一个虚拟靶机系统,里面含有大量未被修复的安全漏洞,它主要是用于metasploit-framework测试的漏洞目标。

安装

下载链接:https://github.com/rapid7/metasploitable3

导入Oracle VM VirtualBox虚拟机即可

2、VulnHub

Vulnhub 它是一个提供各种漏洞环境的平台,里面大部分的环境是要用 VMware 或者 VirtualBox 打开运行的。目前该项目已累计设计开发 700+ 靶场,官方网站:

| https://www.vulnhub.com/

靶场攻略 | 网络安全靶场合集-编程之家

3、Vulnstack

红蓝对抗,内网、域渗透最新靶场:地址:http://vulnstack.qiyuanxuetang.net/vuln/

下载靶机,导入虚拟机即可开始

靶场攻略 | 网络安全靶场合集-编程之家

4、Vulntarget

vulntarget靶场系列仅供安全专业人员练习渗透测试技术,此靶场所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用靶场中的技术资料对任何计算机系统进行入侵操作。利用此靶场所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。 vulntarget靶场系列拥有对此靶场系列的的修改、删除和解释权限,未经授权,不得用于其他!!!

vulntarget靶场是我们自行设计搭建的靶场,其中涵盖Web漏洞、主机漏洞、域漏洞、工控漏洞等等。

目前正在不断更新中。。。。。。

靶场下载

vulntrarget-a~vulntarget-f

百度云:链接: 链接: https://pan.baidu.com/s/1sv9qdioNF4PTUliix5HEfg 提取码: 2dwq

靶场攻略 | 网络安全靶场合集-编程之家

5、WebSploit Labs

https://websploit.org/

#安装
curl -sSL https://websploit.org/install.sh | sudo bash

#更新
wget https://websploit.org/update.sh
sudo bash update.sh

Bash

靶场攻略 | 网络安全靶场合集-编程之家

-END-

▎经典文章精选

安全攻防 | APP抓包大全

安全攻防 | frp内网穿透

安全攻防 | mysql安全问题及修复方式

安全攻防 | MSF生成Payload方式总结

安全攻防 | 浅谈ms17-010多种利用方式

安全攻防 | CobaltStrike与水坑攻击的联动

安全攻防 | 记一次sql注入到内网漫游

安全攻防 | 多种方式关闭讨厌的defender!

靶场攻略 | 网络安全靶场合集-编程之家

扫描下方 二维码 加入我们吧!