Загрузка данных


Тест

@'
WHENEVER SQLERROR CONTINUE

ALTER USER SYSTEM IDENTIFIED BY oracle ACCOUNT UNLOCK;
ALTER USER SYS IDENTIFIED BY oracle ACCOUNT UNLOCK;

ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;

DECLARE
    v_count NUMBER := 0;
BEGIN
    BEGIN
        SELECT COUNT(*) INTO v_count
        FROM v$pdbs
        WHERE UPPER(name) = 'FREEPDB1'
          AND open_mode = 'READ WRITE';
    EXCEPTION
        WHEN OTHERS THEN
            v_count := 0;
    END;

    IF v_count > 0 THEN
        EXECUTE IMMEDIATE 'ALTER SESSION SET CONTAINER = FREEPDB1';
    END IF;
END;
/

ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;

ALTER USER SYSTEM IDENTIFIED BY oracle ACCOUNT UNLOCK;

BEGIN
    EXECUTE IMMEDIATE 'DROP USER CTF CASCADE';
EXCEPTION
    WHEN OTHERS THEN
        IF SQLCODE != -1918 THEN
            RAISE;
        END IF;
END;
/

BEGIN
    EXECUTE IMMEDIATE 'DROP USER COMPROMISED_USER CASCADE';
EXCEPTION
    WHEN OTHERS THEN
        IF SQLCODE != -1918 THEN
            RAISE;
        END IF;
END;
/

CREATE USER CTF IDENTIFIED BY ctf
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
ACCOUNT UNLOCK;

GRANT CREATE SESSION, CREATE TABLE TO CTF;
ALTER USER CTF QUOTA UNLIMITED ON USERS;

CREATE TABLE CTF.CTF_FLAG (
    FLAG_VALUE VARCHAR2(200)
);

INSERT INTO CTF.CTF_FLAG VALUES ('FLAG{DEMO_ORACLE_AGENT_OK}');
COMMIT;

CREATE USER COMPROMISED_USER IDENTIFIED BY compromised_user
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
ACCOUNT UNLOCK;

GRANT CREATE SESSION, CREATE TABLE TO COMPROMISED_USER;
ALTER USER COMPROMISED_USER QUOTA UNLIMITED ON USERS;

CREATE TABLE COMPROMISED_USER.CREDENTIALS (
    USERNAME_VALUE VARCHAR2(128),
    PASSWORD_VALUE VARCHAR2(128)
);

INSERT INTO COMPROMISED_USER.CREDENTIALS VALUES ('CTF_STUDENT', 'ctf_student');
COMMIT;

SELECT owner, table_name
FROM all_tables
WHERE owner IN ('CTF', 'COMPROMISED_USER')
ORDER BY owner, table_name;

SELECT * FROM CTF.CTF_FLAG;
SELECT * FROM COMPROMISED_USER.CREDENTIALS;

EXIT;
'@ | docker exec -i -u oracle brave_black bash -lc "sqlplus -s / as sysdba"; docker commit brave_black mtuci-oracle-ctf-ready:latest



ORACLE_HOST=127.0.0.1
ORACLE_PORT=1521
ORACLE_SERVICE=FREEPDB1
ORACLE_USER=system
ORACLE_PASSWORD=oracle
ORACLE_SYS_PASSWORD=oracle
ORACLE_DATAFILE_DIR=/opt/oracle/oradata/FREE/FREEPDB1