v1.0
This commit is contained in:
parent
821d1b13d8
commit
483cd8452f
19
Dockerfile
Normal file
19
Dockerfile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM nginx:latest
|
||||||
|
|
||||||
|
COPY _files/ /tmp/_files/
|
||||||
|
|
||||||
|
RUN mv /tmp/_files/*.sh /docker-entrypoint.d/ \
|
||||||
|
&& chmod +x /docker-entrypoint.d/*.sh \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install --no-install-recommends -y \
|
||||||
|
mariadb-server php8.2-fpm sudo \
|
||||||
|
&& mv /tmp/_files/nginx.conf /etc/nginx/nginx.conf \
|
||||||
|
&& mv /tmp/_files/default.conf /etc/nginx/conf.d/default.conf \
|
||||||
|
&& mv /tmp/_files/php.ini /etc/php/8.2/fpm/php.ini \
|
||||||
|
&& mv /tmp/_files/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf \
|
||||||
|
&& mv /tmp/_files/src/ /usr/share/nginx/ \
|
||||||
|
&& chown -R www-data:www-data /usr/share/nginx/* \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /tmp/_files
|
||||||
|
|
||||||
|
EXPOSE 80
|
1
_files/40-phpfpm.sh
Normal file
1
_files/40-phpfpm.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
nohup /usr/sbin/php-fpm8.2 --nodaemonize --fpm-config /etc/php/8.2/fpm/php-fpm.conf > php-fpm.log 2>&1 &
|
2
_files/41-mariadbserver.sh
Normal file
2
_files/41-mariadbserver.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld
|
||||||
|
nohup sudo -u mysql mysqld > mysqld.log 2>&1 &
|
119
_files/50-server.cnf
Normal file
119
_files/50-server.cnf
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
#
|
||||||
|
# These groups are read by MariaDB server.
|
||||||
|
# Use it for options that only the server (but not clients) should see
|
||||||
|
|
||||||
|
# this is read by the standalone daemon and embedded servers
|
||||||
|
[server]
|
||||||
|
|
||||||
|
# this is only for the mysqld standalone daemon
|
||||||
|
[mysqld]
|
||||||
|
|
||||||
|
#
|
||||||
|
# * Basic Settings
|
||||||
|
#
|
||||||
|
|
||||||
|
#user = mysql
|
||||||
|
pid-file = /run/mysqld/mysqld.pid
|
||||||
|
basedir = /usr
|
||||||
|
#datadir = /var/lib/mysql
|
||||||
|
#tmpdir = /tmp
|
||||||
|
|
||||||
|
# Broken reverse DNS slows down connections considerably and name resolve is
|
||||||
|
# safe to skip if there are no "host by domain name" access grants
|
||||||
|
#skip-name-resolve
|
||||||
|
|
||||||
|
# Instead of skip-networking the default is now to listen only on
|
||||||
|
# localhost which is more compatible and is not less secure.
|
||||||
|
bind-address = 127.0.0.1
|
||||||
|
|
||||||
|
#
|
||||||
|
# * Fine Tuning
|
||||||
|
#
|
||||||
|
|
||||||
|
#key_buffer_size = 128M
|
||||||
|
#max_allowed_packet = 1G
|
||||||
|
#thread_stack = 192K
|
||||||
|
#thread_cache_size = 8
|
||||||
|
# This replaces the startup script and checks MyISAM tables if needed
|
||||||
|
# the first time they are touched
|
||||||
|
#myisam_recover_options = BACKUP
|
||||||
|
#max_connections = 100
|
||||||
|
#table_cache = 64
|
||||||
|
|
||||||
|
#
|
||||||
|
# * Logging and Replication
|
||||||
|
#
|
||||||
|
|
||||||
|
# Note: The configured log file or its directory need to be created
|
||||||
|
# and be writable by the mysql user, e.g.:
|
||||||
|
# $ sudo mkdir -m 2750 /var/log/mysql
|
||||||
|
# $ sudo chown mysql /var/log/mysql
|
||||||
|
|
||||||
|
# Both location gets rotated by the cronjob.
|
||||||
|
# Be aware that this log type is a performance killer.
|
||||||
|
# Recommend only changing this at runtime for short testing periods if needed!
|
||||||
|
#general_log_file = /var/log/mysql/mysql.log
|
||||||
|
#general_log = 1
|
||||||
|
|
||||||
|
# When running under systemd, error logging goes via stdout/stderr to journald
|
||||||
|
# and when running legacy init error logging goes to syslog due to
|
||||||
|
# /etc/mysql/conf.d/mariadb.conf.d/50-mysqld_safe.cnf
|
||||||
|
# Enable this if you want to have error logging into a separate file
|
||||||
|
#log_error = /var/log/mysql/error.log
|
||||||
|
# Enable the slow query log to see queries with especially long duration
|
||||||
|
#log_slow_query_file = /var/log/mysql/mariadb-slow.log
|
||||||
|
#log_slow_query_time = 10
|
||||||
|
#log_slow_verbosity = query_plan,explain
|
||||||
|
#log-queries-not-using-indexes
|
||||||
|
#log_slow_min_examined_row_limit = 1000
|
||||||
|
|
||||||
|
# The following can be used as easy to replay backup logs or for replication.
|
||||||
|
# note: if you are setting up a replication slave, see README.Debian about
|
||||||
|
# other settings you may need to change.
|
||||||
|
#server-id = 1
|
||||||
|
#log_bin = /var/log/mysql/mysql-bin.log
|
||||||
|
expire_logs_days = 10
|
||||||
|
#max_binlog_size = 100M
|
||||||
|
|
||||||
|
#
|
||||||
|
# * SSL/TLS
|
||||||
|
#
|
||||||
|
|
||||||
|
# For documentation, please read
|
||||||
|
# https://mariadb.com/kb/en/securing-connections-for-client-and-server/
|
||||||
|
#ssl-ca = /etc/mysql/cacert.pem
|
||||||
|
#ssl-cert = /etc/mysql/server-cert.pem
|
||||||
|
#ssl-key = /etc/mysql/server-key.pem
|
||||||
|
#require-secure-transport = on
|
||||||
|
|
||||||
|
#
|
||||||
|
# * Character sets
|
||||||
|
#
|
||||||
|
|
||||||
|
# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
|
||||||
|
# utf8 4-byte character set. See also client.cnf
|
||||||
|
character-set-server = utf8mb4
|
||||||
|
collation-server = utf8mb4_general_ci
|
||||||
|
|
||||||
|
#
|
||||||
|
# * InnoDB
|
||||||
|
#
|
||||||
|
|
||||||
|
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
|
||||||
|
# Read the manual for more InnoDB related options. There are many!
|
||||||
|
# Most important is to give InnoDB 80 % of the system RAM for buffer use:
|
||||||
|
# https://mariadb.com/kb/en/innodb-system-variables/#innodb_buffer_pool_size
|
||||||
|
#innodb_buffer_pool_size = 8G
|
||||||
|
|
||||||
|
# this is only for embedded server
|
||||||
|
[embedded]
|
||||||
|
|
||||||
|
# This group is only read by MariaDB servers, not by MySQL.
|
||||||
|
# If you use the same .cnf file for MySQL and MariaDB,
|
||||||
|
# you can put MariaDB-only options here
|
||||||
|
[mariadb]
|
||||||
|
|
||||||
|
# This group is only read by MariaDB-10.11 servers.
|
||||||
|
# If you use the same .cnf file for MariaDB of different versions,
|
||||||
|
# use this group for options that older servers don't understand
|
||||||
|
[mariadb-10.11]
|
44
_files/default.conf
Normal file
44
_files/default.conf
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/host.access.log main;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/src;
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
# error_page 404 /404.html;
|
||||||
|
|
||||||
|
# redirect server error pages to the static page /50x.html
|
||||||
|
#
|
||||||
|
# error_page 500 502 503 504 /50x.html;
|
||||||
|
# location = /50x.html {
|
||||||
|
# root /usr/share/nginx/html;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# proxy_pass http://127.0.0.1;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
|
||||||
|
#
|
||||||
|
location ~ \.php$ {
|
||||||
|
root /usr/share/nginx/src;
|
||||||
|
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
# deny access to .htaccess files, if Apache's document root
|
||||||
|
# concurs with nginx's one
|
||||||
|
#
|
||||||
|
location ~ /\.ht {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
6
_files/flag.sh
Normal file
6
_files/flag.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
echo $GZCTF_FLAG > /usr/share/nginx/src/flag
|
||||||
|
|
||||||
|
unset GZCTF_FLAG
|
||||||
|
export GZCTF_FLAG=flag{fake_flag}
|
||||||
|
GZCTF_FLAG=flag{fake_flag}
|
32
_files/nginx.conf
Normal file
32
_files/nginx.conf
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
user www-data;
|
||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
error_log /var/log/nginx/error.log notice;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
#tcp_nopush on;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
#gzip on;
|
||||||
|
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
}
|
1977
_files/php.ini
Normal file
1977
_files/php.ini
Normal file
File diff suppressed because it is too large
Load Diff
6
_files/src/index.php
Normal file
6
_files/src/index.php
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
phpinfo();
|
||||||
|
echo "<!--";
|
||||||
|
system("cat flag");
|
||||||
|
echo "-->";
|
||||||
|
?>
|
Loading…
x
Reference in New Issue
Block a user