from typing import Optional


def get_intersection(box1: list,
                     box2: list) -> Optional[tuple]:
    """
    Get intersection of the two boxes.

    :param box1: First box.
    :param box2: Second box.
    :return: Intersection box or None if no intersection.
    """
    # Unpack coordinates
    x1, y1, x2, y2 = box1
    x3, y3, x4, y4 = box2

    # Get "new" coordinates
    x2 += x1
    y2 += y1
    x4 += x3
    y4 += y3
    x5 = max(x1, x3)
    y5 = max(y1, y3)
    x6 = min(x2, x4)
    y6 = min(y2, y4)
    if x5 > x6 or y5 > y6:
        return
    return x5, y5, x6 - x5, y6 - y5