Web Pentest - Bài 8: Một số extension trên Burp Suite giúp bạn pentest tốt hơn

Thảo luận trong 'Web Security' bắt đầu bởi bobby13689, 12/10/21, 11:10 PM.

  1. bobby13689

    bobby13689 Moderator Thành viên BQT

    Tham gia: 27/04/17, 09:04 AM
    Bài viết: 39
    Đã được thích: 44
    Điểm thành tích:
    18
    Chào các bạn,

    Tiếp theo trong chuỗi bài về web pentest cho newbie, hôm nay mình giới thiệu cùng các bạn một số extension thường xuyên được sử dụng trong quá trình pentest, giúp các bạn thực hiện một cách hiệu quả hơn.

    Burp Suite như mình có giới thiệu từ những bài đầu tiên, là công cụ rất phổ biến mà hầu hết các bạn làm web pentest đều sử dụng, ngoài những tính năng hữu ích mà nó mang lại, Burp còn có 1 hệ sinh thái các extension (phần mở rộng) do cộng đồng xây dựng, với rất nhiều tính năng "power" khác, phục vụ đầy đủ các nhu cầu từ những nhu cầu chung nhất, như thêm các "checker" khi scan, hoặc các nhu cầu tùy theo đặc thù của từng ứng dụng, ví dụ bypass request hash checking (client) chẳng hạn.

    Trong khuôn khổ bài này, mình sẽ giới thiệu một số extension mà mình nghĩ là sẽ giúp các bạn sử dụng Burp Suite một cách hiệu quả hơn nữa.
    1. AutoRepeater/Autorize/AuthMatrix
      upload_2021-10-12_23-38-55.png
      Các extension này sẽ giúp các bạn tự động hóa phần nào việc tìm các lỗ hổng liên quan đến phân quyền.
      Một ví dụ điển hình: khi tìm kiếm các lỗ hổng liên quan đến phân quyền, ví dụ như IDOR, với request như sau:
      Thông thường, các bạn sẽ chọn cách tăng userId thành 2, thành 3, một cách thủ công (thông qua Repeater) để kiểm tra xem ứng dụng có trả về thông tin của userId=2 hay không.

      Sẽ rất đơn giản nếu ứng dụng bạn cần đánh giá chỉ có một vài APIs, nhưng đó không phải là trường hợp mà bạn sẽ gặp thường xuyên trong thực tế, mà là rất rất nhiều APIs khác nhau, vậy thì làm cách nào bạn có thể tự động hóa việc thay đổi đó, trong toàn bộ các API mà bạn lướt qua? Đó chính là lúc những extension này phát huy tác dụng.
      Ở đây mình ví dụ với AutoRepeater, bạn chỉ cần tạo một rule mới như sau:
      upload_2021-10-12_23-39-36.png
      Khi đó, mỗi request bạn tạo ra khi sử dụng ứng dụng web, extension này sẽ tự động tạo 1 request mới, với giá trị userId=3, và so sánh kết quả trả về so với kết quả gốc (userid=1). upload_2021-10-12_23-39-51.png Tương tự như thế với các trường hợp như sau:
      Mã:
      id=1
      username=a
      reportId=100
      ...
      Khi đó, các bạn đã có được một bộ rule cơ bản, giúp các bạn tiết kiệm thời gian, và sử dụng thời gian đó tìm tiếp những bug phân quyền đòi hỏi phải làm thủ công.
    2. Một số scanner bổ sung
      Burp Suite (bản pro) đã được trang bị một scan engine cơ bản, bởi vì là một engine chung, nên khó mà đòi hỏi nó scan một cách hiệu quả, scan ra được nhiều bug được, do đó chúng ta cần trang bị thêm một số "check" (hiểu đơn giản là cung cấp cho engine thông tin để nó nhận dạng như thế nào là một bug), để giúp engine này nhận ra nhiều dạng lỗ hổng hơn. Một vài trong số đó có thể kể đến:
      Active Scan++ (Vẫn được update thường xuyên)
      upload_2021-10-12_23-41-34.png
      Freddy, Deserialization Bug Finder (lần cuối cập nhật: 02 Apr, 2020)
      Thêm các check liên quan đến deserialization
      upload_2021-10-12_23-51-1.png
      HTTP Request Smuggler (cập nhật thường xuyên)
      Thêm các check rất chi tiết về HTTP Request Smuggler
      upload_2021-10-12_23-49-14.png
      Và còn rất nhiều nữa, các bạn có thể tự mình khám phá thêm những tính năng của chúng ở BApp Store nhé.
    3. Burp Bounty, Scan Check Builder
      Như mình có nói ở trên, vì engine mặc định của Burp khá là chung chung và chưa hiệu quả, nên chúng ta cần bổ sung thêm những check cần thiết cho nó, thì ngoài cách sử dụng những extension ở phía trên - chúng thêm các check một cách "cứng", bạn không thể thay thế các check đó (ngoài việc chỉnh sửa source code và tự build lại), thì có một cách khác là sử dụng Burp Bounty, Scan Check Builder.

      Extension này cho phép bạn thêm các check mới một cách dễ dàng (qua giao diện) và lưu lại thành file để bạn có thể sử dụng về sau, hoặc share cho bạn bè,...

      Dưới đây là giao diện sau khi cài đặt xong extension, mặc định nó sẽ cho bạn một số check (tác giả gọi là profile)
      upload_2021-10-12_23-52-48.png
      Ở trong mỗi profile này, sẽ định nghĩa cách engine tìm bug, ví dụ như sau:
      upload_2021-10-12_23-53-35.png
      upload_2021-10-12_23-53-40.png
      Ở rule này, engine sẽ thử thay thế toàn bộ giá trị của các trường ở trong request, với giá trị: "true,../../../../../usr/local/tomcat/groovy", và nếu trong response chỉ cần có chuỗi "true PersistentManagerBase", thì sẽ tính là 1 bug, và sẽ hiển thị ngay trong dashboard của Burp.

      Một điểm rất hay của extension này, là bạn có thể tự tạo một bộ check cho riêng mình, và sẽ được ghi nhận rất chi tiết ở Burp (như là một bug mà Burp tìm ra), do đó có thể tận dụng làm luồng tự động của bạn, ví dụ:

      Đối với mỗi project mình pentest, mình muốn build report toàn bộ các bug một cách nhanh nhất, đầy đủ thông tin nhất, nhưng lại phải copy request, response, references, từ nơi này sang nơi khác, mà lại có rất nhiều thông tin cần để report.

      Thì khi đó mình chỉ cần tạo thêm các check ở extension này, tự động đẩy bug ở Burp vào report engine (tự viết/đã có), với đầy đủ các thông tin mà report cần và chúng nó sẽ tự tạo report theo ý mình muốn mà thậm chí không cần rời tay khỏi Burp. Khi đó, việc report chỉ cần 1 cú click chuột. ;)
    4. Autowasp
      Ở những bài đầu tiên, mình có đề cập đến sử dụng OWASP testing guide như là một kim chỉ nam cho chúng ta trong quá trình pentest. Và để giúp chúng ta giữ được đúng hướng, đi theo cách làm đó, thì làm cách nào để chúng ta có thể đánh dấu là đã test cái gì, cái gì chưa test, note như thế nào, thì extension này sinh ra để hỗ trợ chúng ta trong việc đó.

      upload_2021-10-12_23-54-17.png
      Khi mới cài xong extension này, bạn nhớ Fetch WSTG Checklist để nó tải trực tiếp checklist ở internet về máy nhé. Đối với mỗi mục, sẽ có thông tin tương ứng như Summary, How to test, ..., hoặc nếu bạn muốn exclude nó ra khỏi quá trình test, thì có thể chọn nút tick ở phía bên phải, hoặc có thể tận dụng nó để tracking tiến độ test.

      Ngoài việc kéo checklist từ internet về, bạn cũng có thể tự tạo checklist cho riêng mình, ví dụ: khi test các ứng dụng ở công ty thì bạn dùng checklist A, khi bạn đi hunting, thì các bạn dùng checklist B,...
    5. Một số extension khác
      Vì bài đã dài rồi, nên mình sẽ bổ sung thêm một số extension "vui vui" khác để các bạn có thể tìm và trải nghiệm thêm.
      • Turbo Intruder: giúp bạn tăng tốc quá trình chạy Intruder.
      • Param miner: giúp bạn tìm những parameter ẩn trong ứng dụng.
      • Copy as Python-Request: giúp bạn chuyển một request bất kì thành code python (cho những bạn lười biếng như mình :D).
      • Backslash Powered scanner: lại thêm một số check nữa.
      • GraphQL Rider: rất hữu dụng khi bạn pentest một ứng dụng sử dụng GraphQL.
      • ...
        Có rất nhiều extension hay khác mà mình không kịp chia sẻ ở đây, các bạn có cái nào hay, giúp ích cho công việc của các bạn thì hãy comment chia sẻ với cộng đồng, để mọi người cùng biết nhé.
    Trước khi kết bài thì mình vẫn phải nói lại một lần nữa, là những extension này sẽ hỗ trợ phần nào, chứ không phải làm hoàn toàn việc pentest, các bạn nhé. Việc đánh giá nó không dừng lại ở việc cài thật nhiều extension rồi nhấn nút scan đâu, mà phần quan trọng nhất vẫn là phần làm thủ công của các bạn. Với cá nhân mình, phần scan này chỉ chiếm 20% số lượng bug mà mình tìm ra, còn 80% còn lại? vẫn là do "bàn tay ta làm nên tất cả".

    Cảm ơn các bạn đã đọc hết bài. Chào các bạn.

    Happy Hacking.

    M.
     

    Các file đính kèm:

    Chỉnh sửa cuối: 13/10/21, 12:10 AM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    Hoàng Kim Phú and nǝıH like this.
  1. tuantran
  2. bobby13689
  3. tuantran
  4. tuantran
  5. tuantran