Post

Web Pentest

Web Pentest

Walking An Application - Manual Web Review Notes

Giới Thiệu

Tổng quan về việc đánh giá thủ công một ứng dụng web sử dụng các công cụ tích hợp sẵn trong trình duyệt (Browser DevTools). Các công cụ quét tự động thường bỏ sót các lỗ hổng logic hoặc thông tin nhạy cảm mà việc rà soát thủ công có thể phát hiện.

Các công cụ chính trong trình duyệt:

  • View Source: Xem mã nguồn human-readable (HTML, CSS, JS).
  • Inspector: Kiểm tra và chỉnh sửa phần tử trang (DOM) thời gian thực.
  • Debugger: Kiểm tra luồng hoạt động của JavaScript.
  • Network: Theo dõi các request mạng (API, AJAX, resources).

1. View Source (Xem Mã Nguồn)

Mã nguồn trả về từ server bao gồm HTML (cấu trúc), CSS (giao diện) và JavaScript (tương tác).

Cách truy cập:

  • Chuột phải -> View Page Source.
  • Hoặc thêm view-source: trước URL.

    1
    
      view-source:https://www.google.com/
    

Các thành phần cần khai thác:

A. Comments (Ghi chú ẩn)

Developer thường để lại ghi chú giải thích code hoặc nhắc nhở (TODO), đôi khi chứa thông tin nhạy cảm hoặc đường dẫn ẩn.

  • Cú pháp: <!-- -->
  • Mục tiêu: Tìm thông tin về phiên bản, đường dẫn “dev”, hoặc cờ (flags).

Kiểm tra các thẻ <a> để tìm các trang không được công bố công khai.

  • Mục tiêu: Tìm các trang quản trị, trang lưu trữ nội bộ (Admin panels, private areas).
  • Ví dụ: Các đường dẫn bắt đầu bằng “secr…”, “admin…”, “backup…”.

C. External Files & Directory Listing (Tệp tin mở rộng)

Các file CSS, JS, Image thường được include. Nếu server cấu hình sai (Misconfiguration), có thể lộ Directory Listing.

  • Lỗ hổng: Truy cập trực tiếp vào thư mục chứa assets có thể liệt kê toàn bộ file.
  • Rủi ro: Lộ backup files, source code, file cấu hình,…

D. Frameworks & Versioning

Source code thường để lại dấu hiệu về Framework sử dụng (React, Angular, Bootstrap, v.v…) và phiên bản cụ thể.

  • Mục tiêu: Xác định phiên bản cũ (outdated) để tìm CVE (Common Vulnerabilities and Exposures) công khai.
  • Kiểm tra phần cuối trang hoặc các comment bản quyền để tìm thông tin version.

2. Inspector (Kiểm Tra Phần Tử)

Khác với View Source (mã tĩnh), Inspector hiển thị DOM hiện tại (live view) sau khi đã được render và xử lý bởi JS/CSS.

Tính năng:

  • Xem cấu trúc HTML hiện tại.
  • Chỉnh sửa giá trị CSS, HTML tạm thời trên trình duyệt (Client-side).

Ứng dụng Pentest: Bypass Client-Side Restrictions (Paywalls)

Nội dung bị chặn bởi các lớp phủ (overlay) hoặc thông báo “Premium Customer” thường chỉ là ẩn đi về mặt giao diện (CSS). Kỹ thuật Bypass:

  1. Chuột phải vào phần tử chặn -> Inspect.
  2. Tìm thẻ <div> hoặc class liên quan (ví dụ: premium-customer-blocker).
  3. Sửa thuộc tính CSS:
    • Từ display: block thành display: none.
    • Hoặc xóa node HTML đó đi.
  4. Kết quả: Lớp phủ biến mất, lộ nội dung gốc bên dưới.

Lưu ý: Việc chỉnh sửa này chỉ có tác dụng cục bộ trên trình duyệt của attacker, không thay đổi dữ liệu trên server.


3. Debugger (Gỡ Lỗi JavaScript)

Dùng để phân tích sâu mã nguồn JavaScript, đặc biệt hữu ích để hiểu logic client-side hoặc de-obfuscate code.

  • Chrome: Tab “Sources”.
  • Firefox/Safari: Tab “Debugger”.

Quy trình phân tích:

  1. Assets Discovery: Tìm các file .js trong cây thư mục (ví dụ: flash.min.js).
  2. Pretty Print: Format lại code bị nén (minified/obfuscated) để dễ đọc hơn (biểu tượng {}).
  3. Breakpoints (Điểm ngắt):
    • Tìm đoạn code xử lý logic (ví dụ: hàm xóa thông báo flash['remove']()).
    • Click vào số dòng để đặt Breakpoint.
    • Refresh trang (F5).
    • Trình duyệt sẽ tạm dừng thực thi tại dòng đó.
  4. Khai thác:
    • Ngăn chặn JS xóa các thông báo lỗi hoặc thông tin quan trọng xuất hiện thoáng qua (red flash).
    • Xem giá trị biến tại thời điểm dừng.

4. Network (Phân Tích Mạng)

Theo dõi tất cả external requests (Files, API calls) mà trang web thực hiện.

Ứng dụng Pentest:

  1. Monitor Requests: Mở tab Network -> Refresh trang để xem toàn bộ resources được tải.
  2. Analyze:
    • Điền form hoặc thao tác trên giao diện web.
    • Quan sát request mới xuất hiện (thường là POST hoặc GET ,…
    • Kiểm tra Headers, Payload, và Response.
  3. Information Disclosure: Response từ server có thể chứa dữ liệu ẩn không hiển thị lên giao diện người dùng.

Mẹo: Sử dụng tính năng Filter hoặc icon “Trash can” để làm sạch log trước khi thực hiện hành động cần kiểm tra.


Web Security - Content Discovery

Khái Niệm Cơ Bản

1. “Content” trong Web Security là gì?

Trong ngữ cảnh bảo mật ứng dụng web, “Content” không chỉ là nội dung hiển thị (text/image) mà bao gồm mọi tài nguyên nằm trên máy chủ:

  • Tệp tin (Files), Video, Hình ảnh.
  • Các bản sao lưu (Backups).
  • Các tệp cấu hình (Configuration files).
  • Tính năng của website (Website features).
  • Các phiên bản cũ của website.
  • Cổng thông tin nội bộ (Staff portals), bảng quản trị (Admin panels).

2. Content Discovery là gì?

Là quá trình tìm kiếm những tài nguyên không được hiển thị công khai hoặc không chủ đích cho phép truy cập công cộng.

  • Mục tiêu: Tìm ra các tài sản bị ẩn (hidden assets) mà developer hoặc admin vô tình để lộ.
  • Tại sao quan trọng?: Các tài nguyên này thường chứa thông tin nhạy cảm, logic nghiệp vụ, hoặc các điểm yếu bảo mật chưa được vá.

Phương Pháp Khám Phá (Methodology)

Có 3 phương pháp chính để thực hiện Content Discovery:

A. Manual

Có rất nhiều nơi để ta có thể khám phá nội dung một cách thủ công. Trong đó gồm:

1. Robots.txt

Tệp robots.txt là một tài liệu cho công cụ tìm kiếm biết trang nào chúng được phép và không được phép hiển thị trên kết quả tìm kiếm của chúng, hoặc cấm hoàn toàn các công cụ tìm kiếm cụ thể thu thập dữ liệu trang web. Việc hạn chế một số khu vực nhất định của trang web để chúng không hiển thị trong kết quả tìm kiếm có thể là một thông lệ phổ biến. Những trang này có thể là các khu vực như cổng thông tin quản trị hoặc các tệp dành cho khách hàng của trang web. Tệp này cung cấp cho chúng ta một danh sách tuyệt vời các vị trí trên trang web mà chủ sở hữu không muốn chúng ta khám phá với tư cách là người kiểm tra thâm nhập.

Các chỉ thị chính:

  • User-agent:: Xác định công cụ tìm kiếm hoặc robot nào mà quy tắc áp dụng (ví dụ: User-agent: * áp dụng cho tất cả).
  • Disallow:: Chỉ thị này cho robot biết không được truy cập vào đường dẫn cụ thể sau nó (ví dụ: Disallow: /admin/ hoặc Disallow: /private-files/).

2. Favicon

Favicon (viết tắt của Favorite Icon) là một biểu tượng nhỏ được hiển thị trên thanh địa chỉ hoặc tab của trình duyệt, được sử dụng để nhận diện thương hiệu cho một trang web.

Đôi khi, khi các framework được sử dụng để xây dựng trang web, một favicon là một phần của quá trình cài đặt có thể bị bỏ sót. Nếu nhà phát triển trang web không thay thế nó bằng một biểu tượng tùy chỉnh, điều này có thể cung cấp cho chúng ta manh mối về framework đang được sử dụng.

Tổ chức OWASP lưu trữ một cơ sở dữ liệu về các biểu tượng framework phổ biến mà bạn có thể sử dụng để đối chiếu với favicon của mục tiêu: https://wiki.owasp.org/index.php/OWASP_favicon_database.

Khi chúng ta đã biết được framework hoặc công nghệ đang được sử dụng, chúng ta có thể sử dụng các tài nguyên bên ngoài để khám phá thêm về các lỗ hổng tiềm ẩn Bạn có thể chạy lệnh sau để tải xuống favicon và lấy giá trị hàm băm MD5 của nó, sau đó bạn có thể tra cứu giá trị này trên cơ sở dữ liệu của OWASP:

1
curl https://victim/pathtofavicon/favicon.ico | md5sum

3. Sitemap.xml

Không giống như tệp robots.txt, vốn hạn chế những gì công cụ thu thập dữ liệu (crawlers) của công cụ tìm kiếm có thể xem, tệp sitemap.xml cung cấp một danh sách mọi tệp mà chủ sở hữu trang web muốn được liệt kê trên công cụ tìm kiếm.

Tệp này đôi khi có thể chứa các khu vực của trang web khó điều hướng hơn một chút hoặc thậm chí liệt kê một số trang web cũ mà trang web hiện tại không còn sử dụng nhưng vẫn hoạt động ở hậu trường.

Đối với kiểm thử thâm nhập, sitemap.xml rất hữu ích vì nó đảm bảo chúng ta không bỏ sót bất kỳ trang nào. Nó giống như một “bản liệt kê đầy đủ” mà chính chủ sở hữu trang web đã cung cấp.

4. HTTP Headers

Khi chúng ta thực hiện các yêu cầu (requests) đến máy chủ web, máy chủ sẽ trả về nhiều tiêu đề HTTP khác nhau.

Các tiêu đề này đôi khi có thể chứa thông tin hữu ích như:

  • Phần mềm máy chủ web đang sử dụng.
  • Ngôn ngữ lập trình/kịch bản (scripting language) đang hoạt động.

Cách kiểm tra bằng câu lệnh. Tham số -v buộc curl hiển thị toàn bộ quá trình giao tiếp, bao gồm các tiêu đề HTTP được gửi từ máy chủ:

1
curl -v http://victim.url

Ngoài ra cũng có thể bắt request thông qua burpsuite để nhận những thông tin như bên trên.

5. Framework Stack

Khi bạn đã xác định được framework của một trang web, dù là từ favicon hay bằng cách tìm kiếm manh mối trong mã nguồn trang, bạn có thể tìm đến trang web của framework đó.

Từ trang web của framework, chúng ta có thể tìm hiểu thêm về phần mềm và các thông tin khác, có khả năng dẫn đến việc khám phá thêm nội dung mới trên trang web mục tiêu.

Ví dụ:

  • Tài liệu (Documentation): Tài liệu của framework thường tiết lộ các đường dẫn mặc định đến các khu vực quan trọng như cổng thông tin quản trị (/admin, /controlpanel), các tệp cấu hình, hoặc các lỗi bảo mật đã biết.
  • Thông báo (Release Notes/Changelogs): Việc biết phiên bản framework giúp bạn tìm kiếm các lỗ hổng (vulnerabilities) cụ thể đã được công bố công khai (CVEs).

B. Osint

Thu thập thông tin từ các nguồn công khai bên ngoài (Google Dorks, Wayback Machine, GitHub, v.v.) để tìm dấu vết về cấu trúc website.

1. Google Hacking / Dorking

Google Dorking (hay còn gọi là Google Hacking) tận dụng các toán tử tìm kiếm chuyên biệt để phát hiện các tài nguyên được lập chỉ mục công khai như tệp, thư mục và trang đăng nhập mà các tổ chức chưa bao giờ có ý định công khai. Khác với các kỹ thuật quét chủ động như thu thập dữ liệu web (web crawling) hoặc vét cạn DNS (DNS brute-forcing), Dorking hoàn toàn thụ động – nghĩa là không có dấu vết hoạt động nào của bạn bị lưu lại trên hệ thống mục tiêu.

Tại sao Google Dorking là kỹ năng thiết yếu đối với Bug Bounty Hunters?

Đối với những người săn tiền thưởng lỗi, việc làm chủ Google Dorking có nghĩa là bao quát được nhiều phạm vi hơn với ít nỗ lực hơn và xác định được các lỗ hổng mà những người săn khác có thể bỏ lỡ.

Phương pháp trinh sát này trao quyền cho các hacker nhanh chóng thu thập thông tin tình báo chất lượng cao, có sẵn công khai về các ứng dụng mục tiêu. Việc nắm vững các toán tử tìm kiếm của Google có thể tăng cường hữu ích cho các kỹ thuật trinh sát như định danh công nghệ (fingerprinting) và giúp khám phá các tài sản bị lộ như các tên miền phụ bị lãng quên, các thư mục bị cấu hình sai và các tệp nhạy cảm.

Cơ sở dữ liệu Google Dorks do cộng đồng của ExploitDB đóng góp là một tài nguyên đặc biệt vô giá để cập nhật các kỹ thuật tìm kiếm và các vectơ tấn công đang phát triển.

Các Toán tử Google Dorking Cốt lõi cho Trinh sát Thụ động

Dưới đây là danh sách các toán tử tìm kiếm Google thường được sử dụng trong Dorking nâng cao:

Toán tửVí dụMô tả
definedefine:zero-dayHiển thị định nghĩa của một từ
cachecache:tryhackme.comHiển thị phiên bản được Google lưu trong bộ nhớ cache của một trang
filetypefiletype:pdfTìm các tệp có loại cụ thể (ví dụ: PDF)
extext:logGiống như filetype: (dạng thay thế)
sitesite:tryhackme.comTìm kiếm trong một trang web hoặc tên miền cụ thể
relatedrelated:google.comTìm các trang web tương tự với một URL đã cho
intitleintitle:adminTìm các trang có thuật ngữ trong tiêu đề
allintitleallintitle:dashboard panelTất cả các thuật ngữ phải xuất hiện trong tiêu đề
inurlinurl:loginTìm các trang có thuật ngữ trong URL
allinurlallinurl:backup databaseTất cả các thuật ngữ phải xuất hiện trong URL
intextintext:passwordTìm các trang có thuật ngữ trong nội dung văn bản
allintextallintext:api keyTất cả các thuật ngữ phải xuất hiện trong nội dung văn bản
weatherweather:HanoiHiển thị thời tiết cho một địa điểm
stocksstocks:GOOGHiển thị thông tin chứng khoán cho một mã giao dịch
mapmap:LondonHiển thị bản đồ cho một địa điểm
moviemovie:InceptionTìm thông tin về một bộ phim hoặc suất chiếu
sourcesource:BBCLọc tin tức theo nguồn (được sử dụng trong Google News)
beforewebsite before:2024-01-01Tìm kết quả được xuất bản trước một ngày
afterwebsite after:2023-01-01Tìm kết quả được xuất bản sau một ngày
inanchorinanchor:documentsTìm các trang có thuật ngữ trong văn bản neo (anchor text)
allinanchorallinanchor:click hereTất cả các thuật ngữ phải có trong văn bản neo
locloc:CaliforniaGiới hạn kết quả ở một vị trí cụ thể
locationlocation:USTương tự như loc:, để lọc vị trí tin tức
daterangetarget daterange:2458485-2458515Lọc theo phạm vi ngày Julian
AROUND(X)password AROUND(5) databaseTìm các từ gần nhau, cách nhau tối đa $X$ từ
OR hoặc |admin OR portal hoặc admin \| portalTìm kết quả chứa ít nhất một trong các thuật ngữ
ANDlogin AND secretNgụ ý cả hai thuật ngữ phải xuất hiện
- (Dấu trừ)site:example.com -adminLoại trừ các kết quả chứa thuật ngữ đó
* (Dấu sao)intitle:"index of / *"Hoạt động như một ký tự đại diện cho một hoặc nhiều từ chưa biết
()(login OR admin) site:target.comNhóm các thuật ngữ hoặc toán tử
”“"internal network"Tìm kiếm chính xác cụm từ bên trong dấu ngoặc kép

Các Truy vấn Google Dorking Cơ bản: Ví dụ Thực hành

Trong phần này, chúng ta sẽ đi sâu vào các kỹ thuật Google Dorking phổ biến có thể khám phá các tài sản có giá trị trong mục tiêu Bug Bounty của bạn:

1. Kỹ thuật Khám phá Tên miền Phụ (Subdomain Discovery)

Liệt kê tên miền phụ là một bước trinh sát quan trọng để lập bản đồ dấu chân kỹ thuật số của một tổ chức.

  • Khám phá tên miền phụ cơ bản
    1
    
    site:*.google.com
    

    Chức năng: Trả về tất cả các tên miền phụ của tên miền mục tiêu mà Google đã thu thập và lập chỉ mục. Giá trị trinh sát: Mở rộng bề mặt tấn công bằng cách tiết lộ các điểm truy cập bổ sung có thể đã bị bỏ qua trong phạm vi ban đầu.

  • Khám phá tên miền phụ có mục tiêu
    1
    
    site:*.google.com inurl:"developer"
    

    Chức năng: Tìm kiếm tất cả các tên miền phụ liên quan đến google.com có chứa từ khóa cụ thể (developer trong ví dụ trên) trong URL. Điều này có thể nằm trong tên máy chủ hoặc trong endpoint. Giá trị trinh sát: Phát hiện các môi trường phát triển và dàn dựng (staging environments), những nơi thường có kiểm soát bảo mật yếu hơn, khiến chúng trở thành mục tiêu chính cho sự xâm nhập ban đầu. Các môi trường này có thể chứa thông tin gỡ lỗi, thông tin đăng nhập mặc định hoặc các lỗ hổng chưa được vá.

2. Săn lùng Tệp bị Ẩn

Việc khám phá các tệp bị ẩn trong các tên miền không chỉ có thể làm lộ nội dung tệp nhạy cảm mà còn xác định hiệu quả ngôn ngữ lập trình, framework hoặc các dịch vụ đang chạy của ứng dụng.

  • Định danh ngôn ngữ lập trình
    1
    
    site:*.google.com ext:php
    

    Chức năng: Xác định các tệp có phần mở rộng cụ thể trên tất cả các tên miền phụ, tiết lộ các ngôn ngữ lập trình và framework đang được sử dụng. Giá trị trinh sát: Hiểu rõ ngăn xếp công nghệ giúp các nhà nghiên cứu tập trung nỗ lực vào các lỗ hổng cụ thể theo ngôn ngữ và các cấu hình sai phổ biến.

  • Phát hiện Framework và CMS
    1
    
    site:*.google.com ext:php inurl:"wp-"
    

    Chức năng: Tìm kiếm các chỉ báo hệ thống quản lý nội dung (CMS) trong các tệp PHP, đặc biệt nhắm mục tiêu vào các cài đặt WordPress, Drupal và Joomla. Giá trị trinh sát: Các nền tảng CMS có các lỗ hổng đã được ghi chép rõ ràng. Dorks có thể xác định phiên bản nào đang chạy và giúp các nhà nghiên cứu xác định xem các CVE đã biết có áp dụng cho hệ thống mục tiêu hay không.

3. Xác định Cổng Đăng nhập (Login Portals)

Các giao diện đăng nhập đại diện cho các ranh giới bảo mật quan trọng và là mục tiêu thường xuyên cho các vectơ tấn công khác nhau, với thông tin đăng nhập yếu hoặc các lỗ hổng cho phép hacker thực hiện các cuộc tấn công tiêm nhiễm SQL, NoSQL, LDAP và các cuộc tấn công tiêm nhiễm khác.

  • Khám phá cổng đăng nhập cơ bản
    1
    
    site:*.google.com inurl:login
    

    Chức năng: Định vị các URL liên quan đến xác thực trên toàn bộ tên miền mục tiêu. Giá trị trinh sát: Mỗi cổng đăng nhập đại diện cho một vectơ tấn công tiềm năng cho tấn công nhồi thông tin đăng nhập (credential stuffing) hoặc tấn công tiêm nhiễm. Các điểm yếu trong xác thực có thể bị khai thác để có được quyền truy cập trực tiếp vào các ứng dụng mục tiêu của bạn.

  • Nhận dạng cổng đăng nhập nâng cao
    1
    
    site:*.google.com inurl:login ext:jsp -inurl:assets intext:"username" AND intext:"password"
    

    Chức năng: Xác định các biểu mẫu đăng nhập dựa trên Java (JSP) có chứa trường tên người dùng và mật khẩu trong nội dung, đồng thời lọc ra các tài sản tĩnh và các tệp mẫu (-inurl:assets). Giá trị trinh sát: Các cổng đăng nhập là ứng cử viên hàng đầu để xâm phạm hệ thống và đây là một cách chính xác, hiệu quả hơn để tìm ra các trang đăng nhập đang hoạt động hoặc các trang đăng nhập cũ.

4. Thu thập Thông tin Đăng nhập bị Lộ

Thông tin đăng nhập bị lộ, có thể dẫn đến việc xâm phạm hệ thống ngay lập tức và leo thang đặc quyền, luôn là một phát hiện Bug Bounty có tác động cao. Nhưng hãy nhớ: cẩn thận không làm rò rỉ hoặc lạm dụng bất kỳ thông tin đăng nhập nào được phát hiện.

  • Săn lùng thông tin đăng nhập trong tệp văn bản
    1
    
    site:*.google.com ext:txt inurl:password OR inurl:credentials -inurl:readme.txt
    

    Chức năng: Tìm kiếm các tệp văn bản có chứa các từ khóa liên quan đến thông tin đăng nhập, đồng thời loại trừ các tệp tài liệu phổ biến (readme.txt). Giá trị trinh sát: Các tệp văn bản bị lộ chứa thông tin đăng nhập có thể cải thiện cơ hội truy cập vào các ứng dụng trong mục tiêu của chúng ta.

  • Khám phá tệp môi trường (.env)
    1
    
    site:*.google.com filetype:env intext:password
    

    Chức năng: Nhắm mục tiêu các tệp thường lưu trữ các biến môi trường, bao gồm mật khẩu, khóa API và bí mật mã hóa. Giá trị trinh sát: Các tệp môi trường thường chứa thông tin đăng nhập sản xuất và dữ liệu cấu hình nhạy cảm có thể tạo điều kiện cho việc di chuyển ngang (lateral movement) và leo thang đặc quyền.


Điều chỉnh Google Dorks cho Mục tiêu của bạn

Việc tùy chỉnh các Google Dorks để phù hợp với mục tiêu Bug Bounty của bạn sẽ mang lại kết quả hữu ích nhất có thể. Các tìm kiếm chung chung thường chỉ hiệu quả ở mức giới hạn.

Một quy trình làm việc hiệu quả nằm ở sự tinh chỉnh lặp đi lặp lại: bắt đầu với các tìm kiếm rộng; phân tích kết quả của bạn để xác định các mẫu, công nghệ hoặc quy ước đặt tên cụ thể cho mục tiêu của bạn; và sau đó dần dần tạo ra các truy vấn chính xác hơn để cải thiện độ chính xác và mức độ liên quan của các phát hiện của bạn.

Vì vậy, hãy theo dõi các dork và kết quả của chúng, sau đó điều chỉnh các tìm kiếm của bạn cho phù hợp, và bạn có thể đạt được một phương pháp luận tập trung hơn, luôn mang lại kết quả tốt hơn so với cách tiếp cận một kích cỡ phù hợp với tất cả.

Google Dorking là một kỹ năng trinh sát bị đánh giá thấp, có lẽ vì nó đòi hỏi ít chuyên môn kỹ thuật hơn so với các phương pháp trinh sát khác. Có khả năng phát hiện ra các tên miền phụ bị lãng quên, các cổng đăng nhập bị lộ hoặc thậm chí các tệp nhạy cảm mà không cần tương tác trực tiếp với mục tiêu, nó có thể mang lại cho bạn một lợi thế nghiêm túc với tư cách là một Bug Bounty Hunter. Nó thụ động, mạnh mẽ, thân thiện với người mới bắt đầu và thành thật mà nói, khá thú vị khi bạn đã thành thạo.

Công cụ hỗ trợ web dorking: Tham khảo thêm tại https://dorkking.blindf.com/

2. Wappalyzer

Wappalyzer (https://www.wappalyzer.com/) là một công cụ trực tuyến và tiện ích mở rộng trình duyệt giúp xác định các công nghệ mà một trang web sử dụng.

Wappalyzer có thể phát hiện nhiều loại công nghệ, chẳng hạn như:

  • Frameworks: Các framework phát triển web (ví dụ: React, Angular, Laravel).
  • Hệ thống Quản lý Nội dung (CMS): (Ví dụ: WordPress, Drupal, Joomla).
  • Bộ xử lý Thanh toán: (Ví dụ: Stripe, PayPal).
  • Và nhiều loại công nghệ khác nữa. Công cụ này thậm chí còn có thể tìm thấy số phiên bản của phần mềm đang được sử dụng.

Giá trị trong Kiểm thử Thâm nhập

Đối với người kiểm thử thâm nhập hoặc săn lỗi, Wappalyzer là một công cụ định danh công nghệ (fingerprinting) thụ động cực kỳ nhanh chóng và hiệu quả.

  • Xác định phiên bản: Việc biết chính xác phiên bản phần mềm (ví dụ: “Apache 2.4.41” hoặc “PHP 7.4.3”) cho phép bạn ngay lập tức tra cứu các lỗ hổng đã biết (CVEs) liên quan đến phiên bản đó.
  • Thu hẹp phạm vi tìm kiếm: Thay vì tìm kiếm các lỗ hổng chung chung, bạn có thể tập trung nỗ lực vào các điểm yếu cụ thể của một CMS hoặc framework đã được xác định.

3. Wayback Machine

Wayback Machine (https://archive.org/web/) là một kho lưu trữ lịch sử của các trang web, có niên đại từ cuối những năm 90. Bạn có thể tìm kiếm một tên miền và dịch vụ này sẽ hiển thị tất cả các lần dịch vụ đã quét trang web và lưu lại nội dung. Dịch vụ này có thể giúp khám phá các trang cũ mà có thể vẫn còn hoạt động trên trang web hiện tại.

4. Github

GitHub là gì?

Để hiểu về GitHub, trước tiên cần hiểu về Git:

  1. Git:
    • Là một hệ thống kiểm soát phiên bản (Version Control System).
    • Chức năng chính là theo dõi các thay đổi đối với các tệp tin trong một dự án theo thời gian.
    • Giúp làm việc nhóm dễ dàng hơn vì mọi người có thể thấy thành viên khác đang chỉnh sửa gì và họ đã thực hiện những thay đổi nào.
    • Khi người dùng hoàn thành thay đổi, họ sẽ commit (cam kết) chúng bằng một thông báo và sau đó push (đẩy) chúng trở lại kho lưu trữ trung tâm (repository).
    • Các thành viên khác có thể pull (kéo) những thay đổi đó về máy tính cục bộ của họ.
  2. GitHub:
    • Là một phiên bản Git được lưu trữ (hosted version of Git) trên Internet.
    • Nó cung cấp một giao diện web, các công cụ quản lý dự án, và khả năng hợp tác giữa các nhóm.
    • Các kho lưu trữ (Repositories) trên GitHub có thể được đặt ở chế độ công khai (public) hoặc riêng tư (private) và có các cơ chế kiểm soát truy cập khác nhau.
Cách sử dụng GitHub (Trong bối cảnh tìm kiếm thông tin)

Như thông tin bạn cung cấp, tính năng tìm kiếm của GitHub rất hữu ích để khám phá các thông tin nhạy cảm:

  1. Tìm kiếm Mục tiêu:
    • Sử dụng tính năng tìm kiếm của GitHub để tìm kiếm tên công ty, tên miền/website hoặc các từ khóa liên quan đến mục tiêu của bạn.
  2. Mục đích:
    • Mục đích là để xác định các kho lưu trữ (repository) có thể thuộc về hoặc liên quan đến mục tiêu của bạn.
  3. Khám phá Nội dung:
    • Khi tìm thấy một kho lưu trữ công khai, bạn có thể có quyền truy cập vào:
      • Mã nguồn (Source Code): Mã chương trình đã được phát triển.
      • Mật khẩu/Khóa (Passwords/Keys): Đôi khi các nhà phát triển vô tình lưu trữ thông tin xác thực nhạy cảm (như API keys, mật khẩu database) trong mã nguồn.
      • Các nội dung khác: Các tệp cấu hình, tài liệu hoặc thông tin mà bạn chưa tìm thấy ở các nguồn khác.

5. S3 Buckets

C. Automated

Sử dụng công cụ (Tools/Scripts) để brute-force, fuzzing đường dẫn và tệp tin (ví dụ: ffuf, gobuster, dirb).


This post is licensed under CC BY 4.0 by the author.