<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
The `--dump` option in SQLMap can be used to retrieve data from the database. This option allows you to extract the contents of tables and columns in the database.
To use the `--dump` option, you need to specify the target URL and the vulnerable parameter. SQLMap will then automatically detect the type of database and perform the necessary queries to retrieve the data.
Here is an example command to use the `--dump` option:
This command will scan the URL `http://example.com/vulnerable.php?id=1` for SQL injection vulnerabilities and retrieve the data from the database.
Once the scan is complete, SQLMap will display the extracted data in a tabular format, showing the contents of each table and column.
It is important to note that using the `--dump` option can be time-consuming, especially if the database contains a large amount of data. Therefore, it is recommended to use this option selectively and only when necessary.
By using the `--dump` option in SQLMap, you can easily retrieve data from a vulnerable database during a penetration test.
Uingizaji wa Ombi la GET ni mbinu ya kuingiza msimbo mbaya au maingizo mengine yasiyofaa katika sehemu ya ombi la GET ya URL. Hii inaweza kusababisha shambulio la SQL Injection ambapo msimbo mbaya unaweza kutekelezwa kwenye seva ya mtandao.
### Vulnerability
Mara nyingi, maingizo ya mtumiaji katika sehemu ya ombi la GET hayasafishwi vizuri kabla ya kutumika kwenye msimbo wa SQL. Hii inaweza kusababisha shambulio la SQL Injection ambapo msimbo mbaya unaweza kutekelezwa na kudhibitiwa na mtu mwingine.
### Exploitation
Kwa kufanya uingizaji wa ombi la GET, mtu anaweza kuingiza msimbo mbaya kwenye sehemu ya ombi la GET ya URL. Hii inaweza kufanyika kwa kuongeza maingizo yasiyofaa kama vile herufi maalum, alama za kufungua na kufunga, au maingizo ya SQL.
Hii inaweza kusababisha shambulio la SQL Injection ambapo msimbo mbaya unatekelezwa na kudhibitiwa na mtu mwingine.
### Prevention
Ili kuzuia shambulio la SQL Injection kupitia uingizaji wa ombi la GET, ni muhimu kusafisha maingizo ya mtumiaji kabla ya kutumika kwenye msimbo wa SQL. Hii inaweza kufanyika kwa kutumia njia za kusafisha maingizo kama vile kufanya ufuatiliaji wa maingizo, kufunga alama za kufungua na kufunga, na kutumia vigezo vya maingizo ya mtumiaji.
### Example
Kwa mfano, ikiwa tuna URL ifuatayo:
```
https://www.example.com/page?param=value
```
Tunaweza kusafisha maingizo ya mtumiaji kwa kutumia kazi ya kusafisha ya SQL kabla ya kutumia maingizo hayo kwenye msimbo wa SQL. Hii inaweza kufanyika kwa kutumia kificho kama hiki:
```python
import urllib.parse
param = urllib.parse.quote(param)
```
Hii itasafisha maingizo ya mtumiaji na kuhakikisha kuwa msimbo mbaya hautatekelezwa kwenye msimbo wa SQL.
SQLMap ni chombo cha nguvu kinachotumiwa kwa uchunguzi wa usalama wa mtandao na uchambuzi wa udhaifu. Inaweza kutumika kwa uingizaji wa SQL kwenye ombi la POST. Kwa kufanya hivyo, unahitaji kufuata hatua zifuatazo:
## Uingizaji katika Vichwa na Njia nyingine za HTTP
### Introduction
Injections in headers and other HTTP methods are another common type of attack that can be exploited by hackers. These attacks involve manipulating the headers or other HTTP methods to inject malicious code or commands into the target system.
### SQL Injection in Headers
SQL injection in headers occurs when an attacker injects malicious SQL code into the headers of an HTTP request. This can be done by manipulating the values of the headers to include SQL statements that can be executed by the target system's database.
To detect and exploit SQL injection in headers, you can use tools like SQLMap. SQLMap is a powerful tool that automates the process of detecting and exploiting SQL injection vulnerabilities.
To use SQLMap for detecting SQL injection in headers, you can use the following command:
Apart from headers, other HTTP methods like GET, POST, PUT, DELETE, etc. can also be vulnerable to injection attacks. These attacks involve manipulating the parameters or data sent in the HTTP requests to inject malicious code or commands.
To detect and exploit injection vulnerabilities in other HTTP methods, you can use similar techniques as SQL injection in headers. Tools like SQLMap can be used to automate the process and make it easier to identify and exploit these vulnerabilities.
### Conclusion
Injections in headers and other HTTP methods are common attack vectors that hackers can exploit to gain unauthorized access to a target system. By understanding these techniques and using tools like SQLMap, you can better protect your systems from such attacks.
Uingizaji wa Pili wa Aina ya Pili (Second Order Injection) ni mbinu ya uingizaji wa SQL ambapo mchakato wa kuingiza kificho cha SQL hufanyika katika hatua ya pili ya utekelezaji, badala ya hatua ya kwanza. Hii inaweza kutokea wakati data iliyosanikishwa katika database inatumika kama sehemu ya swali la SQL lingine.
Mara nyingi, mchakato wa uingizaji wa pili wa aina ya pili hufanyika wakati data iliyosanikishwa katika database inatumika katika swali la SQL lingine ambalo halijasanikishwa vizuri. Hii inaweza kutokea ikiwa programu inatumia mchanganyiko wa maandishi yaliyosanikishwa na maandishi yasiyosanikishwa katika swali la SQL.
- Kutekeleza amri za mfumo kwenye seva ya database
### Ulinzi
Ili kujilinda dhidi ya uingizaji wa pili wa aina ya pili, ni muhimu kuzingatia kanuni za usalama wa maendeleo ya programu, kama vile:
- Kuepuka kutumia data iliyosanikishwa moja kwa moja katika swali la SQL
- Kufanya uhakiki wa kina wa data kabla ya kuitumia katika swali la SQL
- Kutumia vigezo vya swali la SQL (parameterized queries) badala ya kujenga swali la SQL kwa kutumia mchanganyiko wa maandishi yaliyosanikishwa na yasiyosanikishwa
### Zana za Uchunguzi
Kuna zana mbalimbali za uchunguzi ambazo zinaweza kutumiwa kugundua na kuchunguza uingizaji wa pili wa aina ya pili, kama vile:
- SQLMap: Zana ya nguvu ya uchunguzi wa uingizaji wa SQL ambayo inaweza kutambua na kuchexploit uingizaji wa pili wa aina ya pili.
SQLMap ni chombo cha nguvu kinachotumiwa katika uchunguzi wa kuingilia kati kwenye wavuti. Inaweza kutambua na kuchunguza mashambulizi ya SQL Injection kwenye tovuti na kutoa ufikiaji wa kudhibitiwa kwa mfumo wa udhibiti wa database.
Ambapo `<URL>` ni URL ya wavuti unayotaka kuchunguza.
#### Kuchunguza SQL Injection
SQLMap ina uwezo wa kugundua mashambulizi ya SQL Injection kwenye wavuti. Unaweza kutumia chaguo `-u` kufafanua URL ya wavuti na chaguo `-p` kufafanua parameter ya wavuti inayoshambuliwa.
```bash
sqlmap -u <URL> -p <PARAMETER> [OPTIONS]
```
#### Kufanya Mashambulizi ya SQL Injection
SQLMap inaweza kufanya mashambulizi ya SQL Injection kwenye wavuti. Unaweza kutumia chaguo `-u` kufafanua URL ya wavuti na chaguo `-p` kufafanua parameter ya wavuti inayoshambuliwa.
SQLMap inaweza kutambua na kudhibiti database ya wavuti iliyoshambuliwa. Unaweza kutumia chaguo `-u` kufafanua URL ya wavuti na chaguo `-p` kufafanua parameter ya wavuti inayoshambuliwa.
SQLMap inaweza kutambua na kudhibiti meza za database ya wavuti iliyoshambuliwa. Unaweza kutumia chaguo `-u` kufafanua URL ya wavuti na chaguo `-p` kufafanua parameter ya wavuti inayoshambuliwa.
```bash
sqlmap -u <URL> -p <PARAMETER> --tables [OPTIONS]
```
#### Kuchunguza na Kudhibiti Columns
SQLMap inaweza kutambua na kudhibiti nguzo za meza za database ya wavuti iliyoshambuliwa. Unaweza kutumia chaguo `-u` kufafanua URL ya wavuti, chaguo `-p` kufafanua parameter ya wavuti inayoshambuliwa, na chaguo `--tables` kufafanua jina la meza.
SQLMap inaweza kutambua na kudhibiti data katika meza za database ya wavuti iliyoshambuliwa. Unaweza kutumia chaguo `-u` kufafanua URL ya wavuti, chaguo `-p` kufafanua parameter ya wavuti inayoshambuliwa, chaguo `--tables` kufafanua jina la meza, na chaguo `--columns` kufafanua jina la nguzo.
SQLMap inaweza kutumika kufanya mashambulizi ya kupenya kwenye wavuti iliyoshambuliwa. Unaweza kutumia chaguo `-u` kufafanua URL ya wavuti, chaguo `-p` kufafanua parameter ya wavuti inayoshambuliwa, chaguo `--os-shell` kufafanua aina ya kifaa cha kuingia, na chaguo `--os-pwn` kufafanua njia ya kudhibiti kifaa cha kuingia.
This command will scan the target URL for SQL injection vulnerabilities and crawl the website to discover additional pages.
3.**Analyze the results**: Once the scan is complete, analyze the results provided by SQLmap. Look for any identified vulnerabilities and potential injection points.
4.**Exploit the vulnerabilities**: Use SQLmap to automatically exploit the identified vulnerabilities. Run the following command:
```
sqlmap -u <target_url> --exploit-all
```
This command will automatically exploit all the identified vulnerabilities on the target website.
5.**Review the findings**: After the exploitation process is complete, review the findings provided by SQLmap. This includes any extracted data, database information, and potential access to sensitive information.
By following these steps, you can effectively crawl a website using SQLmap and automatically exploit any SQL injection vulnerabilities that are discovered.
Unapotumia sqlmap, unaweza kuweka kiambishi cha nyuma kwa kuingiza `-s` au `--suffix` kwenye amri. Kiambishi cha nyuma ni kipande cha maandishi kinachowekwa mwishoni mwa kila hoja ya SQL inayotumwa na sqlmap. Hii inaweza kuwa muhimu wakati unajaribu kubadilisha sintaksia ya hoja ya SQL ili kufanikisha mashambulizi ya uingizaji.
Boolean injection ni mbinu ya kuingiza maagizo ya SQL kwa kutumia hoja za mantiki za boolean. Kwa kufanya hivyo, tunaweza kuchunguza na kuchunguza udhaifu wa SQL Injection katika programu za wavuti.
### Kugundua Udhaifu wa Boolean Injection
Kuna njia kadhaa za kugundua udhaifu wa boolean injection. Hapa kuna njia mbili maarufu:
1.**Kutumia kifaa cha kugundua SQL Injection**: Unaweza kutumia zana kama `sqlmap` ili kugundua moja kwa moja udhaifu wa boolean injection. Zana hii itajaribu aina tofauti za hoja za mantiki na kuchunguza ikiwa kuna majibu yanayotofautiana. Ikiwa kuna majibu yanayotofautiana, inaweza kuashiria uwepo wa udhaifu wa boolean injection.
2.**Kutumia majaribio ya kawaida**: Unaweza kujaribu kuingiza hoja za mantiki za boolean kwa mkono na kuchunguza majibu ya programu ya wavuti. Kwa mfano, unaweza kujaribu kuongeza hoja ya `AND 1=1` na kisha `AND 1=2` na uangalie ikiwa kuna tofauti katika majibu. Ikiwa kuna tofauti, inaweza kuashiria uwepo wa udhaifu wa boolean injection.
Baada ya kugundua udhaifu wa boolean injection, unaweza kufanya uchunguzi zaidi kwa kuingiza hoja za mantiki za boolean. Hapa kuna baadhi ya hoja za kawaida za boolean injection:
-`AND`: Kutumika kuongeza hoja ya ziada kwenye ombi la SQL.
-`OR`: Kutumika kuongeza hoja ya ziada kwenye ombi la SQL.
-`NOT`: Kutumika kubadilisha matokeo ya hoja ya mantiki.
-`UNION`: Kutumika kuunganisha matokeo ya maswali tofauti ya SQL.
-`SELECT`: Kutumika kuchagua data kutoka kwa meza ya SQL.
-`FROM`: Kutumika kuelezea meza ambayo data inachaguliwa kutoka.
-`WHERE`: Kutumika kuweka vigezo vya kuchuja data.
Kwa kuingiza hoja hizi za mantiki za boolean kwa usahihi, unaweza kuchunguza na kuchexploit udhaifu wa boolean injection katika programu za wavuti.
Tamper ni kipengele cha SQLMap kinachoruhusu kubadilisha au kuharibu data ya maombi ili kujaribu kuvunja usalama. Kwa kutumia tamper, unaweza kubadilisha maombi yaliyotumwa kwa seva ili kujaribu kufanya mashambulizi ya SQL Injection kuwa rahisi au kuepuka kugunduliwa na vifaa vya usalama.
SQLMap inatoa seti ya tamper scripts ambazo zinaweza kutumika kubadilisha maombi. Unaweza pia kuunda tamper script yako mwenyewe kulingana na mahitaji yako maalum.
Kutumia tamper ni rahisi. Unaweza kuchagua tamper script kutoka kwa orodha ya SQLMap au kuunda tamper script mpya. Kisha, unaweza kuomba SQLMap kutumia tamper script iliyochaguliwa kwa maombi yako.
Kwa mfano, ikiwa unataka kubadilisha herufi zote kuwa herufi kubwa, unaweza kutumia tamper script ya "uppercase". Hii itabadilisha maombi yaliyotumwa kwa seva ili kubadilisha herufi zote kuwa kubwa kabla ya kufanywa kwa mashambulizi ya SQL Injection.
Kwa kumalizia, tamper ni kipengele muhimu cha SQLMap kinachoruhusu kubadilisha data ya maombi ili kufanya mashambulizi ya SQL Injection kuwa rahisi au kuepuka kugunduliwa. Unaweza kutumia tamper script zilizopo au kuunda tamper script yako mwenyewe kulingana na mahitaji yako.
| apostrophemask.py | Inabadilisha herufi ya apostrophe na mbadala wake wa UTF-8 full width |
| apostrophenullencode.py | Inabadilisha herufi ya apostrophe na mbadala wake mara mbili wa unicode |
| appendnullbyte.py | Inaongeza herufi ya NULL iliyofichwa mwishoni mwa payload |
| base64encode.py | Inabadilisha herufi zote katika payload iliyoombwa kuwa Base64 |
| between.py | Inabadilisha operator wa 'greater than' \('>'\) na 'NOT BETWEEN 0 AND \#' |
| bluecoat.py | Inabadilisha herufi ya nafasi baada ya taarifa ya SQL na herufi sahihi tupu ya nasibu. Kisha inabadilisha herufi ya = na operator ya LIKE |
| chardoubleencode.py | Inaongeza url-encoding mara mbili kwa herufi zote katika payload iliyoombwa \(bila kuchakata tayari imefichwa\) |
| commalesslimit.py | Inabadilisha visa kama 'LIMIT M, N' na 'LIMIT N OFFSET M' |
| commalessmid.py | Inabadilisha visa kama 'MID\(A, B, C\)' na 'MID\(A FROM B FOR C\)' |
| concat2concatws.py | Inabadilisha visa kama 'CONCAT\(A, B\)' na 'CONCAT\_WS\(MID\(CHAR\(0\), 0, 0\), A, B\)' |
| charencode.py | Inaongeza url-encoding kwa herufi zote katika payload iliyoombwa \(bila kuchakata tayari imefichwa\) |
| charunicodeencode.py | Inaongeza url-encoding wa unicode kwa herufi zisizo na encoding katika payload iliyoombwa \(bila kuchakata tayari imefichwa\). "%u0022" |
| charunicodeescape.py | Inaongeza url-encoding wa unicode kwa herufi zisizo na encoding katika payload iliyoombwa \(bila kuchakata tayari imefichwa\). "\u0022" |
| equaltolike.py | Inabadilisha visa vyote vya operator sawa \('='\) na operator 'LIKE' |
| escapequotes.py | Inaongeza mstari wa kushughulikia alama za nukuu \(' na "\) |
| greatest.py | Inabadilisha operator wa 'greater than' \('>'\) na mbadala wa 'GREATEST' |
| halfversionedmorekeywords.py | Inaongeza maoni ya MySQL yenye toleo kabla ya kila neno muhimu |
| ifnull2ifisnull.py | Inabadilisha visa kama 'IFNULL\(A, B\)' na 'IF\(ISNULL\(A\), B, A\)' |
| modsecurityversioned.py | Inazunguka swali kamili na maoni yenye toleo |
| modsecurityzeroversioned.py | Inazunguka swali kamili na maoni yenye toleo la sifuri |
| multiplespaces.py | Inaongeza nafasi nyingi karibu na maneno muhimu ya SQL |
| nonrecursivereplacement.py | Inabadilisha maneno muhimu ya SQL yaliyopangwa mapema na uwakilishi unaofaa kwa ajili ya kubadilishana \(k.m. .replace\("SELECT", ""\)\) filters |
| percentage.py | Inaongeza alama ya asilimia \('%'\) mbele ya kila herufi |
| overlongutf8.py | Inabadilisha herufi zote katika payload iliyoombwa \(bila kuchakata tayari imefichwa\) |
| randomcase.py | Inabadilisha kila herufi ya neno muhimu na thamani ya kesi ya nasibu |
| randomcomments.py | Inaongeza maoni ya nasibu kwa maneno muhimu ya SQL |
<summary><strong>Jifunze kuhusu udukuzi wa 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>
* Ikiwa unataka kuona **kampuni yako inayotangazwa katika HackTricks** au **kupakua HackTricks katika PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.