mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
445 lines
32 KiB
Markdown
445 lines
32 KiB
Markdown
# 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 Red Team Expert)</strong></a><strong> ile!</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**](https://peass.creator-spring.com) edinin
|
||
* [**The PEASS Family'yi**](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)** takip edin.**
|
||
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/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) (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ına (veya alt alan adına) saldırı gerçekleştireceğinizi 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 tutulması gereken **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ını veya ilginç bilgiler bulacaklarını asla bilemezsiniz.
|
||
* [ ] İlk kontrollerle başlayın: **robots**, **sitemap**, **404** hata ve **SSL/TLS taraması** (HTTPS ise).
|
||
* [ ] 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 brute-force veya spidering sırasında yeni bir dizin keşfedildiğinde, bu dizin spider edilmelidir._
|
||
* [ ] **Dizin Brute-Forcing**: Keşfedilen tüm klasörleri tarayarak yeni **dosyaları** ve **dizinleri** brute force etmeye çalışın.
|
||
* [ ] _Herhangi bir brute-force veya spidering sırasında yeni bir dizin keşfedildiğinde, bu dizin brute force edilmelidir._
|
||
* [ ] **Yedeklerin kontrol edilmesi**: Keşfedilen dosyaların yedeklerini bulmaya çalışın ve yaygın yedek uzantılarını ekleyin.
|
||
* [ ] **Parametreleri Brute-Force etme**: **Gizli parametreleri** bulmaya çalışın.
|
||
* [ ] Tüm olası **kullanıcı girişi kabul eden uç noktaları** tanımladıktan sonra, bunlarla ilgili tüm türden **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 güvenlik açıklarını arayın** [**sürüm** **versiyonu** için](../../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ı popüler **teknolojilerdeki güvenlik açıklarını 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.md)
|
||
* [**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 alanlarda** farklı **teknolojiler** kullanabileceğini unutmayın._\
|
||
Eğer web uygulaması herhangi bir önceki **teknoloji/platform** veya **başka bir** teknoloji 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 başınıza Beyaz Kutu testi** yapmanın yanı sıra, mevcut **Siyah Kutu testi** için **yararlı olabilecek bazı bilgiler** bulunabilir:
|
||
|
||
* Web üzerinden erişilebilen **Değişiklik günlüğü veya Readme veya Sürüm** bilgisi içeren bir dosya var mı?
|
||
* **Kimlik bilgileri** nerede ve nasıl saklanıyor? (kullanıcı adları veya şifrelerle erişilebilir mi?)
|
||
* **Şifreler** düz metin mi, **şifrelenmiş** mi veya hangi **hashleme algoritması** kullanılıyor?
|
||
* Bir şeyi şifrelemek için herhangi bir **anahtar** kullanılıyor mu? Hangi **algoritma** kullanılıyor?
|
||
* Bazı bir **zafiyeti sömürerek** bu dosyalardan herhangi birine **erişebilir misiniz**?
|
||
* Github'da (çözülmüş ve çözülmemiş) **sorunlarda** veya **commit geçmişinde** (belki eski bir commit içinde bir **şifre** bulunabilir) **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 tarayıcıları
|
||
|
||
Eğer bir CMS kullanılıyorsa, **bir tarayıcı çalıştırmayı** unutmayın, belki ilginç bir ş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.md), **Joomla**, **vBulletin** web siteleri için güvenlik sorunlarını taramak için. (GUI)\
|
||
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**,** [**Wordpress**](wordpress.md)**,** [**Drupal**](drupal.md)**, PrestaShop, Opencart**\
|
||
**CMSMap**: [**(W)ordpress**](wordpress.md)**,** [**(J)oomla**](joomla.md)**,** [**(D)rupal**](drupal.md) **veya** [**(M)oodle**](moodle.md)\
|
||
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal.md)**,** [**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 verilerin kendilerine gönderildiğinde **beklenmedik şekilde davranabilir**. Bu, **zafiyetleri** veya **duyarlı bilgilerin ifşasını** açabilir.
|
||
|
||
* /whatever\_fake.php (.aspx,.html,.vb) gibi **sahte sayfalara** erişin
|
||
* Hatalar oluşturmak için **"\[]", "]]" ve "\[\["** gibi **çerez değerlerini** ve **parametre** değerlerini ekleyin
|
||
* URL'nin **sonuna** **`/~randomthing/%s`** olarak giriş yaparak hata oluşturun
|
||
* PATCH, DEBUG gibi **farklı HTTP Fiillerini** veya yanlış olan FAKE'i deneyin
|
||
|
||
#### **Dosya yükleme olanağını kontrol edin (**[**PUT fiili, WebDav**](put-method-webdav.md)**)**
|
||
|
||
Eğer **WebDav'ın** **etkin** olduğunu ancak kök klasöre **dosya yüklemek için yeterli izninizin olmadığını** bulursanız şunları deneyin:
|
||
|
||
* Kimlik bilgilerini **Brute Force** ile deneyin
|
||
* WebDav aracılığıyla dosya **yükleyin** ve web sayfasının içindeki **bulunan klasörlere**. Diğer klasörlere dosya yüklemek için izniniz olabilir.
|
||
|
||
### **SSL/TLS zafiyetleri**
|
||
|
||
* Uygulama **herhangi bir yerde HTTPS kullanımını zorlamıyorsa**, o zaman **MitM'ye karşı savunmasızdır**
|
||
* Uygulama, hassas verileri (şifreleri) HTTP kullanarak 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)'yi 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ı için 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ğildir ancak yararlı olabilir. Sadece her bir ana bilgisayarda bir dosya ve her bir ana bilgisayarda her yolun alınmasını ve yanıtın kaydedilmesini gösterebilirsiniz.
|
||
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS derleme yeteneklerine sahip 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 derleme yeteneklerine sahip 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 ifadeleri 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 sayfanın yüklenen tüm URL'lerini 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 size güzel JS kodunu getirecek bir araç
|
||
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Belirli bir hedef için uç noktaları keşfetmek için kullanılan bir araçtır.
|
||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback makinesinden 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): Belirli regexler kullanarak (formları doldurarak bile) gezin ve hassas bilgileri bulun.
|
||
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite, siber güvenlik profesyonelleri için tasarlanmış gelişmiş çok özellikli GUI web güvenliği Örümcek/Crawler'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 bir Go paketi ve [komut satırı aracı](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice)'dır.
|
||
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): Parametreleri ve uç noktaları çıkarmak için isteğin burp geçmişinden özel kelime listesi oluşturmak için 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) emin olun.\
|
||
Araçlar:
|
||
|
||
* **Dirb** / **Dirbuster** - Kali'de bulunur, **eski** (ve **yavaş**) ancak 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 ancak** tekrarlayan aramaya izin verir.
|
||
* [**Gobuster**](https://github.com/OJ/gobuster) (go): Otomatik imzalı sertifikalara izin verir, **tekrarlayan** arama özelliğine sahip değildir.
|
||
* [**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 kullanılan 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ı tekrarlanan 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_
|
||
|
||
_Bruteforcing veya spidering sırasında herhangi bir yeni dizin keşfedildiğinde, Brute-Force uygulanmalıdır._
|
||
|
||
### Her bulunan dosyada ne kontrol edilmelidir
|
||
|
||
* [**Bozuk bağlantı kontrolcüsü**](https://github.com/stevenvachon/broken-link-checker): Ele geçirilebilecek bozuk bağlantıları içeren HTML dosyalarını 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şfetme**: 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, verileri sayfanın sağında (tarayıcıda kaynak kodunu açtığınızda verileri görmemeniz için yüzlerce boşluk kullanarak) yorumların içine gizlemektir. Diğer bir olasılık da, **birkaç yeni satır** kullanarak ve web sayfasının altındaki bir yorumda bilgi gizlemektir.
|
||
* **API anahtarları**: **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ı: **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 **bağlantının** bir **S3 kovası** ile ilişkili olup olmadığını kontrol edin. Bu durumda, [kovanın izinlerini kontrol edin](buckets/).
|
||
|
||
### Özel bulgular
|
||
|
||
**Spidering** ve **brute-forcing** yaparken **dikkat etmeniz gereken** **ilginç şeyler** bulabilirsiniz.
|
||
|
||
**İlginç dosyalar**
|
||
|
||
* **CSS** dosyaları içindeki diğer dosyalara **bağlantıları** arayın.
|
||
* Bir _**.git**_ dosyası bulursanız, bazı bilgiler çıkarılabilir.
|
||
* Bir _**.env**_ dosyası bulursanız, api anahtarları, veritabanı şifreleri ve diğer bilgiler bulunabilir.
|
||
* **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 kodda potansiyel bir zafiyetin tanıtıldığını gösterebilir. Ö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, zafiyet içerip içermediğini 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 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 gerekecektir**, 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 yeni bir zafiyetli 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ı**
|
||
|
||
Herhangi bir sayfa bu kodla **yanıt verirse**, muhtemelen kötü yapılandırılmış bir proxydir. **`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ı** adınızı soruyorsa), bir **bilgi sızdırma** provoke edebilirsiniz.\
|
||
**Başlık** gönderin: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` ve **NTLM kimlik doğrulamasının çalışma şekli** nedeniyle, sunucu iç bilgilerle (IIS sürümü, Windows sürümü...) "WWW-Authenticate" başlığı içinde yanıt verecektir.\
|
||
Bunu **nmap eklentisi** "_http-ntlm-info.nse_" kullanarak **otomatikleştirebilirsiniz**.
|
||
|
||
**HTTP Yönlendirmesi (CTF)**
|
||
|
||
**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 şekilde numaralandırılmasının ardından birçok olası güvenlik açığı kontrol edilmelidir. 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 edinin:
|
||
|
||
* [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
|
||
|
||
[https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gibi araçları kullanarak sayfaları izleyebilir ve güvenlik açıklıkları ekleyebilecek değişiklikleri kontrol edebilirsiniz.
|
||
|
||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Eğer **hacking kariyeri** sizi ilgilendiriyorsa 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**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||
* [**The PEASS Family'yi**](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)** takip edin.**
|
||
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||
|
||
</details>
|