環(huán)境: 系統(tǒng):linux 語言:php web容器:任意(例如:apache) 數(shù)據(jù)庫:MYSQL
條件: php網(wǎng)址存在注入, mysql root權(quán)限, php顯錯模式關(guān)閉
假想: 看到這樣的環(huán)境, 我們會立馬想到獲取絕對路徑算吩,然后利用爆WEB網(wǎng)站絕對路徑棚菊,向WEB目錄寫 入一句話
問題: 前提條件已經(jīng)說了,php顯錯模式關(guān)閉了砚著,所以我們通過暴路徑獲取web網(wǎng)站絕對路徑在验,基本不太可能了臀规,我們?nèi)绾潍@取WEB網(wǎng)站絕對路徑呢?
利用:每一個WEB容器都有自己的配置文件缭贡,可以通過root權(quán)限的mysql load_file讀取配置文件者春,找到WEB網(wǎng)站的絕對路徑破衔。這樣我們就可以嘗試寫入webshell到web目錄
問題1:root權(quán)限的mysql禁用了load_file函數(shù)利用:死路一條,老老實實通過sql注入钱烟,獲取管理賬號密碼晰筛,找后臺,看看有沒有辦法getshell
問題2:root權(quán)限的mysql禁用了into outfile函數(shù)利用:按照優(yōu)先級 1.老老實實通過sql注入忠售,獲取管理賬號密碼传惠,找后臺,看看有沒有辦法getshell 2.讀配置文件稻扬,找到其他在服務(wù)器的旁站,通過旁站Getshell 3.讀取WEB網(wǎng)站絕對路徑卦方,再讀web文件,代碼審計吧;
條件:root權(quán)限的mysql沒有禁用load_file 和into outfile
問題:通過load_file可以讀到web文件泰佳,但是into outfile寫不入文件,大部分原因是因為文件權(quán)限問題盼砍,mysql不具備WEB網(wǎng)站目錄寫文件權(quán)限
利用:只要這個網(wǎng)站存在上傳文件(文件,頭像逝她,附件)的功能浇坐,那么上傳文件的這個目錄最低具備0706權(quán)限,我們的mysql 就可以通過into outfile 把webshell寫入到這個目錄下面黔宛。
總結(jié):滲透中碰到的問題,因為權(quán)限不能寫入文件近刘,找到一個可寫目錄非常重要
技巧1中,可能會問如何找配置文件臀晃,猜的運氣成分太大觉渴,其實是有技巧的。很少有人知道徽惋。這里說下吧.
環(huán)境: 系統(tǒng):linux web容器:任意(例如:apache)
條件:你能讀取服務(wù)器上的文件案淋,(例如:php任意文件包含,php任意文件讀取漏洞险绘,root權(quán)限的注入點)
問題:如何找WEB服務(wù)器絕對路徑呢踢京?
利用:首先說下web服務(wù)器是如何啟動的,99%的web服務(wù)器開機啟動都是利用服務(wù)宦棺,都會在/etc/init.d/xxxx,有一個啟動文件瓣距。我們可以讀取這個文件,獲取web服務(wù)器的配置文件渺氧。例如apache旨涝,就是/etc/init.d/httpd nginx,就是/etc/init.d/nginx,web服務(wù)器啟動需要初始化白华,還要制定配置文件路徑慨默,所以這個文件里面99%包含配置文件路徑。不包含就是說明默認配置路徑弧腥。
總結(jié):屢試不爽