Một số thủ thuật để sử dụng SQLmap hiệu quả hơn

DDos

VIP Members
22/10/2013
524
2.191 bài viết
Một số thủ thuật để sử dụng SQLmap hiệu quả hơn
Khi nhắc đến công cụ tìm kiếm lỗ hổng SQL injection trong một website, chúng ta không thể không nhắc tới SQLmap. SQLmap là một công cụ toàn diện được viết trong ngôn ngữ lập trình python, có API riêng để tích hợp vào các ứng dụng dò quét bảo mật. Trong bài viết này, mình sẽ giới thiệu với các bạn các thủ thuật nhỏ mình hay sử dụng trong quá trình tìm lỗ hổng SQLi sử dụng SQLmap.

Sử dụng SQLmap với các tamper để vượt qua tường lửa nhằm phát hiện lỗ hổng SQLi trong ứng dụng web.

Hiện nay, hầu hết các trang web đã quan tâm tới yếu tố bảo mật hơn, các trang web thường sử dụng các biện pháp phát hiện và ngăn chặn tấn công web, gọi chung là tường lửa ứng dụng web (WAF). SQLmap trang bị cho bạn với các tamper nhằm mục đích vượt qua tường lửa. Các tamper này sử dụng các công nghệ mã hóa khác nhau, thủ thuật khác nhau. Khi dò lỗ hổng SQLi, câu lệnh mình hay sử dụng nhất đó là:

Mã:
sqlmap -u 'https://www.target.com/php_id=1’ --level=5 --risk=3 -p 'item1' --tamper=apostrophemask,apostrophenullencode,base64encode,between,chardoubleencode,charencode,charunicodeencode,equaltolike,greatest,ifnull2ifisnull,multiplespaces,percentage,randomcase,space2comment,space2plus,space2randomblank,unionalltounion,unmagicquotes

Để tiết kiệm thời gian hơn trong việc rò quét, nếu bạn đã biết chắc chắn hệ quản trị cơ sở dữ liệu trên ứng dụng web, thì bạn sử dụng các tamper dưới đây:

  • MSSQL
Mã:
tamper=between,charencode,charunicodeencode,equaltolike,greatest,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,sp_password,space2comment,space2dash,space2mssqlblank,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes
  • MySQL
Mã:
 tamper=between,bluecoat,charencode,charunicodeencode,concat2concatws,equaltolike,greatest,halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2hash,space2morehash,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes,versionedkeywords,versionedmorekeywords,xforwardedfor

Tìm lỗ hổng SQLi trong yêu cầu POST

Thông thường, các ứng dụng web tồn tại lỗ hổng SQLi trong các yêu cầu GET, nhưng đôi khi lỗ hổng SQLi lại bắt nguồn từ yêu cầu POST, chẳng hạn như khi bạn nhập username/password vào ứng dụng web là ví dụ điển hình cho một yêu cầu POST.
Để đơn giản hóa quá trình sử dụng sqlmap trong tình huống này, bạn cần sử dụng burpsuite và lưu lại yêu cầu POST trong ứng dụng.

Capture-1-1024x526.png


Ở đây, mình lưu yêu cầu POST thành file ddos.txt. Để kiểm tra tham số title trong yêu cầu POST, bạn sử dụng SQLmap với lệnh

Capture1-1.png

Dò quét nhiều trang web một lúc

Theo mặc định, SQLmap sẽ chỉ quét một trang web nhất định đằng sau tham số "-u", trong trường hợp, bạn muốn SQLmap quét nhiều trang web một lúc. Thay vì phải sử dụng nhiều ứng dụng terminal khác nhau, bạn có thể yêu cầu SQLmap dò quét nhiều trang web đồng thời. Để làm được việc này, bạn làm như sau:
  • Lưu các yêu cầu tới ứng dụng web sử dụng burpsuite. Ở đây, bạn chọn các mục tiêu cụ thể, sau đó lưu lại
Screenshot-from-2016-11-11-13-18-21.png

  • Lưu các yêu cầu này thành một file có phần mở rộng là .bat. Sau đó sử dụng SQLmap với lệnh:
Mã:
sqlmap --batch -l /root/Desktop/target.bat
3target.PNG

Sử dụng SQLmap với Google Dorking

Sử dụng các từ khóa tìm kiếm nâng cao, giúp bạn dễ dàng phát hiện ra các trang web có thể tồn tại lỗ hổng SQLi. SQLmap tích hợp sẵn một tham số giúp bạn dò quét lần lượt tất cả các website hiển thị trong kết quả tìm kiếm của Google với từ khóa của bạn cung cấp. Để tự tích hợp SQLmap với Google dorking bạn làm như sau:
  • Mình sử dụng cụm từ khóa tìm kiếm "inurl:\"php?id=\". Câu lệnh sử dụng sẽ là:
Mã:
python sqlmap.py -g "inurl:\"php?id=\"" --random-agent -f --batch --answer="extending=N,follow=N,keep=N,exploit=n"
target.PNG


Như bạn có thể thấy trong hình trên, SQLmap tự động dò quét kết quả trang web đầu tiên hiển thị trên trang tìm kiếm Google. Quá trình này sẽ dừng lại cho đến khi không còn thấy kết quả trả về trong trang tìm kiếm.
  • Để thấy tất cả các mục tiêu mà SQLmap đã dò quét, bạn tìm đến thư mục .sqlmap (nó là một thư mục ẩn)
Capture111.PNG


Trong hình này, SQLmap đã kiểm tra 5 trang web. Trong file target.txt, bạn sẽ nhìn thấy đường dẫn mà SQLmap đã quét. File log, sẽ cho bạn thấy kết quả của quá trình quét.

colum.PNG


Cuối cùng, để dò quét một website nhất định mà bạn đang nhắm mục tiêu, bạn chỉ cần dùng lệnh: sqlmap --wizard và dán dường dẫn trong file target.txt là xong.

Sử dụng SQLmap với giao diện đồ họa

Nếu bạn là một người mới làm quen với SQLmap hoặc thích sử dụng giao diện đồ họa hơn. Bạn có thể sử dụng giao diện đồ họa của SQLmap dễ dàng với project SQLmap-WebGUI.

sqlmap-1024x755-1024x755.jpg


Chi tiết và cách cài đặt, bạn có thể xem tại đây.
 
Chỉnh sửa lần cuối bởi người điều hành:
Hi.
1. Thực tế thì sao dùng được nhiều tamper thế? Nếu dùng nhiều thì k exploit được, ít quá thì k bypass được.
2. Mình có thử một trường hợp vs Post request, khi dùng burp suite repeater thì đc 200 status, còn sqlmap thì lại 302. Bác có thể giải thích giúp mình không?
 
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
Comment
1. Được khuyến nghị là dùng khoảng 6 tamper một lúc thôi bạn nhé.
2. Có thể do vấn đề session giữa Burpsuite và sqlmap, bạn có thể thêm tham số sessionid trong sqlmap xem sao.
 
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
Comment
1. Được khuyến nghị là dùng khoảng 6 tamper một lúc thôi bạn nhé.
2. Có thể do vấn đề session giữa Burpsuite và sqlmap, bạn có thể thêm tham số sessionid trong sqlmap xem sao.
Cảm ơn phản hồi của bác. Mình có thắc mắc nữa là vd như tamper thêm bớt comments thay đổi ký tự... kết hợp vs nhau đều có quy tắc. Vậy sao waf lại k phát hiện đc?
 
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
Comment
Cảm ơn phản hồi của bác. Mình có thắc mắc nữa là vd như tamper thêm bớt comments thay đổi ký tự... kết hợp vs nhau đều có quy tắc. Vậy sao waf lại k phát hiện đc?
Firewall hoạt động theo hai cơ chế blacklists và whitelists. Thông thường whitelists mạnh hơn blacklists nhưng ít khi được triển khai. Blacklists thì phụ thuộc vào người viết code firewall, có tamper thì firewall A phát hiện, firewall B thì không. Hơn nữa, sqlmap là mã nguồn mở, và được rất nhiều người dùng đóng góp mã, nên firewall thường sẽ cập nhật dạng chữ ký tấn công chậm hơn.
 
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
  • Thích
Reactions: g4m0xxx
Comment
Thẻ
sqli sqlmap
Bên trên