IAST测试靶场搭建

× 文章目录
  1. 1. 0x00 前言
  2. 2. 0x01 靶场选择
  3. 3. 0x02 靶场搭建
    1. 3.1. 2.1 JAVA 测试靶场
    2. 3.2. 2.2 PHP测试靶场
    3. 3.3. 2.3 脏数据测试

0x00 前言

测试用例的选择尽量贴近真实业务使用的场景,覆盖常见的高危漏洞,以及各类请求形式。用于测试IAST产品支持检测漏洞类型、检出率、脏数据插入等等

0x01 靶场选择

靶场 DVWA Openrasp-testcases
技术栈 PHP/MYSQL JAVA/PHP/MYSQL
支持漏洞类型 https://github.com/digininja/DVWA https://github.com/baidu-security/openrasp-testcases

考虑到公司使用的技术栈,这里选择了openrasp-testcases用于测试靶场

0x02 靶场搭建

环境:

1
2
3
4
5
6
7
Centos7.5
PHP7.3
JDK1.8
MYSQL5.6
APACHE2.4
TOMCAT8.5
MAVEN3.3

2.1 JAVA 测试靶场

mvn编译

启动tomcat

启动mysql

本地靶场:http://192.168.244.129:8080/manager/html

image.png

2.2 PHP测试靶场

启动apache

启动php

启动mysql

本地靶场

http://192.168.244.129/
image.png

2.3 脏数据测试

产生脏数据的原因大多是执行了 数据库的insert语句,这里使用java简单写一个demo用于测试脏数据

创建数据库

1
2
3
4
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
grant all privileges on test.* to 'test'@'%' identified by 'test';
grant all privileges on test.* to 'test'@'localhost' identified by 'test';
1
2
3
4
5
create table vuln (
-> `id` INT UNSIGNED AUTO_INCREMENT,
-> `name` VARCHAR(100) NOT NULL,
-> primary key(`id`)
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;

清空数据,重置ID

truncate table vuln;

MySQL服务器执行SQL记录实时监控,或者直接查询数据库

https://github.com/cw1997/MySQL-Monitor

执行sql语句

stmt.executeUpdate(“INSERT INTO vuln(name) VALUES (‘“+id+”‘)”);