Loading .gitlab-ci.yml +2 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ style: - wget https://sre18.pages.rechenknecht.net/misc/pylintrc -O .pylintrc - pip3 install -r requirements.txt - pip3 install pylint - pylint run.py tests - pylint run.py tests util groupA: stage: test Loading @@ -21,7 +21,7 @@ groupA: - docker:dind script: - dockerfiles/A/build.sh - python3 run.py testing.marschke.me 9001 smtp-server-group-a 6666 - python3 run.py testing.marschke.me 9001 sre18groupa/smtp-server-group-a 6666 allow_failure: true groupB: Loading dockerfiles/A/build.sh +1 −2 Original line number Diff line number Diff line Loading @@ -2,8 +2,7 @@ set -e curl https://sre18.pages.rechenknecht.net/smtp-server/pack/Dockerfile > Dockerfile docker build --no-cache --tag smtp-server-group-a . docker pull sre18groupa/smtp-server-group-a #mkdir -p /tmp/localMailbox #docker run --rm -v /tmp/localMailbox:/usr/src/app/mailbox -e HOST_NAME='marschke.me' -p 8001:6666 smtp-server-group-a dockerfiles/A/run.sh +1 −1 Original line number Diff line number Diff line #!/usr/bin/env bash docker run -it --rm -e HOST_NAME='marschke.me' -p 8001:6666 smtp-server-group-a docker run -it --rm -e HOST_NAME='marschke.me' -p 8001:6666 sre18groupa/smtp-server-group-a run.py +5 −3 Original line number Diff line number Diff line Loading @@ -2,7 +2,8 @@ import argparse import sys import unittest from tests.TestConnection import TestConnection, TestServer from tests import TestFuzzing, TestMail, TestSession from util import TestServer def main(): Loading @@ -23,9 +24,10 @@ def main(): test_server = None try: test_server = TestServer(args.domain, args.port, args.docker_template, args.docker_port, args.ssl, args.wait_up) for method in dir(TestConnection): for clazz in [TestFuzzing, TestMail, TestSession]: for method in dir(clazz): if method[:5] == 'test_': suite.addTest(TestConnection(test_server, method)) suite.addTest(clazz(test_server, method)) test_results = unittest.TextTestRunner(verbosity=2).run(suite) finally: if test_server: Loading tests/TestFuzzing.py 0 → 100644 +41 −0 Original line number Diff line number Diff line import socket import random from util import BaseTest class TestFuzzing(BaseTest): def test_chaos(self): possible_commands = [ 'HELO', 'EHLO', 'MAIL', 'RCPT', 'DATA', '\r\n.', 'RSET', 'NOOP', 'VRFY', '' ] random.seed(42) for _ in range(0, 1337): command = random.choice(possible_commands)+' ' command += ''.join(chr(random.randint(1, 127)) for x in range(random.randint(0, 127))) command += '\r\n' self.client.send(command.encode('ASCII')) while True: try: self.client.recv(1) except socket.timeout: break self.assertResponse(500, 'FAIL\r\n') def test_fuzzing(self): random.seed(42) self.assertResponse(500, 'FAIL\r\n') def test_sentry_issue_49(self): self.assertResponse(500, b'\xff\xf4\xff\xfd\x06' + "\r\n".encode('ASCII')) Loading
.gitlab-ci.yml +2 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ style: - wget https://sre18.pages.rechenknecht.net/misc/pylintrc -O .pylintrc - pip3 install -r requirements.txt - pip3 install pylint - pylint run.py tests - pylint run.py tests util groupA: stage: test Loading @@ -21,7 +21,7 @@ groupA: - docker:dind script: - dockerfiles/A/build.sh - python3 run.py testing.marschke.me 9001 smtp-server-group-a 6666 - python3 run.py testing.marschke.me 9001 sre18groupa/smtp-server-group-a 6666 allow_failure: true groupB: Loading
dockerfiles/A/build.sh +1 −2 Original line number Diff line number Diff line Loading @@ -2,8 +2,7 @@ set -e curl https://sre18.pages.rechenknecht.net/smtp-server/pack/Dockerfile > Dockerfile docker build --no-cache --tag smtp-server-group-a . docker pull sre18groupa/smtp-server-group-a #mkdir -p /tmp/localMailbox #docker run --rm -v /tmp/localMailbox:/usr/src/app/mailbox -e HOST_NAME='marschke.me' -p 8001:6666 smtp-server-group-a
dockerfiles/A/run.sh +1 −1 Original line number Diff line number Diff line #!/usr/bin/env bash docker run -it --rm -e HOST_NAME='marschke.me' -p 8001:6666 smtp-server-group-a docker run -it --rm -e HOST_NAME='marschke.me' -p 8001:6666 sre18groupa/smtp-server-group-a
run.py +5 −3 Original line number Diff line number Diff line Loading @@ -2,7 +2,8 @@ import argparse import sys import unittest from tests.TestConnection import TestConnection, TestServer from tests import TestFuzzing, TestMail, TestSession from util import TestServer def main(): Loading @@ -23,9 +24,10 @@ def main(): test_server = None try: test_server = TestServer(args.domain, args.port, args.docker_template, args.docker_port, args.ssl, args.wait_up) for method in dir(TestConnection): for clazz in [TestFuzzing, TestMail, TestSession]: for method in dir(clazz): if method[:5] == 'test_': suite.addTest(TestConnection(test_server, method)) suite.addTest(clazz(test_server, method)) test_results = unittest.TextTestRunner(verbosity=2).run(suite) finally: if test_server: Loading
tests/TestFuzzing.py 0 → 100644 +41 −0 Original line number Diff line number Diff line import socket import random from util import BaseTest class TestFuzzing(BaseTest): def test_chaos(self): possible_commands = [ 'HELO', 'EHLO', 'MAIL', 'RCPT', 'DATA', '\r\n.', 'RSET', 'NOOP', 'VRFY', '' ] random.seed(42) for _ in range(0, 1337): command = random.choice(possible_commands)+' ' command += ''.join(chr(random.randint(1, 127)) for x in range(random.randint(0, 127))) command += '\r\n' self.client.send(command.encode('ASCII')) while True: try: self.client.recv(1) except socket.timeout: break self.assertResponse(500, 'FAIL\r\n') def test_fuzzing(self): random.seed(42) self.assertResponse(500, 'FAIL\r\n') def test_sentry_issue_49(self): self.assertResponse(500, b'\xff\xf4\xff\xfd\x06' + "\r\n".encode('ASCII'))