Commit a5cda26b authored by Pawel Boening's avatar Pawel Boening
Browse files

merge master

parents 40796625 3933f2e2
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
@@ -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:
+1 −2
Original line number Diff line number Diff line
@@ -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
+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
+5 −3
Original line number Diff line number Diff line
@@ -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():
@@ -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:

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