關於命令注入的一些介紹

2022-09-09 04:09:09 字數 2026 閱讀 2226

勤學以增智,修德以立身,

明辨以正心,篤實以為公。

命令注入通常因為指web應用在伺服器上拼接系統命令而造成的漏洞。

該類漏洞通常出現在呼叫外部程式完成一些功能的情景下。比如一些web管理介面的配置主機名/ip/掩碼/閘道器、檢視系統資訊以及關閉重啟等功能,或者一些站點提供如ping、nslookup、提供傳送郵件、轉換等功能都可能出現該類漏洞。

簡而言之,就是攻擊者可以隨意執行系統命令,屬於高危漏洞之一,也屬於**執行範疇。

那麼web應用程式如何命令注入【用宮廷劇來理解】

(1)呼叫可執行命令的函式【相當於擬旨事實存在】

(2)函式或引數可控【太監總管膽小怕事,同意被惡毒的國舅控制】

(3)拼接命令注入【國舅膽小怕事篡改聖旨】

例: dir」. /

攻擊者就是構造命令給文字web應用程式,然後拼接命令執行注入的命令,最後結果顯示。

在此大家還要學習作業系統的命令

window dos命令

linux bash命令

下面是web應用程式dvwa提供的測試網域名稱/ip的ping服務,

並將ping命令的執行過程顯示出來。

ps:千萬不要忘了命令可以連線執行。

^1常見危險函式

一、php

system

exec

passthru

shell_exec

popen

proc_open

二、python

system

popen

subprocess.call

spawn

三、j**a

j**a.lang.runtime.

getruntime()

.exec

(command)

^2常見注入方式

分號分割

|| && & 分割

| 管道符

\r\n %d0%a0 換行

反引號解析

$() 替換

無回顯技巧

bash**shell

dns帶外資料

http帶外

無帶外時利用 sleep 或其他邏輯構造布林條件

^2常見的繞過方式

黑名單繞過

a=l;b=s;aaab

base64 echo 「bhm=」 | base64 -d

/?in/?s => /bin/ls

連線符 cat /etc/pass』w』d

未定義的初始化變數 cat$x /etc/passwd

空格繞過

< 符號 cat<123

\t / %09

i fs

其中用來

截斷,比

如cat

其中{}用來截斷,比如cat

ifs其中用

來截斷,

比如ca

tifs2會被認為ifs2是變數名。另外,在後面加個$可以起到截斷的作用,一般用$9,因為$9是當前系統shell程序的第九個引數的持有者,它始終為空字串

^3防禦

不使用時禁用相應函式

盡量不要執行外部的應用程式或命令

做輸入的格式檢查

轉義命令中的所有shell元字元

shell元字元包括 #&;`,|*?~<>^(){}$\

關於sql注入的一些理解

什麼叫做sql注入?sql注入算是一些不法分子的攻擊手段,通過sql語句來實現無賬號密碼登入及其他操作。比如在乙個需要登入的介面 賬號輸入成這樣的話,密碼可以隨意,那麼能很輕易的登入進去。因為在這條sql執行的時候,後台的sql語句生成會出現 select from table where user...

關於apt cache 的一些介紹

apt cache是乙個apt軟體包管理工具,它可查詢apt的二進位制軟體包快取檔案。通過它我們可查詢軟體包的狀態資訊。apt cache show package name 顯示軟體的資訊,包括版本號,安裝狀態和包依賴關係等。apt cache search package name 搜尋軟體包,...

關於Log 的一些介紹

1 log.v 的除錯顏色為黑色的,任何訊息都會輸出,這裡的v代表verbose囉嗦的意思,平時使用就是log.v 2 log.d的輸出顏色是藍色的,僅輸出debug除錯的意思,但他會輸出上層的資訊,過濾起來可以通過ddms的logcat標籤來選擇.3 log.i的輸出為綠色,一般提示性的訊息inf...