hacktricks/network-services-pentesting/pentesting-web
2024-05-05 22:43:52 +00:00
..
buckets Translated to Turkish 2024-02-10 18:14:16 +00:00
electron-desktop-apps Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
php-tricks-esp Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
tomcat Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
403-and-401-bypasses.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
aem-adobe-experience-cloud.md Translated to Turkish 2024-02-10 18:14:16 +00:00
angular.md Translated to Turkish 2024-02-10 18:14:16 +00:00
apache.md Translated to Turkish 2024-02-10 18:14:16 +00:00
artifactory-hacking-guide.md Translated to Turkish 2024-02-10 18:14:16 +00:00
bolt-cms.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
cgi.md Translated to Turkish 2024-02-10 18:14:16 +00:00
code-review-tools.md Translated ['network-services-pentesting/pentesting-web/code-review-tool 2024-04-18 02:45:40 +00:00
dotnetnuke-dnn.md Translated to Turkish 2024-02-10 18:14:16 +00:00
drupal.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
flask.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
git.md Translated to Turkish 2024-02-10 18:14:16 +00:00
golang.md Translated to Turkish 2024-02-10 18:14:16 +00:00
grafana.md Translated to Turkish 2024-02-10 18:14:16 +00:00
graphql.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
gwt-google-web-toolkit.md Translated to Turkish 2024-02-10 18:14:16 +00:00
h2-java-sql-database.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
iis-internet-information-services.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
imagemagick-security.md Translated to Turkish 2024-02-10 18:14:16 +00:00
jboss.md Translated ['forensics/basic-forensic-methodology/specific-software-file 2024-02-18 14:49:08 +00:00
jira.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
joomla.md Translated ['network-services-pentesting/pentesting-web/joomla.md'] to t 2024-04-10 11:57:32 +00:00
jsp.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
laravel.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
moodle.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
nginx.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
nodejs-express.md Translated to Turkish 2024-02-10 18:14:16 +00:00
put-method-webdav.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
python.md Translated to Turkish 2024-02-10 18:14:16 +00:00
README.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
rocket-chat.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
special-http-headers.md Translated ['generic-methodologies-and-resources/external-recon-methodol 2024-04-10 13:41:29 +00:00
spring-actuators.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
symphony.md Translated to Turkish 2024-02-10 18:14:16 +00:00
tomcat.md Translated ['forensics/basic-forensic-methodology/partitions-file-system 2024-03-26 15:52:57 +00:00
uncovering-cloudflare.md Translated ['generic-methodologies-and-resources/external-recon-methodol 2024-04-10 13:41:29 +00:00
vmware-esx-vcenter....md Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/ 2024-05-02 15:12:16 +00:00
waf-bypass.md Translated to Turkish 2024-02-10 18:14:16 +00:00
web-api-pentesting.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
werkzeug.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00
wordpress.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:43:52 +00:00

80,443 - Web Pentesting Metodolojisi

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Eğer hacking kariyerine 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" %}

Temel Bilgiler

Web servisi en yaygın ve kapsamlı hizmettir ve birçok farklı türde zayıflık bulunmaktadır.

Varsayılan port: 80 (HTTP), 443(HTTPS)

PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  ssl/https
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 {% endcontent-ref %}

Metodoloji özeti

Bu metodolojide, bir alan adına (veya alt alan adına) saldıracağınızı varsayacağız. Bu nedenle, bu metodolojiyi belirlenen her alan, alt alan veya kapsam içinde belirlenemeyen 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ı boyunca 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 aracı var mı (örneğin wpscan gibi)?
  • Genel amaçlı tarama araçlarını başlatın. Bulabilecekleri bir şeyler olup olmadığını veya ilginç bilgiler bulabileceklerini 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

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 çok yararlı olabilir. Nmap taraması sunucu sürümünü tanımlayabilir, ancak ayrıca whatweb, webtech veya https://builtwith.com/: gibi araçlar da faydalı olabilir.

whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2

Web uygulamasının zayıflıklarını arayın versiyonu için arayın

Herhangi bir WAF olup olmadığını kontrol edin

Web teknik hileler

Farklı popüler teknolojilerdeki zayıflıkları bulmak için bazı hileler:

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 önceki teknoloji/platform 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 başınıza bir Beyaz Kutu testi yapmanın yanı sıra, mevcut Siyah Kutu testi için yararlı olabilecek bazı bilgiler bulunmaktadır:

  • Web üzerinden erişilebilen bir Değişiklik günlüğü veya Readme veya Versiyon dosyası veya herhangi bir versiyon bilgisi var mı?
  • Kimlik bilgileri nerede ve nasıl saklanıyor? Kimlik bilgilerini içeren (erişilebilir mi?) bir dosya var mı (kullanıcı adları veya şifreler)?
  • Şifreler düz metin mi, şifrelenmiş mi veya hangi hashleme algoritması kullanılıyor?
  • Bir şeyi şifrelemek için herhangi bir anahtar kullanıyor mu? Hangi algoritma kullanılıyor?
  • Bazı bir zayıflığı istismar ederek 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 {% endcontent-ref %}

Otomatik tarayıcılar

Genel amaçlı otomatik tarayıcılar

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ç şeyler bulunabilir:

Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin web siteleri için güvenlik sorunlarını taramak için. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal veya (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress

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ş ve bazı tarayıcı çalıştırmış olabilirsiniz.

Adım adım Web Uygulama 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 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ğerlerine ve parametre değerlerine ekleyin
  • URL'nin sonuna /~randomthing/%s olarak giriş yaparak hata oluşturun
  • YANLIŞ gibi farklı HTTP Fiilleri deneyin PATCH, DEBUG veya FAKE

Dosya yükleme olanağını kontrol edin (PUT fiili, WebDav)

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üklemeye çalışın ve web sayfasının içinde bulunan diğer 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, HTTP kullanarak duyarlı verileri (şifreler) gönderiyorsa. Bu yüksek bir zafiyettir.

testssl.sh kullanarak zafiyetleri kontrol edin (Hata Ödülü programlarında muhtemelen bu tür zafiyetler kabul edilmeyecektir) ve zafiyetleri yeniden kontrol etmek için a2sv kullanın:

./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:

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 (go): HTML örümcek, JS dosyalarında LinkFinder ve harici kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
  • hakrawler (go): HML örümcek, JS dosyalarında LinkFider ve harici kaynak olarak Archive.org.
  • dirhunt (python): HTML örümcek, ayrıca "önemli dosyaları" belirtir.
  • evine (go): Etkileşimli CLI HTML örümcek. Ayrıca Archive.org'da arama yapar.
  • meg (go): Bu araç bir örümcek değil ama 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 (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 (go): Harici sağlayıcıları kullanan HTML örümcek (wayback, otx, commoncrawl).
  • ParamSpider: Bu betik parametre içeren URL'leri bulacak ve listeleyecektir.
  • galer (go): JS işleme yetenekleri olan HTML örümcek.
  • LinkFinder (python): JS dosyalarında yeni yollar arayabilen JS güzelleştirme yeteneklerine sahip HTML örümcek. Ayrıca JSScanner 'a da bakmak faydalı olabilir, bu, LinkFinder'ın bir sarmalayıcısıdır.
  • 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 (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 (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 (bash, birkaç araç): Birkaç aracı kullanarak JS dosyalarından ilginç bilgiler toplar.
  • subjs (go): JS dosyalarını bulur.
  • 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 (rust): Önceki araçların birkaç seçeneğini karıştıran içerik keşif aracı
  • Javascript Parsing: JS dosyalarında yol ve parametreleri bulmak için bir Burp uzantısı.
  • Sourcemapper: .js.map URL'si verildiğinde güzel JS kodunu alacak bir araç
  • xnLinkFinder: Belirli bir hedef için uç noktaları keşfetmek için kullanılan bir araçtır.
  • waymore: Wayback makinesinden bağlantıları keşfedin (wayback'ten yanıtları indirerek ve daha fazla bağlantı arayarak)
  • HTTPLoot (go): (Formları doldurarak bile) tarama yapın ve özel regex'leri kullanarak hassas bilgileri bulun.
  • 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 (go): JavaScript kaynak kodundan URL'ler, yollar, sırlar ve diğer ilginç verileri çıkarmak için Go paketi ve komut satırı aracı.
  • ParaForge: Parametreleri ve uç noktaları çıkarmak için bir Burp Suite uzantısı olan basit bir araçtır.
  • 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 (python): Otomatik imzalı sertifikalara izin vermez ama tekrarlayan aramaya izin verir.
  • Gobuster (go): Otomatik imzalı sertifikalara izin verir, tekrarlayan arama yapmaz.
  • Feroxbuster - Hızlı, tekrarlayan aramayı destekler.
  • wfuzz wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
  • ffuf - Hızlı: ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
  • 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: Farklı sayfaların burp geçmişinden dizin listesi oluşturmak için bir Burp Uzantısı
  • TrashCompactor: (js içe aktarmalara dayalı) yinelenen işlevselliklere sahip URL'leri kaldırır.
  • Chamaleon: Kullanılan teknolojileri tespit etmek ve kullanılacak kelime listelerini seçmek için wapalyzer'ı kullanan bir araç.

Tavsiye edilen sözlükler:

Brute-Forcing veya Spidering sırasında herhangi bir yeni dizin keşfedildiğinde, Brute-Force edilmelidir.

Her bulunan dosyada ne kontrol edilmelidir

  • Bozuk bağlantı kontrolcüsü: 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 veya backup-gen. aracını da kullanabilirsiniz.
  • Yeni parametreler keşfedin: Gizli parametreleri keşfetmek için Arjun, parameth, x8 ve 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
  • Param-miner “params” : https://github.com/PortSwigger/param-miner/blob/master/resources/params
  • Assetnote “parameters_top_1m”: https://wordlists.assetnote.io/
  • nullenc0de “params.txt”: 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, yorumların içine bilgi gizlemek için "ortak" bir hile, sayfanın sağ tarafına (veriye tarayıcıyla kaynak kodunu açarsanız veriyi görmemeniz için yüzlerce boşluk kullanarak) bilgi gizlemektir. Diğer bir olasılık ise birkaç yeni satır kullanarak ve web sayfasının altında 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, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
  • Google API anahtarları: AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik gibi bir API anahtarı bulursanız, anahtarın hangi API'lere erişebileceğini kontrol etmek için gmapapiscanner projesini kullanabilirsiniz.
  • S3 Buckets: Spidering yaparken, herhangi bir alt alan adının veya herhangi bir bağlantının bir S3 kovası ile ilişkili olup olmadığını kontrol edin. Bu durumda, kovaya ait izinleri kontrol edin.

Ö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.
  • 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. 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. kullanabilirsiniz.
  • Bulunan JS dosyalarını RetireJS veya JSHole ile kontrol etmelisiniz, zafiyet içerip içermediğini bulmak için.
  • Javascript Deobfuscator ve Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
  • Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
  • JsFuck deobfuscation (karakterlerle birlikte javascript: "[]!+" https://ooze.ninja/javascript/poisonjs/)
  • 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/
  • 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 {% endcontent-ref %}

502 Proxy Hatası

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.
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 (çünkü tarayıcı yönlendirmeyi gerçekleştirecek) 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çığı kontrol edilmelidir. Kontrol listesini burada bulabilirsiniz:

{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %} web-vulnerabilities-methodology.md {% endcontent-ref %}

Web açıklıkları hakkında daha fazla bilgi bulun:

Sayfaları Değişiklikler İçin İzle

Sayfalarda olası güvenlik açıklıkları ekleyebilecek değişiklikleri izlemek için https://github.com/dgtlmoon/changedetection.io gibi araçları kullanabilirsiniz.

Eğer hacking kariyerine 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}
AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları: