Pages

DVWA Command Injection (low level)


I. Command Injection là gì?
    Command Injection xuất hiện ở các website có cung cấp chức năng cụ thể thực thi các câu lệnh hệ thống nhằm phục vụ mục đích cho người dùng đầu cuối. Ví dụ: cho phép ping 1 đia chỉ website để kiểm tra xem site đó up hay down.
II. Khai thác Command Injection như thế nào?
- Tấn công command injection là khả năng chèn nội dung câu lệnh hệ thống(inject) vào phần input ứng dụng và thực thi được các câu lệnh đó ngoài phạm vi kiểm soát của ứng dụng của attacker.
- Lỗ hổng Command Injection xảy ra đa phần đều do cấu trúc kiểm tra dữ liệu input của code mã nguồn không chặt chẽ dẫn đến lỗ hổng phát sinh.
III. Thực hiện khai thác command injection - level low
- Thiết lập level cho lab
- Vào Tab: Command Injection để thực hiện attack.
  + Ở đây tính năng web là cho phép PING. Chúng ta sẽ thử ping 1 số địa chỉ.
+ Thử 1 lệnh khác trên giống như trên linux (như "cat /etc/passwd" ) xem thế nào. ==> kết quả sẽ không thấy gì.

(*) Bây giờ chúng ta kết hợp các lệnh vào sau IP muốn ping.
  1. "&" và "&&"
  2. "|" hoặc "||"
  3. ";" 

==>Test thử lệnh : 172.16.16.2|cat /etc/passwd

Kết quả:  Chúng ta có thể thấy được thông tin /etc/passwd hay bất cứ thông tin gì chúng ta muốn

IV. Nguyên nhân lỗ hổng
- Chúng ta xem source code bằng cách: click vào view source
*Lệnh 'shell_exec' trong PHP : giúp thực thi câu lệnh được truyền vào thông qua shell và trả vê output dưới dạng string.
=> với OS 'Unix' thì ta hoàn toàn có thể nhập input vào biến $target với nội dung "&&", ";" hoặc các ký tự như đã liệt kê ở trên, để hàm 'Shell_exec' chạy thực thi cả 2 lệnh cùng 1 lúc.
=> Lúc đầu đánh lệnh cat /etc/passwd trực tiếp không chạy vì khi đó lệnh sẽ là ping cat /etc/passwd nên sai cú pháp

Kết thúc phần Command Injection mức độ LOW.  Phần tiếp theo sẽ là mức độ medium.
thudinh Network and Security

No comments:

Adsense

Translate