DDos
VIP Members
-
22/10/2013
-
524
-
2.189 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.
Để 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:
Để đơ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.
Ở đâ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
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.
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.
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.
Chi tiết và cách cài đặt, bạn có thể xem tại đây.
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.
Ở đâ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
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
- 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
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"
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)
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.
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.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: