├── back-end
├── CSRF
│ ├── manage
│ │ ├── Dockerfile
│ │ ├── style.css
│ │ ├── index.html
│ │ ├── addAdminUser.php
│ │ ├── main.php
│ │ ├── login.php
│ │ └── utils.php
│ ├── mysql
│ │ ├── Dockerfile
│ │ └── sql-scripts
│ │ │ ├── InsertData.sql
│ │ │ └── CreateTable.sql
│ ├── variables.env
│ ├── hacker_web
│ │ ├── iframe.html
│ │ └── index.html
│ ├── README.md
│ └── docker-compose.yml
├── JSON Hijacking
│ ├── web
│ │ ├── Dockerfile
│ │ ├── json.php
│ │ ├── style.css
│ │ ├── index.html
│ │ ├── main.php
│ │ ├── login.php
│ │ └── utils.php
│ ├── mysql
│ │ ├── Dockerfile
│ │ └── sql-scripts
│ │ │ ├── CreateTable.sql
│ │ │ └── InsertData.sql
│ ├── variables.env
│ ├── hacker_web
│ │ ├── record_info.php
│ │ └── index.html
│ ├── README.md
│ └── docker-compose.yml
├── XSS
│ ├── persistent
│ │ ├── server
│ │ │ ├── Dockerfile
│ │ │ ├── getContent.php
│ │ │ └── postContent.php
│ │ ├── mysql
│ │ │ ├── sql-scripts
│ │ │ │ ├── InsertData.sql
│ │ │ │ └── CreateTable.sql
│ │ │ └── Dockerfile
│ │ ├── variables.env
│ │ ├── client
│ │ │ ├── style.css
│ │ │ ├── index.html
│ │ │ ├── js.js
│ │ │ └── jquery-3.4.1.min.js
│ │ ├── README.md
│ │ └── docker-compose.yml
│ └── non-persistent
│ │ ├── docker-compose.yml
│ │ ├── README.md
│ │ └── src
│ │ └── index.php
└── SSRF
│ ├── outer_web
│ ├── style.css
│ ├── index.js
│ └── index.php
│ ├── inner_web
│ └── index.html
│ ├── docker-compose.yml
│ └── README.md
├── front-end
└── XSS
│ └── DOM-XSS
│ ├── docker-compose.yml
│ ├── README.md
│ └── src
│ └── index.html
└── README.md
/back-end/CSRF/manage/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:7.2-apache
2 |
3 | RUN docker-php-ext-install mysqli
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/web/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:7.2-apache
2 |
3 | RUN docker-php-ext-install mysqli
--------------------------------------------------------------------------------
/back-end/XSS/persistent/server/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:7.2-apache
2 |
3 | RUN docker-php-ext-install mysqli
--------------------------------------------------------------------------------
/back-end/CSRF/mysql/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM mysql:5.7
2 |
3 | COPY ./sql-scripts/ /docker-entrypoint-initdb.d/
4 |
5 | EXPOSE 3306
--------------------------------------------------------------------------------
/back-end/CSRF/mysql/sql-scripts/InsertData.sql:
--------------------------------------------------------------------------------
1 | INSERT INTO csrf.admin (username, password) VALUES ('root', md5('000000'));
--------------------------------------------------------------------------------
/back-end/CSRF/variables.env:
--------------------------------------------------------------------------------
1 | MYSQL_USER=csrf
2 | MYSQL_PASSWORD=toor
3 | MYSQL_RANDOM_ROOT_PASSWORD=yes
4 | MYSQL_DATABASE=csrf
--------------------------------------------------------------------------------
/back-end/XSS/persistent/mysql/sql-scripts/InsertData.sql:
--------------------------------------------------------------------------------
1 | INSERT INTO xss.message (content, ip) VALUES ('我是第一条评论', '127.0.0.1');
--------------------------------------------------------------------------------
/back-end/CSRF/mysql/sql-scripts/CreateTable.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE admin (
2 | username varchar(30),
3 | password varchar(35)
4 | );
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/mysql/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM mysql:5.7
2 |
3 | COPY ./sql-scripts/ /docker-entrypoint-initdb.d/
4 |
5 | EXPOSE 3306
--------------------------------------------------------------------------------
/back-end/XSS/persistent/mysql/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM mysql:5.7
2 |
3 | COPY ./sql-scripts/ /docker-entrypoint-initdb.d/
4 |
5 | EXPOSE 3306
--------------------------------------------------------------------------------
/back-end/XSS/persistent/variables.env:
--------------------------------------------------------------------------------
1 | MYSQL_USER=xss
2 | MYSQL_PASSWORD=toor
3 | MYSQL_RANDOM_ROOT_PASSWORD=yes
4 | MYSQL_DATABASE=xss
--------------------------------------------------------------------------------
/back-end/XSS/persistent/mysql/sql-scripts/CreateTable.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE message (
2 | content varchar(255),
3 | ip varchar(100)
4 | );
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/variables.env:
--------------------------------------------------------------------------------
1 | MYSQL_USER=json_hijacking
2 | MYSQL_PASSWORD=toor
3 | MYSQL_RANDOM_ROOT_PASSWORD=yes
4 | MYSQL_DATABASE=json_hijacking
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/mysql/sql-scripts/CreateTable.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE user (
2 | username varchar(30),
3 | password varchar(35),
4 | balance int(10)
5 | );
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/mysql/sql-scripts/InsertData.sql:
--------------------------------------------------------------------------------
1 | INSERT INTO json_hijacking.user (username, password, balance) VALUES ('Black-Hole', md5('000000'), 2000), ('william', md5('000000'), 3000);
--------------------------------------------------------------------------------
/back-end/SSRF/outer_web/style.css:
--------------------------------------------------------------------------------
1 | input {
2 | width: 300;
3 | }
4 |
5 | button {
6 | margin-bottom: 10px;
7 | }
8 |
9 | textarea {
10 | display: block;
11 | width: 800px;
12 | height: 700px;
13 | }
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/hacker_web/record_info.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/back-end/SSRF/outer_web/index.js:
--------------------------------------------------------------------------------
1 | // 根据url动态拼接url
2 | function seeCode() {
3 | const url = document.getElementsByTagName('input')[0].value;
4 | location.href = location.origin + location.pathname + '?url=' + url
5 | }
--------------------------------------------------------------------------------
/front-end/XSS/DOM-XSS/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | web:
4 | image: httpd:2.4
5 | container_name: front-end-xss-dom-xss
6 | ports:
7 | - "8081:80"
8 | volumes:
9 | - ./src:/usr/local/apache2/htdocs/
--------------------------------------------------------------------------------
/back-end/XSS/non-persistent/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | web:
4 | image: php:7.2-apache
5 | container_name: back-end-xss-non-persistent
6 | ports:
7 | - "8082:80"
8 | volumes:
9 | - ./src:/var/www/html/
--------------------------------------------------------------------------------
/back-end/SSRF/inner_web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SSRF - 内网海洋中的一只网站
5 |
6 |
7 | 我是存在于内网的一只小可爱
8 | 小提示:外网是访问不了我的哦
9 |
10 |
--------------------------------------------------------------------------------
/front-end/XSS/DOM-XSS/README.md:
--------------------------------------------------------------------------------
1 | ### DOM XSS
2 |
3 | 启动命令:
4 |
5 | ```shell
6 | cd ./front-end/XSS/DOM-XSS
7 | docker-compose up --force-recreate
8 | ```
9 |
10 | 打开浏览器,访问: [http://127.0.0.1:8081](http://127.0.0.1:8081)
11 |
12 | 尝试把url改为下面这样:
13 | * `http://127.0.0.1:8081/#javascript:alert(1)`
14 |
--------------------------------------------------------------------------------
/back-end/XSS/non-persistent/README.md:
--------------------------------------------------------------------------------
1 | ### 反射型XSS
2 |
3 | 启动命令:
4 |
5 | ```shell
6 | cd ./back-end/XSS/non-persistent
7 | docker-compose up --force-recreate
8 | ```
9 |
10 | 打开浏览器,访问: [http://127.0.0.1:8082](http://127.0.0.1:8082)
11 |
12 | 尝试把url改为下面这样:
13 | * `http://127.0.0.1:8082/?bg=123' onclick='alert(1)`
14 |
--------------------------------------------------------------------------------
/back-end/CSRF/hacker_web/iframe.html:
--------------------------------------------------------------------------------
1 |
6 |
7 |
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/web/json.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/back-end/XSS/persistent/client/style.css:
--------------------------------------------------------------------------------
1 | .message-item {
2 | border-bottom: 1px solid black;
3 | }
4 |
5 | .message-item:last-child {
6 | margin-bottom: 40px;
7 | }
8 |
9 | .message-item:not(:first-child) {
10 | margin-top: 20px;
11 | }
12 |
13 | .message-item > .content {
14 | display: block;
15 | }
16 |
17 | textarea {
18 | display: block;
19 | width: 300px;
20 | height: 100px;
21 | }
--------------------------------------------------------------------------------
/back-end/CSRF/hacker_web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | CSRF - Hacked!
5 |
6 |
7 | 当你打开这个网站的时候,就说明你已经被攻击了。
8 |
9 | 去尝试 http://127.0.0.1:8086/ 里使用账号: test 密码: 123 登陆吧
10 |
11 |
--------------------------------------------------------------------------------
/back-end/JSON Hijacking/README.md:
--------------------------------------------------------------------------------
1 | ### CSRF
2 |
3 | 启动命令:
4 |
5 | ```shell
6 | cd ./back-end/JSON\ Hijacking
7 | docker-compose up --build --force-recreate
8 | ```
9 |
10 | 打开浏览器,访问: [http://127.0.0.1:8089](http://127.0.0.1:8089)
11 |
12 | 使用账号 `william` 和密码 `000000` 进行登陆。
13 |
14 | 登陆成功后,再打开 [http://127.0.0.1:8088](http://127.0.0.1:8088)
15 |
16 | 现在去看看 `./back-end/JSON\ Hijacking/hacker_web/info.txt` 文件里的内容吧
--------------------------------------------------------------------------------
/front-end/XSS/DOM-XSS/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | DOM XSS
5 |
6 |
7 | 嘿,来尝试弹窗吧。
8 | Tips: 更改锚点时,记得手动刷新当前网页(因为锚点的改动默认不会刷新网页)
9 |
10 |
16 |
--------------------------------------------------------------------------------
/back-end/XSS/persistent/README.md:
--------------------------------------------------------------------------------
1 | ### 存储型XSS
2 |
3 | 启动命令:
4 |
5 | ```shell
6 | cd ./back-end/XSS/persistent
7 | docker-compose up --build --force-recreate
8 | ```
9 |
10 | 打开浏览器,访问: [http://127.0.0.1:8083](http://127.0.0.1:8083)
11 |
12 | 现在尝试在输入框里输入下面任意一行内容:
13 | * ``
14 | * `