IIS6.0,Apache低版本,PHP CGI 解析漏洞

IIS6.0解析漏洞

在IIS6.0下存在這樣的文件“名字.asp;名字.jpg

代表了jpg文件可以以asp腳本類型的文件執行。

根據這個解析漏洞我們可以上傳這種名字類型的圖片,比如
1397720-20180728134323128-249816585.png

1.asp;xxx.jpg 他會忽略;后邊的內容,所以文件相當于1.asp

asp一句話木馬

<%eval request ("pass")%>  

1397720-20180728134357818-1485724192.png

找到上傳的路徑后,可以直接用菜刀連接。如果對文件內容檢測,就得使用圖片馬了。
1397720-20180728134434728-608132163.png

有時候他會把這個上傳文件的目錄設置為不可執行,那樣就完了

iis6.0還存在一個解析漏洞,在以“名字.asp”的文件夾里面,里面的文件會以asp腳本運行。管理員不會蠢到建立這么一個文件夾,所以你得能建立并且把馬傳到這個很蠢的文件夾上邊。
至今(2018年7月28日11:38:03),這兩個漏洞還沒有補丁。

PHP CGI漏洞

訪問ip/web目錄/1.jpg/1.php(1.php實際不存在,只存在1.jpg)會導致1.jpg以php文件形式執行。
新建個jpg,編輯文檔的方式寫入php代碼,然后訪問
1397720-20180728134741860-492431517.png

1397720-20180728134749552-869545558.png

一切都是因為這個配置,在php.ini里面:cgi.fix_pathinfo=1

等于1即是開啟,當訪問上邊的目錄是,Nginx看到最后的/1.php并不會先判斷1.php是否存在,會直接交給php處理,php中的cgi.fix_pathinfo的原因,會把1.jpg當做名字叫做1.jpg/1.php這樣一個php文件。

這個不是Nginx的漏洞,是php的毛病,解析文件時,IIS7.0也是如此。

解決辦法:在php配置文件里,只允許php文件執行。不過在較高版本的php-fpm.confsecurity.limit_extensions設置只執行php php3 php4 phtml。我在windows安裝的phpstudy上死活沒找到這個配置文件,于是到linux上截了個圖。1397720-20180728134507539-1304995302.png

Apache1.x/2.x解析漏洞

Apache從右向左解析文件,如果不認識就向左挪,比如

1.php.abc是個的文件, abc類型的apache不認識,因此就會被解析為php文件,相當于1.php

Apache認識的文件類型在conf目錄下的mime.types文件中
1397720-20180728160558765-828471531.png

轉載于:https://www.cnblogs.com/zaqzzz/p/9381799.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251098.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251098.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251098.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UVA 3485 Bridge

題目大意 你的任務是修建一座大橋。橋上等距地擺放著若干個塔&#xff0c;塔高為H&#xff0c;寬度忽略不計。相鄰兩座塔之間的距離不能超過D。塔之間的繩索形成全等的對稱拋物線。橋長度為B&#xff0c;繩索總長為L&#xff0c;如下圖所示求建最少的塔時繩索的最下端離地的高度…

javascript --- XMLHttp2級、CORS(跨域資源共享)

FormData: // 為序列化表單以及創建與表單格式相同的數據提供了便利 var data new FromData(); data.append("name", "Nicholas");// 使用FormData標準化數據后,發送到服務器 var xhr createXHR(); xhr.onreadystatechange function () {if ( xhr.read…

ES5-拓展 this指向的總結

每個函數在執行時都有自己的this指向 1. 默認綁定規則&#xff1a; 全局中&#xff0c;this指向window this window函數的獨立調用&#xff0c;this默認指向window &#xff08;不要把獨立調用理解成window調用&#xff09; // 函數在全局中調用&#xff0c;也就是被window調…

Applet

Applets用于為Web應用程序提供交互功能&#xff0c;這些功能無法單獨由HTML提供。它們可以捕獲鼠標輸入&#xff0c;并且還具有按鈕或復選框等控件。響應于用戶動作&#xff0c;小應用程序可以改變提供的圖形內容。這使得小程序非常適合演示&#xff0c;可視化和教學。 一個app…

國內初創企業選擇云計算服務器價格對比

假設我們是一家初創企業&#xff0c;現在要選擇第一臺服務器。業務還未確定&#xff0c;只知道是互聯網業務 要求&#xff1a; 至少2核&#xff0c;否則多線程的軟件都跑不了至少4G內存&#xff0c;這樣可以運行數據庫或者elasticsearch這種比較吃內存的東西。或者說&#xff0…

javascript --- 幾個其他的跨域技術(圖像Ping、JSONP、Comet)

在CORS(Cross-Origin Resource Sharing,跨域資源共享)出現以前,要實現跨域Ajax通信是很難的. 可以利用DOM中能夠執行跨域請求的功能,來實現跨域通信: 瀏覽器到服務器的單向通信: 此項技術稱為圖像Ping,利用的是img.src的跨域事件 img.src只能通過偵聽load和error事件來確定瀏覽…

ES5-拓展 箭頭函數的this、this的優先級

讓內部函數的this指向和父函數的this&#xff0c;可以顯示改變this指向&#xff0c;也可以使用箭頭函數 箭頭代替了function關鍵字 箭頭函數內部沒有this指向&#xff0c;箭頭函數的this是穩定引用父作用域的。因為它的存在就是要穩定this指向。 適用于普通函數的所有綁定規則…

java 實現壓縮單個文件

先來實現一個簡單的單文件壓縮&#xff0c;主要是為了解一下壓縮需要使用到的流。。 效果&#xff1a; 說明&#xff1a;壓縮實現使用ZipOutputStream 代碼&#xff1a; package com.gx.compress;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im…

jekins構建觸發器詳解

jenkins版本&#xff1a;2.89.2 1、觸發遠程構建 (例如,使用腳本)&#xff1a;通過一個網址的訪問來觸發構建&#xff0c;這樣就不需要登錄jenkins系統也能觸發構建了。 示例地址&#xff1a; http://localhost:8848/job/FlashRegistration/build??token口令&cause書寫構…

http --- 前端的緩存

前端的緩存分為: http緩存 和 瀏覽器緩存 http緩存: // 當客戶端向服務器請求資源時,會先抵達瀏覽器緩存,如果瀏覽器有"要請求資源"的副本 // 就會從瀏覽器緩存中提取而不是從原始服務器中提取這個資源// 常見的http緩存,只能緩存get請求響應的資源,對于其他類型的響…

ES5-拓展 隱式數據類型轉換

Boolean轉換原則&#xff1a;非假即真 6種虛值 原始值轉換為原始值 對象轉換為原始值 Date()和new Date() new Date可以不寫括號(new方式返回的一定是對象)&#xff0c;返回Date對象Date()返回函數執行&#xff0c;返回時間字符串 引用值轉原始值 先找valueOf方法(一般…

Swagger的簡單入門【轉載】

一、Swagger簡介 上一篇文章中我們介紹了Spring Boot對Restful的支持&#xff0c;這篇文章我們繼續討論這個話題&#xff0c;不過&#xff0c;我們這里不再討論Restful API如何實現&#xff0c;而是討論Restful API文檔的維護問題。 在日常的工作中&#xff0c;我們往往需要給前…

visual studio code搭建本地服務器(node.js+express)

一、安裝node.js&#xff08;常規軟件安裝流程&#xff0c;比較簡單&#xff0c;不用贅述&#xff09; 二、安裝express框架 1. 打開Windows命令提示符&#xff0c;輸入&#xff1a; npm install express -g&#xff0c;等待&#xff0c;安裝好如下所示&#xff1a; npm instal…

es6 --- 手寫一個promise

一個promise實例: var getJSON function(url) {var promise new Promise(function(resolve, reject) {// XHR對象發現ajax請求var client new XMLHttpReqeust();client.open("GET", url);client.onreadystatechange handler;client.responseType "json&qu…

最大流模版 EK

EK算法基于增廣路的思想,易于理解,但由于低效并不被經常使用 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <queue> using namespace std; const int MAXN10005,MAXM100005…

Restrictions查詢用法

Restrictions查詢用法 HQL運算符 QBC運算符 含義 Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equal > Restrictions.gt() 大于greater than > Restrictions.ge() 大于等于greater than or equal < Restrictions.lt() 小…

chrome調試

技術拓展直播課8 按chrome的官方文檔 長按刷新 清除緩存&#xff08;不一定好使&#xff09; Ctrl f 查找類 console控制臺見b站 bilibili source面板直接打斷點 效果和debugger一樣 單步調試 進入到函數的下一步 網速 no throttling 是否需要過濾 domcontentloaded d…

es6 --- promise和async/await的區別

首先需要了解async函數: async是Generator函數的語法糖: // 使用Generator依次讀取兩個文件 var fs require(fs); var readFile function (fileName) {return new Promise(function (resolve, reject) {fs.readFile(filename, function(error, data) {if (error) return re…

Ueditor百度編輯器中的 setContent()方法的使用

百度編輯器Ueditor所提供的setContent()方法作用是&#xff1a;設置或者改變編輯器里面的文字內容或html內容 函數說明&#xff1a;setContent(string,boolean); 參數string 是需要設置到編輯器里面的內容&#xff0c;可以含有HTML代碼&#xff0c;最后插入到編輯器中的內容是經…

小程序UI

從input組件說起 <input maxlength"10" placeholder"最大輸入長度10" /> <div id"wrapper" disabled$"{{disabled}}">\n <p id"placeholder" class$"{{_getPlaceholderClass(placeholderClass)}}"…