勤學以增智,修德以立身,
明辨以正心,篤實以為公。
命令注入通常因為指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...