hacktricks/network-services-pentesting/pentesting-web/README.md

445 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 80,443 - Web Pentesting Metodolojisi
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
## Temel Bilgiler
Web servisi en **yaygın ve kapsamlı hizmet**tir ve birçok **farklı türde zayıflık** bulunmaktadır.
**Varsayılan port:** 80 (HTTP), 443(HTTPS)
```bash
PORT STATE SERVICE
80/tcp open http
443/tcp open ssl/https
```
```bash
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
```
### Web API Rehberi
{% content-ref url="web-api-pentesting.md" %}
[web-api-pentesting.md](web-api-pentesting.md)
{% endcontent-ref %}
## Metodoloji özeti
> Bu metodolojide, bir alan adını (veya alt alan adını) hedef alacağınızı varsayacağız. Bu nedenle, bu metodolojiyi belirlenen her alan, alt alan veya kapsam içinde belirlenemeyen bir web sunucusuna uygulamanız gerekmektedir.
* [ ] İlk olarak, web sunucusu tarafından kullanılan **teknolojileri belirleyin**. Eğer teknolojiyi başarılı bir şekilde tanımlayabilirseniz, testin geri kalanı sırasında akılda tutulacak **püf noktaları** arayın.
* [ ] Kullanılan teknolojinin **bilinen bir zafiyeti** var mı?
* [ ] **Tanınmış bir teknoloji** mi kullanılıyor? Daha fazla bilgi çıkarmak için **yararlı bir püf noktası** var mı?
* [ ] Çalıştırılacak **özel tarama araçları** var mı (örneğin wpscan)?
* [ ] **Genel amaçlı tarama araçlarını** başlatın. Bir şey bulacaklar mı yoksa ilginç bilgiler mi bulacaklar, asla bilemezsiniz.
* [ ] İlk kontrollerle başlayın: **robots**, **sitemap**, **404** hata ve **SSL/TLS taraması** (eğer HTTPS kullanılıyorsa).
* [ ] Web sayfasını **spidering** işlemine başlayın: Tüm olası **dosyaları, klasörleri** ve **kullanılan parametreleri bulma** zamanı. Ayrıca, **özel bulguları** kontrol edin.
* [ ] _Herhangi bir yeni dizin, brute-force veya spidering sırasında keşfedildiğinde, spidering işlemine tabi tutulmalıdır._
* [ ] **Dizin Brute-Forcing**: Keşfedilen tüm klasörleri tarayarak yeni **dosyaları** ve **dizinleri** brute force etmeyi deneyin.
* [ ] _Herhangi bir yeni dizin, brute-force veya spidering sırasında keşfedildiğinde, Brute-Force edilmelidir._
* [ ] **Yedeklerin kontrol edilmesi**: Keşfedilen dosyaların **yedeklerini** bulmaya çalışın, yaygın yedek uzantılarını ekleyerek.
* [ ] **Parametreleri Brute-Force etme**: **Gizli parametreleri** bulmaya çalışın.
* [ ] Tüm olası **kullanıcı girişi kabul eden uç noktaları belirledikten** sonra, bunlarla ilgili **tüm zafiyetleri** kontrol edin.
* [ ] [Bu kontrol listesini takip edin](../../pentesting-web/web-vulnerabilities-methodology.md)
## Sunucu Sürümü (Zafiyetli mi?)
### Tanımlama
Çalışan sunucu **sürümü** için **bilinen zafiyetlerin** olup olmadığını kontrol edin.\
**Yanıtın HTTP başlıkları ve çerezleri**, kullanılan **teknolojileri** ve/veya **sürümü tanımlamak** için oldukça yararlı olabilir. **Nmap taraması** sunucu sürümünü tanımlayabilir, ancak ayrıca [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) veya [**https://builtwith.com/**](https://builtwith.com)**:** gibi araçlar da faydalı olabilir.
```bash
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
```
**Web uygulamasının sürümü** için [**web uygulamasının zayıf noktalarını arayın**](../../generic-methodologies-and-resources/search-exploits.md)
### **Herhangi bir WAF olup olmadığını kontrol edin**
* [**https://github.com/EnableSecurity/wafw00f**](https://github.com/EnableSecurity/wafw00f)
* [**https://github.com/Ekultek/WhatWaf.git**](https://github.com/Ekultek/WhatWaf.git)
* [**https://nmap.org/nsedoc/scripts/http-waf-detect.html**](https://nmap.org/nsedoc/scripts/http-waf-detect.html)
### Web teknik hileler
Farklı tanınmış **teknolojilerdeki zayıf noktaları bulmak** için bazı **hileler**:
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
* [**Apache**](apache.md)
* [**Artifactory**](artifactory-hacking-guide.md)
* [**Buckets**](buckets/)
* [**CGI**](cgi.md)
* [**Drupal**](drupal/)
* [**Flask**](flask.md)
* [**Git**](git.md)
* [**Golang**](golang.md)
* [**GraphQL**](graphql.md)
* [**H2 - Java SQL veritabanı**](h2-java-sql-database.md)
* [**IIS hileleri**](iis-internet-information-services.md)
* [**JBOSS**](jboss.md)
* [**Jenkins**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/pentesting-web/broken-reference/README.md)
* [**Jira**](jira.md)
* [**Joomla**](joomla.md)
* [**JSP**](jsp.md)
* [**Laravel**](laravel.md)
* [**Moodle**](moodle.md)
* [**Nginx**](nginx.md)
* [**PHP (php has a lot of interesting tricks that could be exploited)**](php-tricks-esp/)
* [**Python**](python.md)
* [**Spring Actuators**](spring-actuators.md)
* [**Symphony**](symphony.md)
* [**Tomcat**](tomcat/)
* [**VMWare**](vmware-esx-vcenter....md)
* [**Web API Pentesting**](web-api-pentesting.md)
* [**WebDav**](put-method-webdav.md)
* [**Werkzeug**](werkzeug.md)
* [**Wordpress**](wordpress.md)
* [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/)
_Aynı **alan adının** farklı **portlarda**, **klasörlerde** ve **alt alan adlarında** farklı **teknolojiler** kullanabileceğini unutmayın._\
Eğer web uygulaması herhangi bir önce **listelenen tanınmış teknoloji/platformu** veya **başka birini** kullanıyorsa, **İnternet'te yeni hileler aramayı** unutmayın (ve bana bildirin!).
### Kaynak Kod İncelemesi
Uygulamanın **kaynak kodu** github'da mevcutsa, uygulamanın **kendi White box testini** gerçekleştirmenin yanı sıra, mevcut **Black-Box testi** için **yararlı olabilecek bazı bilgiler** bulunmaktadır:
* Web üzerinden erişilebilen **Değişiklik günlüğü veya Readme veya Sürüm** dosyası veya herhangi bir **sürüm bilgisi** var mı?
* **Kimlik bilgileri** nerede ve nasıl saklanıyor? Kimlik bilgilerini içeren (erişilebilir?) **dosya** var mı?
* **Şifreler** düz metin mi, **şifrelenmiş** mi yoksa hangi **hashleme algoritması** kullanılıyor?
* Bir şeyi şifrelemek için herhangi bir **anahtar** kullanıyor mu? Hangi **algoritma** kullanılıyor?
* Bu dosyalardan herhangi birine **bir zayıflık** kullanarak erişebilir misiniz?
* Github'da (çözülmüş ve çözülmemiş) **sorunlarda** veya **commit geçmişinde** (belki eski bir commit içinde **girilen bir şifre**) **ilginç bilgiler** var mı?
{% content-ref url="code-review-tools.md" %}
[code-review-tools.md](code-review-tools.md)
{% endcontent-ref %}
### Otomatik tarayıcılar
#### Genel amaçlı otomatik tarayıcılar
```bash
nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>
# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"
```
#### CMS tarama araçları
Eğer bir CMS kullanılıyorsa, **bir tarama aracı çalıştırmayı** unutmayın, belki ilginç şeyler bulunabilir:
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/)**, Railo, Axis2, Glassfish**\
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/), **Joomla**, **vBulletin** web siteleri için güvenlik sorunlarını tarar. (GUI)\
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal/)**, PrestaShop, Opencart**\
**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal/) **veya** [**(M)oodle**](moodle.md)\
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal/)**,** [**Joomla**](joomla.md)**,** [**Moodle**](moodle.md)**, Silverstripe,** [**Wordpress**](wordpress.md)
```bash
cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs
```
> Bu noktada, istemci tarafından kullanılan web sunucusu hakkında bazı bilgilere zaten sahip olmalısınız (veri verilmişse) ve test sırasında akılda tutulması gereken bazı püf noktaları olmalıdır. Şanslıysanız bir CMS bulmuş olabilir ve bazı tarayıcıları çalıştırmış olabilirsiniz.
## Adım adım Web Uygulaması Keşfi
> Bu noktadan itibaren web uygulamasıyla etkileşime geçmeye başlayacağız.
### İlk kontroller
**İlginç bilgiler içeren varsayılan sayfalar:**
* /robots.txt
* /sitemap.xml
* /crossdomain.xml
* /clientaccesspolicy.xml
* /.well-known/
* Ana ve ikincil sayfalardaki yorumları da kontrol edin.
**Hataları zorlama**
Web sunucuları, tuhaf veriler gönderildiğinde **beklenmedik şekilde davranabilir**. Bu, **zafiyetleri** veya **duyarlı bilgilerin sızdırılmasını** açabilir.
* /whatever\_fake.php (.aspx,.html,.vb gibi) gibi **sahte sayfalara** erişin
* **"\[]", "]]" ve "\[\["** gibi **çerez değerlerine** ve **parametre** değerlerine hatalar oluşturmak için ekleyin
* Hata oluşturmak için URL'nin **sonuna** **`/~randomthing/%s`** olarak giriş yaparak hata oluşturun
* **PATCH, DEBUG** gibi **farklı HTTP Fiillerini** veya yanlış olan **FAKE** gibi deneyin
#### **Dosya yükleme yapabilir misiniz? (**[**PUT fiili, WebDav**](put-method-webdav.md)**)**
Eğer **WebDav**'in **etkin** olduğunu fakat kök klasöre **dosya yükleme** için yeterli izninizin olmadığını bulursanız şunları deneyin:
* Kimlik bilgilerini **Brute Force** ile deneyin
* WebDav aracılığıyla dosya **yükleme** deneyin ve web sayfasının içindeki **bulunan diğer klasörlere**. Diğer klasörlere dosya yükleme izniniz olabilir.
### **SSL/TLS zafiyetleri**
* Uygulama herhangi bir yerde **HTTPS kullanımını zorlamıyorsa**, o zaman **MitM'ye karşı savunmasızdır**
* Uygulama **HTTP kullanarak hassas verileri (şifreler) gönderiyorsa**. Bu yüksek bir zafiyettir.
[**testssl.sh**](https://github.com/drwetter/testssl.sh) kullanarak **zafiyetleri** kontrol edin (Hata Ödülü programlarında muhtemelen bu tür zafiyetler kabul edilmeyecektir) ve zafiyetleri tekrar kontrol etmek için [**a2sv** ](https://github.com/hahwul/a2sv) kullanın:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>
```
### SSL/TLS Zafiyetleri Hakkında Bilgi:
* [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
* [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
### Ağ Taraması
Web içinde bir tür **örümcek** başlatın. Örümceğin amacı, test edilen uygulamadan **mümkün olan en fazla yol** u bulmaktır. Bu nedenle, mümkün olduğunca çok geçerli yol bulmak için web taraması ve harici kaynaklar kullanılmalıdır.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML örümcek, JS dosyalarında LinkFinder ve harici kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HTML örümcek, JS dosyalarında LinkFinder ve harici kaynak olarak Archive.org.
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML örümcek, ayrıca "önemli dosyaları" belirtir.
* [**evine**](https://github.com/saeeddhqan/evine) (go): Etkileşimli CLI HTML örümcek. Ayrıca Archive.org'da arama yapar.
* [**meg**](https://github.com/tomnomnom/meg) (go): Bu araç bir örümcek değil ama yararlı olabilir. Sadece her bir ana bilgisayarda bir dosya ve bir yol dosyası belirtin ve meg her yolu her ana bilgisayarda alacak ve yanıtı kaydedecek.
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS işleme yetenekleri olan HTML örümcek. Ancak, bakımsız gibi görünüyor, derlenmiş sürüm eski ve mevcut kod derlenmiyor.
* [**gau**](https://github.com/lc/gau) (go): Harici sağlayıcıları kullanan HTML örümcek (wayback, otx, commoncrawl).
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Bu betik parametre içeren URL'leri bulacak ve listeleyecektir.
* [**galer**](https://github.com/dwisiswant0/galer) (go): JS işleme yetenekleri olan HTML örümcek.
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): JS dosyalarında yeni yollar arayabilen JS güzelleştirme yeteneklerine sahip HTML örümcek. Ayrıca [JSScanner](https://github.com/dark-warlord14/JSScanner) 'a da bakmak faydalı olabilir, bu, LinkFinder'ın bir sarmalayıcısıdır.
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Hem HTML kaynağında hem de gömülü javascript dosyalarında uç noktaları çıkarmak için. Hata avcıları, kırmızı takımlar, bilgi güvenliği ninjaları için kullanışlıdır.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): AJAX isteklerini kolayca keşfetmek için Tornado ve JSBeautifier kullanan bir python 2.7 betiği. Bakımsız gibi görünüyor.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Bir dosya (HTML) verildiğinde, çirkin (minify) dosyalardan göreceli URL'leri bulmak ve çıkarmak için nifty düzenli ifade kullanır.
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, birkaç araç): Birkaç aracı kullanarak JS dosyalarından ilginç bilgiler toplar.
* [**subjs**](https://github.com/lc/subjs) (go): JS dosyalarını bulur.
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): Bir sayfayı başsız bir tarayıcıda yükler ve sayfayı yüklemek için yüklenen tüm URL'leri yazdırır.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Önceki araçların birkaç seçeneğini karıştıran içerik keşif aracı.
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JS dosyalarında yol ve parametreleri bulmak için bir Burp uzantısı.
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URL'si verildiğinde güzel JS kodunu alacak bir araç
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Belirli bir hedef için uç noktaları keşfetmek için kullanılan bir araç.
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback machine'den bağlantıları keşfedin (ayrıca wayback'ten yanıtları indirin ve daha fazla bağlantı arayın
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): (Formları doldurarak bile) tarama yapın ve özel regex'leri kullanarak hassas bilgileri bulun.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite, siber güvenlik uzmanları için tasarlanmış gelişmiş çok özellikli GUI web güvenliği Tarama/Örümcek aracıdır.
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): JavaScript kaynak kodundan URL'ler, yollar, sırlar ve diğer ilginç verileri çıkarmak için Go paketi ve [komut satırı aracı](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice).
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): Parametreleri ve uç noktaları çıkarmak için bir **Burp Suite uzantısı** olan basit bir **Burp Suite uzantısı**.
* [**katana**](https://github.com/projectdiscovery/katana) (go): Bu için harika bir araç.
### Dizinler ve Dosyaları Kaba Kuvvet ile Deneme
Kök klasöründen **kaba kuvvet uygulamaya** başlayın ve **bu yöntemle bulunan tüm dizinleri** ve **Örümcek** tarafından **keşfedilen** tüm dizinleri kaba kuvvet uygulayarak (bu kaba kuvveti **tekrarlayarak** ve bulunan dizinlerin adlarını kullanılan kelime listesinin başına ekleyerek yapabilirsiniz).\
Araçlar:
* **Dirb** / **Dirbuster** - Kali'de bulunur, **eski** (ve **yavaş**) ama işlevsel. Otomatik imzalı sertifikalara ve tekrarlayan aramaya izin verir. Diğer seçeneklerle karşılaştırıldığında çok yavaş.
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: Otomatik imzalı sertifikalara izin vermez ama** tekrarlayan aramaya izin verir.
* [**Gobuster**](https://github.com/OJ/gobuster) (go): Otomatik imzalı sertifikalara izin verir, **tekrarlayan** arama **yapmaz**.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Hızlı, tekrarlayan aramayı destekler.**
* [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
* [**ffuf** ](https://github.com/ffuf/ffuf)- Hızlı: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
* [**uro**](https://github.com/s0md3v/uro) (python): Bu bir örümcek değil, bulunan URL'lerin listesini "tekrarlanan" URL'leri silmek için kullanacak bir araçtır.
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Farklı sayfaların burp geçmişinden dizin listesi oluşturmak için bir Burp Uzantısı
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): (js içe aktarmalara dayalı) yinelenen işlevselliklere sahip URL'leri kaldırır.
* [**Chamaleon**](https://github.com/iustin24/chameleon): Kullanılan teknolojileri tespit etmek ve kullanılacak kelime listelerini seçmek için wapalyzer'ı kullanan bir araç.
**Tavsiye edilen sözlükler:**
* [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt)
* [**Dirsearch** dahil edilen sözlük](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
* [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
* [Assetnote wordlists](https://wordlists.assetnote.io)
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
* raft-large-directories-lowercase.txt
* directory-list-2.3-medium.txt
* RobotsDisallowed/top10000.txt
* [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
* [https://github.com/google/fuzzing/tree/master/dictionaries](https://github.com/google/fuzzing/tree/master/dictionaries)
* [https://github.com/six2dez/OneListForAll](https://github.com/six2dez/OneListForAll)
* [https://github.com/random-robbie/bruteforce-lists](https://github.com/random-robbie/bruteforce-lists)
* [https://github.com/ayoubfathi/leaky-paths](https://github.com/ayoubfathi/leaky-paths)
* _/usr/share/wordlists/dirb/common.txt_
* _/usr/share/wordlists/dirb/big.txt_
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
_Not: Herhangi bir brute-force veya spidering sırasında yeni bir dizin keşfedildiğinde, Brute-Force edilmelidir._
### Her bulunan dosyada ne kontrol edilmelidir
* [**Bozuk bağlantı kontrolcüsü**](https://github.com/stevenvachon/broken-link-checker): Ele geçirilebilecek HTML içindeki bozuk bağlantıları bulun
* **Dosya Yedekleri**: Tüm dosyaları bulduktan sonra, tüm yürütülebilir dosyaların yedeklerini arayın ("_.php_", "_.aspx_"...). Bir yedek dosyanın adlandırılması için yaygın varyasyonlar: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp ve file.old._ Ayrıca [**bfac**](https://github.com/mazen160/bfac) **veya** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**'i** kullanabilirsiniz.
* **Yeni parametreler keşfedin**: Gizli parametreleri keşfetmek için [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **ve** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gibi araçları kullanabilirsiniz. Mümkünse, her yürütülebilir web dosyasında gizli parametreleri aramayı deneyebilirsiniz.
* _Arjun tüm varsayılan kelime listeleri:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
* **Yorumlar:** Tüm dosyaların yorumlarını kontrol edin, **kimlik bilgileri** veya **gizli işlevsellik** bulabilirsiniz.
* **CTF** oynuyorsanız, bir "ortak" hile, bilgileri sayfanın sağ tarafındaki yorumların içine **gizlemektir** (tarayıcıda kaynak kodunu açtığınızda verileri görmemeniz için **yüzlerce boşluk** kullanarak). Diğer bir olasılık da **birkaç yeni satır** kullanarak ve web sayfasının **altındaki** bir yorumda bilgileri **gizlemektir**.
* **API anahtarları**: Eğer **herhangi bir API anahtarı bulursanız**, farklı platformların API anahtarlarını nasıl kullanılacağını gösteren bir rehber vardır: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
* Google API anahtarları: Eğer **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik gibi bir API anahtarı bulursanız, anahtarın hangi API'lere erişebileceğini kontrol etmek için [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) projesini kullanabilirsiniz.
* **S3 Buckets**: Spidering yaparken, herhangi bir **alt alan adının** veya herhangi bir **bağlantının** bir **S3 bucket** ile ilişkili olup olmadığına bakın. Bu durumda, [**bucket'ın izinlerini** kontrol edin](buckets/).
### Özel bulgular
**Spidering** ve **brute-force** yaparken **dikkat etmeniz gereken** **ilginç şeyler** bulabilirsiniz.
**İlginç dosyalar**
* **CSS** dosyaları içindeki diğer dosyalara **bağlantıları** arayın.
* Eğer bir _**.git**_ dosyası bulursanız, bazı bilgiler çıkarılabilir.
* Eğer bir _**.env**_ dosyası bulursanız, api anahtarları, veritabanı şifreleri ve diğer bilgiler bulunabilir.
* Eğer **API uç noktaları** bulursanız, [onları da test etmelisiniz](web-api-pentesting.md). Bunlar dosyalar değil, ancak muhtemelen onlara "benzer" olacaklar.
* **JS dosyaları**: Spidering bölümünde JS dosyalarından yol çıkarabilen birkaç araç belirtilmiştir. Ayrıca, bulunan her JS dosyasını **izlemek ilginç olabilir**, çünkü bazı durumlarda, bir değişiklik potansiyel bir güvenlik açığına neden olmuş olabilir. Örneğin [**JSMon**](https://github.com/robre/jsmon)**'u** kullanabilirsiniz.
* Bulunan JS dosyalarını [**RetireJS**](https://github.com/retirejs/retire.js/) veya [**JSHole**](https://github.com/callforpapers-source/jshole) ile kontrol etmelisiniz, zayıf olup olmadığını bulmak için.
* **Javascript Deobfuscator ve Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
* **JsFuck deobfuscation** (karakterlerle birlikte javascript:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
* Birkaç durumda kullanılan **düzenli ifadeleri anlamanız gerekecek**, bu yararlı olacaktır: [https://regex101.com/](https://regex101.com)
* Ayrıca, **formların tespit edildiği dosyaları izlemelisiniz**, çünkü parametrelerde bir değişiklik veya yeni bir formun görünmesi potansiyel olarak yeni bir zayıf işlevsellik belirtisi olabilir.
**403 Forbidden/Basic Authentication/401 Unauthorized (atlatma)**
{% content-ref url="403-and-401-bypasses.md" %}
[403-and-401-bypasses.md](403-and-401-bypasses.md)
{% endcontent-ref %}
**502 Proxy Hatası**
Eğer herhangi bir sayfa bu kodla **yanıt verirse**, muhtemelen kötü yapılandırılmış bir proxydir. Eğer `GET https://google.com HTTP/1.1` gibi bir HTTP isteği gönderirseniz (host başlığı ve diğer yaygın başlıklarla), **proxy** _**google.com**_'a erişmeye çalışacak ve bir SSRF bulmuş olacaksınız.
**NTLM Kimlik Doğrulama - Bilgi sızdırma**
Kimlik doğrulaması isteyen çalışan sunucu **Windows** ise veya kimlik bilgilerinizi isteyen bir giriş bulursanız (ve **alan adı** isteniyorsa), bir **bilgi sızdırma** provoke edebilirsiniz.\
`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` başlığını **gönderin** ve **NTLM kimlik doğrulamanın** nasıl çalıştığından dolayı sunucu, "WWW-Authenticate" başlığı içinde iç bilgilerle (IIS sürümü, Windows sürümü...) yanıt verecektir.\
Bunu "_http-ntlm-info.nse_" **nmap eklentisi** kullanarak **otomatikleştirebilirsiniz**.
**HTTP Yönlendirmesi (CTF)**
Bir **Yönlendirme** içine içerik **yerleştirmek mümkündür**. Bu içerik **kullanıcıya gösterilmeyecek** (tarayıcı yönlendirmeyi gerçekleştireceği için), ancak içinde bir şey **gizlenebilir**.
### Web Güvenlik Açıklıklarının Kontrol Edilmesi
Web uygulamasının kapsamlı bir numaralandırılmasının yapıldığı şimdi birçok olası güvenlik açığı için kontrol zamanı. Kontrol listesini burada bulabilirsiniz:
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
{% endcontent-ref %}
Web açıklıkları hakkında daha fazla bilgi bulun:
* [https://six2dez.gitbook.io/pentest-book/others/web-checklist](https://six2dez.gitbook.io/pentest-book/others/web-checklist)
* [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html)
* [https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection](https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection)
### Sayfaları Değişiklikler İçin İzleme
Sayfalarda olası güvenlik açıklıkları ekleyebilecek değişiklikleri izlemek için [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gibi araçları kullanabilirsiniz.
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşma gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
### HackTricks Otomatik Komutları
```
Protocol_Name: Web #Protocol Abbreviation if there is one.
Port_Number: 80,443 #Comma separated if there is more than one.
Protocol_Description: Web #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web
Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}
Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}
Entry_5:
Name: Directory Brute Force Non-Recursive
Description: Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10
Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200
Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}
Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration
Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e
Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}
```
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin(https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>