---
# System prepended metadata

title: 'Trabalho realizado na Semana #4'

---

# Trabalho realizado na Semana #4

## Índice
- [Tarefa semana #4](#tarefa-semana-#4)
    - [Task 1](#task-1)
    - [Task 2](#task-2)
    - [Task 3](#task-3)
    - [Task 4](#task-4)
    - [Task 5](#task-5)
    - [Task 6](#task-6)
- [CTF web Semana 4](#ctf-web-semana-4)

<br>
<br>

## Tarefa semana #4

### Task 1
#### Step 1
printenv
![](https://i.imgur.com/H9FNLsy.png" =300x)

env
![](https://i.imgur.com/q9vstZj.png =300x)

#### Step 2
![](https://i.imgur.com/kyOIVpN.png =300x)

<br>

### Task 2
![](https://i.imgur.com/07CPHyV.png =350x)

#### Step 1.
Imprimimos as variáveis ambientes do filho.

![](https://i.imgur.com/pfmWFqb.png =400x)

#### Step 2.
Imprimimos as variáveis ambientes do pai.

![](https://i.imgur.com/ulClSbD.png =400x)


#### Step 3: Conclusão.
São iguais, ou seja, o processo filho herda as variáveis de ambiente do processo pai. A única variável diferente é a do terminal do gnomo, mas tal deve-se ao facto de terem sido usadas duas janelas diferentes do terminal para correr o programa myprintenv.

![](https://i.imgur.com/jiT2zF2.png =400x)

<br>

### Task 3
#### Step 1.
Depois de executado o código, pôde-se verificar que o ficheiro resultante estava vazio, pelo que, não tinha variáveis de ambiente. Isto deve-se ao terceiro parâmetro da função `execve()` ser NULL.

#### Step 2.
Após a inserção de uma variavel não nula no terceiro parametro da função `execve()`, verificou-se então que o ficheiro resultante da execução do código já possuia as variáveis de ambiente.

![](https://i.imgur.com/tvxExPc.png =400x)

#### Step 3: Conclusão.
A função `execve()` necessita então que lhe sejam passadas a variáveis de ambiente como parâmtero na sua chamada.

<br>

### Task 4
![](https://i.imgur.com/E4Rk2V5.png)

<br>

### Task 5

O programa Set-UID herdou as alterações às variáveis de ambiente.


![](https://i.imgur.com/XiqLEHd.png)
![](https://i.imgur.com/HEZT0un.png)



### Task 6

Primeiramente, criamos um ficheiro executável chamado `ls` no nosso diretório. Depois, adicionamos esse diretório às variáveis de ambiente PATH. 
Desta forma, o processo Set-UID correu esse executável em vez do ls do sistema e, chamando a função `geteuid()`, que descobre o UID efetivo do processo corrente, descobrimos que o nosso executável `ls` estava a correr com *root privelege*.

![](https://i.imgur.com/tQAZdEY.png =300x)

![](https://i.imgur.com/8WACYWl.png =500x)


<br>
<br>

## CTF web Semana 4

### Desafio 1

Após explorar o site da loja que foi fornecido, descobrimos que só haveria 2 utilizadores: "admin" e "orval_sanford". Tentar recuperar a palavra-passe dos utilizadores não funcionou. Na descrição de um dos produtos estava mencionado a utilização do seguinte software:

|   |   |   
|---|---|
|  Wordpress  |  5.8.1 |  
|  WooCommerce plugin | 5.7.1 |  
|  Booster for WooCommerce plugin |  5.4.3 |   

Procurando vulnerabilidades e exploits associadas a este software que permitissem ganhar acesso à conta "admin" encontrámos a CVE-2021-34646 que afeta o plugin Booster for WooCommerce.



### Desafio 2

Encontrámos um exploit em [Exploit Database](https://www.exploit-db.com/exploits/50299) que permitiu encontrar o id interno associado à conta de admin no site e, com esse id, gerar um link de validação de conta/verificação de email que permite fazer login direto na conta de administrador. 

![](https://i.imgur.com/booBVu0.png)

Já com acesso, encontrámos um post privado com a flag que procurávamos.

![](https://i.imgur.com/H2Qw2Gm.png)

