Hướng dẫn tấn công sql injection

Tại bài xích post này, bản thân xin giới thiệu cùng với chúng ta những ví dụ về Squốc lộ Injection và những phương pháp phòng rời những cuộc tiến công Squốc lộ Injection Lúc thử nghiệm Web.

Bạn đang xem: Hướng dẫn tấn công sql injection

Trong khi test một website hoặc một hệ thống, mục tiêu của Tester là bảo đảm thành phầm được bảo đảm an toàn càng nhiều càng xuất sắc.

Security Testing thường được triển khai đến mục đích này. Để thực hiện nhiều loại thể nghiệm này, đầu tiên, bọn họ buộc phải chu đáo, các cuộc tấn công như thế nào có tác dụng xảy ra độc nhất vô nhị. Và SQL Injection là 1 trong những trong những nhiều loại tấn công kia.

*

Squốc lộ Injection là một trong những trong những một số loại tiến công phổ cập nhất khi nó hoàn toàn có thể đem về nguy nan và tổn hại mang lại hệ thống của chúng ta cũng giống như đều dữ liệu mẫn cảm.

Squốc lộ Injection là gì?

Một vài user truyền vào những câu lệnh Squốc lộ được tiến hành bên trên database. Nó làm cho áp dụng chẳng thể giải pháp xử lý tài liệu bởi vì người tiêu dùng cung cấp không đúng chuẩn.

Trong ngôi trường vừa lòng này, một user độc hại hoàn toàn có thể cung cấp đông đảo đầu vào không muốn đến áp dụng, sau đó dùng làm đóng góp form cùng thực hiện các câu lệnh SQL trên database. Nó Gọi là SQL Injection. Hậu trái của một hành động như vậy rất có thể đáng thông báo.

Như tên của chính nó, mục đích của cuộc tiến công Squốc lộ Injection là tiêm rất nhiều code SQL ô nhiễm.

Mỗi một ngôi trường của website là một trong những cánh cổng dẫn mang đến database. Trong khung login, người dùng nhập các tài liệu login. Trong trường tìm kiếm, người dùng nhập các từ tìm kiếm. Trong form lưu lại tài liệu, người dùng nhập các dữ liệu có thể tàng trữ. Tất cả các tài liệu được đã cho thấy đều rất có thể dẫn cho database.

Ttốt vày nhập các dữ liệu đúng, bất kỳ một code độc hại nào được nhtràn vào, mọi có thể dẫn đến một vài thiệt sợ hãi cực kỳ nghiêm trọng đến database với cho cả khối hệ thống.

Squốc lộ Injection được tiến hành với ngữ điệu xây dựng Squốc lộ. Squốc lộ (Structured Query Language - ngôn từ truy vấn vấn cấu trúc) được áp dụng để quản lý các tài liệu được tổ chức vào database. Do kia mã ngôn từ thiết kế này đang được thực hiện như một mũi tiêm ô nhiễm.

Đây là một trong trong số cuộc tấn công phổ cập, vày database được áp dụng mang lại hầu như toàn bộ những công nghệ.

phần lớn áp dụng áp dụng một vài một số loại database. Một áp dụng đang rất được test có thể gồm hình ảnh người dùng gật đầu đồng ý nguồn vào của tín đồ dùng để làm tiến hành những task sau:

Hiển thị tài liệu lưu trữ gồm liên quan mang đến user. Ví dụ: vận dụng khám nghiệm ban bố singin của user áp dụng những báo cáo login được nhtràn lên vì user và chỉ hiển thị số đông tính năng cùng tài liệu có liên quan mang lại user.

Lưu trữ những dữ liệu được nhập vì chưng user vào database. Ví dụ: Mỗi Khi user nhập dữ liệu vào khung cùng submit, vận dụng cách xử lý lưu giữ dữ liệu vào database. Dữ liệu này tiếp nối sẽ được hỗ trợ mang lại user vào cùng một phiên hoặc những phiên tiếp sau.

Rủi ro của Squốc lộ Injection

Ngày ni, database được sử dụng đến gần như là toàn bộ các khối hệ thống và website, bởi tài liệu yêu cầu được lưu trữ nghỉ ngơi nhiều địa điểm.

khi dữ liệu nhạy bén được lưu trữ trong database, có khá nhiều khủng hoảng rộng trong bảo mật thông tin khối hệ thống. Nếu ngẫu nhiên tài liệu trang web hoặc blog cá thể bị đánh tráo, thì sẽ không khiến thiệt hại những như tài liệu ngân hàng bị đánh tráo.

Mục đích chủ yếu của cuộc tiến công này là haông chồng database của hệ thống, cho nên vì thế hậu quả của chính nó thật sự nguy khốn.

Những điều dưới đây hoàn toàn có thể là tác dụng của Squốc lộ Injection:

Haông xã thông tin tài khoản của người khácĂn cắp và copy tài liệu mẫn cảm của hệ thốngTxuất xắc thay đổi những tài liệu nhạy cảm của hệ thốngXóa tài liệu nhạy bén của hệ thốngHacker hoàn toàn có thể login vào vận dụng nlỗi user khác, thậm chí là là adminHacker hoàn toàn có thể coi công bố cá nhân của user không giống. Ví dụ: ban bố cụ thể profile, chi tiết giao dịch,...tin tặc có thể biến đổi công bố cấu hình của áp dụng cùng tài liệu của các user kháctin tặc hoàn toàn có thể sửa cấu trúc database, thậm chí là delete bảng trong databasetin tặc rất có thể tinh chỉnh VPS database với thực hiện câu lệnh bên trên nó.

Những rủi ro khủng hoảng vẫn liệt kê bên trên có thể đích thực gian nguy, do nhằm restore một database hoặc tài liệu của nó mất rất nhiều chi phí. Nó hoàn toàn có thể làm mất đi khét tiếng và tài lộc của doanh nghiệp chúng ta nhằm phục sinh tài liệu với hệ thống bị mất. Vì vậy, cần phải quyên tâm cao đến việc đảm bảo khối hệ thống khỏi các cuộc tấn công, với Security testing là chiến thuật xuất sắc mang đến đáng tin tưởng sản phẩm với cửa hàng các bạn.

Là một tester, tôi mong mỏi phản hồi rằng demo để ngăn chặn lại những cuộc tấn công rất có thể là cách thức tốt nhất có thể mặc dù Security Testing ko được lên kế hoạch. Bằng phương pháp này, chúng ta có thể bảo đảm an toàn với thử nghiệm thành phầm cản lại các trường vừa lòng không ước ao hóng và hồ hết người tiêu dùng ô nhiễm.

Bản hóa học của cuộc tấn công này

Nhỏng sẽ nói bên trên, bản chất của cuộc tiến công này là haông xã database với mục đích ô nhiễm và độc hại.

Để thực hiện Security Testing, lúc đầu, bạn cần search phần đa lỗ hổng của hệ thống và tiếp đến thông qua bọn chúng gửi phần đa mã Squốc lộ ô nhiễm và độc hại mang lại database. Nếu hoàn toàn có thể thực hiện được, thì những mã Squốc lộ ô nhiễm và độc hại này sẽ được gửi và các hành động gây hư tổn đã rất có thể triển khai vào database.

Mỗi một trường của một trang web tương tự nhỏng một cánh cổng đưa vào database. Bất kỳ dữ liệu hoặc nguồn vào cơ mà bọn họ thường xuyên nhtràn lên ngẫu nhiên ngôi trường làm sao của khối hệ thống hoặc trang web đa số đi mang lại database. Do đó, núm vị nhập tài liệu đúng, ví như chũng ta nhập bất kỳ mã code độc hại nào, nó đông đảo rất có thể triển khai câu lệnh truy vấn vấn database với đưa về kết quả cực kỳ nghiêm trọng.

Tool được đề xuất

### 1. Kiuwan

*

Dễ dàng kiếm tìm tìm và fix các lỗ hổng như Squốc lộ Injection vào code của doanh nghiệp ở từng tiến trình của SDLC (Software Development Life Cycle - Vòng đời cách tân và phát triển phần mềm). Kiuwan vâng lệnh những tiêu chuẩn chỉnh bảo mật nghiêm ngặt tuyệt nhất, bao hàm OWASPhường, CWE, SANS 25, HIPPA, ....

Tích đúng theo Kiuwan vào trong IDE làm cho ý kiến ngay tức khắc trong khi cách tân và phát triển. Kiuwan cung cấp tất ả các ngôn từ lập trình thiết yếu và tích phù hợp với những dụng cụ DevOps bậc nhất.

Để triển khai cuộc tấn công này, chúng ta bắt buộc chuyển đổi hành vi với mục đích của những truy nã vấn database phù hợp. Một trong số cách tiến hành hoàn toàn có thể để thực hiện là có tác dụng cho những truy tìm vấn luôn luôn đúng, rồi sau đó ckém vào các mã độc hại. Tgiỏi thay đổi truy nã vấn database thành luôn đúng rất có thể được tiến hành với mã code dễ dàng nlỗi <‘ or 1=1;–>.

*

Tester yêu cầu ghi đừng quên, việc check đổi khác truy vấn vấn thành luôn đúng có thể được tiến hành hoặc không, các trích dẫn khác nhau đề xuất được thử với single và double. Do kia, ví như chúng ta thử cùng với mã single <‘ or 1=1;–> , thì chúng ta cũng đề nghị test cùng với mã double <“ or 1=1;–>.

Ví dụ: Cùng chu đáo câu tầm nã vấn bên dưới đây

select from notes nt where nt.subject = ‘searchword‘;

Ttuyệt đến từ bỏ khóa kiếm tìm tìm, chúng ta nhập truy tìm vấn Squốc lộ Injection <‘ or 1=1;–>, tiếp đến câu truy vấn vấn đang phát triển thành luôn đúng.

select from notes nt where nt.subject = ‘ ‘ or 1=1;–

Trong trường thích hợp này, parameter "subject" bị đóng góp lại cùng với trích dẫn cùng kế tiếp bọn họ gồm code , dòng mà sẽ không được thực hiện. Đây là một trong giữa những cách thông dụng độc nhất vô nhị và tiện lợi duy nhất để bước đầu tinh chỉnh và điều khiển truy hỏi vấn.

Một vài code không giống hoàn toàn có thể sử dụng để triển khai mang lại tầm nã vấn luôn đúng, nhỏng sau:

‘ or ‘abc‘=‘abc‘;–‘ or ‘ ‘=‘ ‘;–

Phần đặc trưng độc nhất vô nhị sinh hoạt đấy là tiếp nối bạn có thể nhập ngẫu nhiên mã ô nhiễm như thế nào nhưng chúng ta mong ước tiến hành.

Ví dụ:

*

Nếu injection này là hoàn toàn có thể, thì sau đó bạn có thể viết ngẫu nhiên mã độc hại làm sao. Trong ngôi trường đúng theo này, nó sẽ chỉ dựa vào vào kiến thức và kỹ năng với ý mong mỏi của người dùng độc hại. Làm nuốm làm sao để check Squốc lộ Injection?

Việc bình chọn lỗ hổng này rất có thể được thực hiện rất dễ dãi. Thỉnh thoảng chỉ cần gõ <‘ or “> vào trường kiểm tra. Nếu nó trả ra ngẫu nhiên thông báo không hề mong muốn hoặc không bình thường làm sao, bạn cũng có thể chắc chắn rằng SQL Injection hoàn toàn có thể triển khai cùng với trường đó.

Ví dụ: Nếu hiển thị message "Internal Server Error" nlỗi một tác dụng tìm tìm, bạn cũng có thể chắc chắn là rằng có thể tiến công vào phần này của hệ thống.

Xem thêm: Máy Tính Bị Giật Lag Win 10, Khắc Phục 99% Máy Tính Windows 10 Bị Chậm

Một số tác dụng khác cho biết rất có thể tiến hành cuộc tấn công Squốc lộ Injection:

Hiển thị page trắngKhông bao gồm message lỗi tốt thành công - tính năng cùng page ko bội phản ứng với đầu vàoMessage thành công cho mã độc hại

Hãy thuộc xem xét cách vận động thực tiễn.

Ví dụ: Cùng thử nghiệm coi hành lang cửa số login có phải là lỗ hổng của SQL Injection không.

Để thực hiện mục tiêu này, trong trường email cùng password, bọn họ nhập như sau:

*

Nếu kết quả trả ra là message lỗi ‘Internal Server Error‘ hoặc ngẫu nhiên hiệu quả không phù hợp được liệt kê không giống, bạn có thể chắc chắn rằng, hoàn toàn có thể tấn công vào ngôi trường đó.

*

Do kia, kiểm tra SQL Injection với trích dẫn single <"> là biện pháp tương đối an toàn và đáng tin cậy để kiểm soát coi cuộc tấn công rất có thể thực hiện hay là không.

Nếu single quote ko trả ra công dụng không thích hợp, chúng ta có thể demo nhập double quote cùng check kết quả

*

Bên cạnh đó, code SQL nhằm đổi khác truy vấn vấn thành luôn luôn đúng cũng là một trong những giải pháp đeẻ check coi cuộc tiến công hoàn toàn có thể hay không. Nó đóng tsi số cùng biến đổi truy nã vấn thành "true". Do kia nếu như không được xác thực, mỗi đầu vào như vậy cũng có thể trả ra bất kỳ công dụng ko muốn hóng giống như, và cuộc tiến công là rất có thể vào ngôi trường phù hợp này.

*

Việc check các cuộc tiến công SQL cũng hoàn toàn có thể được thực hiện từ băng thông trang web. Giả sử chúng ta tất cả băng thông là: http://www.testing.com/books=1. Trong ngôi trường phù hợp này, "books" là tđắm đuối số cùng "1" là quý hiếm. Nếu họ cố gắng <1> bởi <"> thì bạn có thể check được injection có thể hay không.

Do đó, links http://www.testing.com/books= sẽ tiến hành kiểm tra xem SQL attack bao gồm khả thi mang lại trang web http://www.testing.com tuyệt không

*

Trong case này, nếu như http://www.testing.com/books= trả ra message lỗi như ‘Internal Server Error‘ hoặc trang Trắng, hoặc bất kỳ message lỗi không muốn như thế nào, thì chúng ta cũng có thể chắc chắn là rằng SQL Injection là rất có thể. Sau đó, bạn có thể test gửi những mã Squốc lộ phức hợp qua đường dẫn trang web này.

Để kiểm tra xem cuộc tấn công là có thể trải qua băng thông website hay là không, mã nhỏng <‘ or 1=1;–> có thể được áp dụng.

*

Là một tester bao gồm kinh nghiệm, tôi mong cảnh báo rằng không những bao gồm thông tin lỗi không muốn có thể được coi là lỗ hổng SQL Injection. hầu hết tester kiểm soát các cuộc tấn công có thể chỉ theo thông tin lỗi.

Tuy nhiên, đề xuất ghi hãy nhớ là không tồn tại thông báo lỗi chuẩn xác hoặc thông báo thành công mang lại mã độc cũng hoàn toàn có thể là 1 trong dấu hiệu, rằng cuộc tiến công này là rất có thể.

Security Testing Web Application cản lại Squốc lộ Injection

Security Testing một vận dụng website được lý giải cùng với ví dụ dễ dàng và đơn giản sau:

Vì kết quả của bài toán được cho phép nghệ thuật lỗ hổng này có thể rất lớn, cuộc tấn công này buộc phải được thực hiện trong veo quá trình kiểm tra bảo mật thông tin của ứng dụng. Bây giờ với một chiếc quan sát tổng quan về nghệ thuật này, chúng ta hãy phát âm một vài ví dụ thực tế về Squốc lộ Injection.

Lưu ý quan liêu trọng: SQL Injection Test chỉ được tiến hành trong môi trường test

Nếu ứng dụng bao gồm page login, hoàn toàn có thể vận dụng đang sử dụng câu lệnh Squốc lộ đụng nhỏng sau đây. Câu lệnh này dự loài kiến vẫn trả về tối thiểu một single row với chi tiết user trường đoản cú bảng Users Lúc có sản phẩm chứa username với password được nhập trong câu lệnh Squốc lộ.

SELECT * FROM Users WHERE UserName = ‘” và strUserName & “‘ AND Password = ‘” và strPassword & “’;”

Nếu tester muốn nhập "John" là strUsername (vào textbox username) với "Smith" là strPassword (trong textbox Password), câu lệnh trên sẽ trsống thành:

SELECT FROM Users WHERE UserName = "John" AND Password = "Smith’;

Nếu tester muốn nhập "John" là strUsername (vào textbox username) cùng không có strPassword, câu lệnh trên đã trsinh hoạt thành:

SELECT FROM Users WHERE UserName = "John"-- AND Password = "Smith’;

Lưu ý rằng 1 phần câu lệnh Squốc lộ sau John đưa thành một dấn xét. Nếu có ngẫu nhiên user làm sao gồm username là John vào bảng Users, ứng dụng rất có thể được cho phép tester login nlỗi user John. Tester rất có thể xem báo cáo chi tiết của John.

Nếu tester hông biết thương hiệu của ngẫu nhiên user nào trong vận dụng thì có tác dụng gì? Trong ngôi trường phù hợp này, tester có thể demo với đông đảo username phổ biến như admin, administrator, và sysadmin. Nếu không có user nào lâu dài trong database, tester rất có thể nhập

Câu lệnh này rất có thể khiến cho bảng "users_details" bị xóa lâu dài ngoài database.

Các ví dụ bên trên thực hiện kỹ thuật Squốc lộ Injection chỉ cách trang login, tester phải thực hiện kỹ thuật chạy thử này mang đến tất cả các page khác của ứng dụng như: search, feedbachồng, ...

SQL injection rất có thể sử dụng cùng với vận dụng thực hiện SSL. Thậm chí tường lửa cũng có thể ko có khả năng bảo đảm áp dụng chống lại kỹ thuật này.

Tôi mong muốn nói nhtại một đợt tiếp nhữa rằng kỹ thuật tấn công này chỉ demo trên môi trường test, ko sử dụng vào môi trường xung quanh development, production tuyệt ngẫu nhiên một môi trường xung quanh nào không giống.

Các phần dễ bị tiến công lúc thực hiện cuộc tấn công này

Trước khi triển khai các bước test, từng tester đề nghị ít nhiều biết gần như phần làm sao dễ bị tấn công tốt nhất đối với cuộc tiến công này.

Nó cũng là biện pháp tốt bỏ lên planer kiểm tra đều ngôi trường như thế nào của khối hệ thống một phương pháp đúng đắn với theo máy trường đoản cú nào. Tôi đã học tập được, không nên chất vấn thốt nhiên một trong những ngôi trường để cản lại những cuộc tiến công SQL vày một vài trường có thể bị loại bỏ. Vì cuộc tấn công được thực hiện vào database, nên toàn bộ những phần hệ thống nhập liệu, những trường đầu vào, với băng thông trang web đa số có thể bị tấn công.

Các phần dễ dẫn đến tiến công bao gồm:

Các trường loginCác ngôi trường tìm kiếmCác trường commentBất kỳ trường nhập liệu với lưu trữ khácWebsite link

Quan trọng yêu cầu ghi hãy nhớ là trong lúc thử nghiệm cản lại cuộc tiến công này, quan trọng chỉ kiểm tra một hoặc vài ba trường. thường thì, một vài ba trường được bảo vệ ngoài tấn công Squốc lộ injection, tuy vậy những ngôi trường dị kì ko được bảo đảm an toàn. Do đó, ko được quên câu hỏi kiểm tra toàn cục những ngôi trường của trang web.

Test auto Squốc lộ Injection

Vì một số hệ thống hoặc website được chạy thử khá phức tạp với bao gồm đựng tài liệu mẫn cảm, đề xuất demo bằng tay rất có thể trở ngại với mất quá nhiều thời gian. Do kia, thử nghiệm nhằm phòng rời cuộc tiến công SQL Injection bằng những tool đặc biệt quan trọng có thể thực thụ có lợi.

Một trong số tool Squốc lộ Injection là SOAP. UI. Nếu các bạn thực hiện thử nghiệm hồi quy tự động hóa ở tại mức độ API, chúng ta có thể sử dụng tool này để ngăn chặn lại cuộc tiến công Squốc lộ. Trong tool SOAP UI, bao gồm sẵn các template có thể sử dụng nhằm chạy thử ngăn chặn lại cuộc tiến công này. Các template này cũng rất có thể được bổ sung bởi code của doanh nghiệp.

Đây là một trong những tool khá tin cậy.

Tuy nhiên, kiểm tra auto ở tầm mức độ API là ko dễ dàng. Do đó, có một biện pháp không giống đó là áp dụng những plugin trình lưu ý khác biệt nhằm chạy thử tự động.

Cần xem xét rằng, tool auto hoàn toàn có thể tiết kiệm ngân sách và chi phí thời hạn, mà lại không phải luôn luôn luôn an toàn. Nếu các bạn kiểm tra khối hệ thống bank hoặc một website cùng với tài liệu nhạy cảm, cực tốt nên thực hiện kiểm tra manual. Nơi bạn có thể xem tác dụng chính xác với so với chúng. Dường như, trong trường hòa hợp này, Cửa Hàng chúng tôi có thể chắc chắn là rằng, không có gì bị bỏ qua.

So sánh với các cuộc tấn công khác

SQL Injection rất có thể coi là một trong những cuộc tấn công nguy hiểm duy nhất, do nó ảnh hưởng đến database cùng có thể phá hủy cực kỳ nghiêm trọng tài liệu tương tự như toàn thể hệ thống của công ty.

Để chắc hẳn rằng nó hậu quả nghiêm trọng rộng Javascript Injection xuất xắc HTML Injection, bọn họ thuộc thực hiện tất cả trên client-side. Để so sánh, với cuộc tiến công này, các bạn gồm quyền truy cập vào toàn bộ cơ sở tài liệu.

Xem thêm: Tải Game Trên Google Play Mục Này Không Có Sẵn Ở Quốc Gia Của Bạn Android

Để test cản lại cuộc tiến công này, bạn buộc phải gồm kỹ năng và kiến thức hơi xuất sắc về ngữ điệu thiết kế Squốc lộ. Và nói bình thường, bạn cần biết bí quyết buổi giao lưu của những truy hỏi vấn database. Bên cạnh đó, trong những khi triển khai cuộc tiến công này, bạn phải cảnh giác cùng quan lại gần cạnh nhiều hơn thế, bởi vì bất kỳ sự ko đúng chuẩn nào cũng rất có thể được giữ lại dưới dạng lỗ hổng SQL.

Tham mê khảo: https://www.softwaretestinghelp.com/sql-injection-how-to-test-application-for-sql-injection-attacks/


Chuyên mục: Kiến Thức Bổ Ích