hkln1
tradahacking
Published in
3 min readAug 13, 2019

--

Tìm lỗi SQL injection trong bug bounty program bằng cách fuzzer

  • Nhận được lời mời từ một private program, nhưng không phải tài một. Nó start được nửa năm rùi... Như thường lệ tui để ý xem có bao nhiêu report đã được reward.
  • Cũng hem có nhiều lắm =)). Tiếp tục nhìn vào xem loại lỗi nào đã được submit, thường tui hay để ý các loại lỗi server-site.
  • Oh kìa, có SQL injection kìa mấy bạng. hiu hiu. Thế là lao vô này nọ các kiểu xem có endpoint nào bị bỏ sót ko…Một ngày trời lục tung cái app, duma nó sh*t cũng ko có mà ăn :((. Chắc nó fix hết moẹ roài…
  • Phải chuyển chiến thuật thôi…Tui đi lần lượt lại các function, cố gắng chọn hết option rồi submit các form. Sau đó note lại các endpoint đó, đảm bảo nó bao gồm nhiều parameter nhất có thể. Tiếp tục tui xem lại các request trong Proxy History của Burp, xem có request nào tiềm năng ko rồi đoán tên parameter và thêm vào thực thi xem nó chấp nhận không. Sau khi tổng hợp list endpoint, tui bắt đầu dùng Intruder với checklist sau để fuzz hết các parameter của list endpoint đó. Nhưng trước khi fuzz tui phải đảm bảo nó không có waf/filter. Vì nếu có waf/filter ta khó có thể tiếp cận cách này. Những payload sau chưa được obfuscate để bypass waf/filter.
  • Cái checklist này rất hiệu quả khi mình phải đối mặt với nhiều endpoint và mỗi endpoint có quá nhiều parameter (không thể manual hết) và ngữ cảnh câu query quá phức tạp.
  • Nó hỗ trợ các database: DB2, FIREBIRD, MAXDB, MSSQL-SYBASE, MYSQL, POSTGRESQL, ORACLE, SQL-92, SQLITE. Hỗ trợ boundaries như ‘, “, (‘, (“ cũng như không có boundary. Hỗ trợ ngữ cảnh SELECT, UPDATE, DELETE, INSERT và column name. Đặc biệt dùng nó detect mà không sợ ảnh hưởng đến DB trong ngữ cảnh UPDATE, DELETE, INSERT.
  • Khi bỏ payload vào Intruder, tui set Number of threads là 1 và lần lượt chạy từng endpoint trong list.
  • Sau khi fuzz hết các parameter của một endpoint, tui vào Column/Response received check vào để xem payload nào có số cao. Cứ thế, tui kiên nhẫn làm hết đống endpoint và trời không phụ người có lòng. Tui đã lượm mót được 2 lỗi SQLi. Hi hi. Happy hacking ! :)

--

--