跳到主要內容

新手上路 | 上傳Word文件形成存儲型XSS路徑

網站內容來源http://server.it168.com/

新手上路 | 上傳Word文件形成存儲型XSS路徑

2018-05-31 13:25    來源:FreeBuf.COM  作者: clouds 編譯 編輯:
0購買

  在滲透測試過程中,每當看到目標測試網站存在上傳功能時,總會激起我的好奇心。如果能夠走運的話,若目標網站服務器是PHP或ASP架構,而且上傳功能沒作後綴過濾,這樣就能導致可以直接上傳反彈腳本形成控制。如果這招行不通,我會嘗試上傳一個HTML頁面去觸發我自己設置的客戶端javascript腳本形成XSS攻擊。本文我就分享一個上傳docx文件形成存儲型XSS漏洞的實例。



  測試上傳功能


  剛好在某次Web測試工作中,我發現目標網站上傳功能中,用一個未授權用戶即可上傳自己的文件,該上傳功能中允許用戶上傳.docx文件:



  當把這種.docx文件上傳之後,它還能被下載。通過比較發現,上傳成功的文件uploaded.docx和服務器上其對應的可下載文件downloaded.docx之間存在着一些不同,也就是說,文件上傳成功之後,在提供下載之前,服務器會對這個上傳文件進行一些處理操作,之後,再提供下載。


  


  用來上傳的文件必須是一個有效的.docx文件,那基於瀏覽器的解析显示來說,它可能會把它轉換為html格式來显示,那我能不能把它後綴作個更改呢?所以我先來試試在POST請求中把.docx後綴更改為.html看看:



  當這個.html文件上傳之後,向服務器請求這個文件后,服務器會把其Content-Type頭默認為text/html,這樣的話,瀏覽器會把這個文件解析為HTML執行:



  插入XSS Payload


  這樣,我就想到了把XSS Payload捆綁到一個像下圖這樣的.docx壓縮文件中去。由於這是.docx經直接把後綴更改為.zip的壓縮格式文件包樣例,我需要確定在上傳或Web解析過程中某些不會被轉儲更改的區域,最後,我發現了這種docx變zip壓縮格式包中的某些文件路徑會保持原樣,像下圖這樣,我把其中的Settings.xml文件名加上了一長串字母好待區分。



  之後,再把這個zip格式後綴還原為docx格式,用UItraEdit查看hex代碼,再在保持原樣的區域中覆蓋掉一些字節,插入我自己設置的JavaScript XSS代碼:



  上傳時,服務器能正常接收這個經過構造的.docx文件,在HTTP POST過程中,我把它的後綴更改為.html後綴進行了最終上傳:



  向服務器請求這個文件時,它能被服務器解析為HTML文件,其中包含了完整的之前插入的XSS Payload代碼:



  當然瀏覽器解析之後,也能成功執行其中插入的XSS Payload:


  為了對這種XSS攻擊進行混淆隱蔽,攻擊者可以在其中加入一個包含URI統一資源標識符的隱藏iframe框架,能對受害者產生迷惑效果,像下圖這樣:



  防護措施


  這樣的效果對於開發者來說應該採取以下手段來進行限制。


  文件上傳之前,在服務器端驗證上傳文件格式是否為.doc或.docx有效格式;


  嚴格限制Content-Type頭,對Content-Type頭或特定後綴格式更改過的上傳文件須保持與上傳文件相同的Content-Type頭信息;


  控制文件下載時的其它操作情況,添加響應標頭:"Content-Disposition: attachment",以防止在瀏覽器中內嵌显示文件;


  過濾掉所有包含HTML標籤的上傳,因為docx可經壓縮篡改其中包含的HTML文件。


網站內容來源http://safe.it168.com/

【精選推薦文章】



如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!



想要讓你的商品在網路上成為最夯、最多人討論的話題?



網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線



不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務



想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師"嚨底家"!!

https://www.3chy3.com/?p=2137



Orignal From: 新手上路 | 上傳Word文件形成存儲型XSS路徑

留言

這個網誌中的熱門文章

請問貝果烤前為什麼需要用滾水燙過?

水燙 貝果 的目的是讓貝果提早形成麵包皮以在後續烘焙時避免貝果過度膨脹變成鬆軟的麵包,同時提早形成的麵包皮烤乾後比較硬,這兩個因素產生貝果的特殊口感。在有些食譜熱水會加鹼或糖,讓麵包面容易變褐。原理:水燙貝果時貝果表面的澱粉粒吸水糊化溶出澱粉,因為水煮的時間很短約30-60秒,溶出的澱粉仍舊糊在表面上。後續烘焙中澱粉漿硬化形成麵包皮,因麵包皮的硬殼強度使貝果內的氣泡不容易膨脹,最後形成貝果組織密實而具有咬感,所使用的高筋麵粉也提供的大量麵筋強度是造成這些特性的另一因素。貝果用油較少,產生的麵包皮硬不會酥脆,水溶澱粉產生的是硬殼回潮後變得很堅韌,藉著食用前的熱烤再使它脫水硬化,因硬麵包皮不厚所以咬下時有脆的口感。水煮的時間控制了麵包皮的厚度與強度,水煮時間愈短,貝果愈鬆軟,反之則氣體膨脹愈不容易,成品就會愈密實而有咬感,但也皮愈厚愈不容易咬下口。麵包麵的顏色在不同的烘焙程度與成分組成,受到非酵素褐變(梅納反應)、焦糖化、碳化等影響。一般以非酵素褐變最為重要,此反應是蛋白質與糖的化學反應,產生褐色的物質與特殊的氣味,在鹼性環境中容易進行,所以在有些食譜在水中會加糖或加鹼等處理。 貝果宅配     手工貝果     貝果 http://www.foodhy3.com/?p=65 Orignal From: 請問貝果烤前為什麼需要用滾水燙過?

咳嗽能吃柿子

文章導讀 咳嗽是因為嗓子不舒服引起的,因此咳嗽的時候人們應該避免吃刺激性的食物,比如辛辣的、過甜過鹹的、生冷的、腥的食物等等,這種食物會刺激嗓子粘膜,讓嗓子更不舒服,咳嗽也會因此變得更加嚴重,咳嗽的時候可以吃一些止咳化痰的水果,比如梨,那麼咳嗽能吃柿子嗎? 柿子是人們比較喜歡食用的果品,甜膩可口,營養豐富。不少人還喜歡在冬季吃凍柿子,別有味道。柿子的營養價值很高,含有豐富的胡蘿蔔素、核黃素、維生素等微量元素,所含維生素和糖分比一般水果要高很多。柿恭弘=恭弘=叶 恭弘 恭弘中含有多種活性成分,如維生素C、多種黃酮甙類、二萜類、膽鹼、β-胡蘿蔔素。所以,患者在咳嗽期間是可以吃柿子的,但是不能多吃,一定要適量,以免引起消化不良。患者咳嗽期間,除了柿子以外,還可以吃其他的一些新鮮蔬菜和水果,如蘋果、梨、獼猴桃、芹菜、花菜等,這對於咳嗽的早日康復是有幫助的。 能吃。柿子性寒,味甘、澀。歸肺經。故有健脾澀腸,主治咳嗽止血之功。是慢性支氣管炎、高血壓、動脈硬化、內外痔瘡患者的天然保健食品。但慢性胃炎、消化不良等胃功能低下者以及外感風寒咳嗽者不宜食柿子;體弱多病者、產婦、月經期間女性,均忌食柿子;糖尿病人勿食。 咳嗽是由多種因素造成的,包括吸入容易產生過敏的物質,比如花粉柳絮,以及炎症感染,包括氣候乾燥,辛辣含糖食物刺激,甚至情緒緊張,均可造成咳嗽的現象,而常見的咳嗽多是炎症感染造成的,柿子屬於熱性食物,容易加重局部咽喉炎症反應。 咳嗽期間是可以吃柿子的,一般可以少吃40具有寒涼的作用,一般對人體的刺激性比較大,咳嗽一般都是由於支氣管出現了炎症就會產生咳嗽咳痰的癥狀,一般是要採用口服化痰止咳的藥物來進行用藥治療,如果說咳嗽不是很明顯的話,一般也可以採用口服抗感冒的藥物來進行用藥治療。 網站內容來源https://www.cndzys.com/yinshi/ 【精選推薦文章】 想知道 台東名產 人氣商品是什麼?想知道更多 台東知名伴手禮 有哪些? 想知道全國票選五大 台東必買 、 台東伴手禮 最佳商品哪裡買的到? 台東團購美食 、 台東必買零...

躺着喝水有什麼壞處

文章導讀 躺着喝水是一種不好的做法,因為躺着喝水會導致水容易進入氣管,引起我們嗆到喉嚨,而且不利於水分進入腸道中,所以最好的方法是坐起來喝水。水我們身體重要的成分,每天都需要飲用大量的水來維持身體的運作,如果缺水是會引起新陳代謝下降的,而且會引起各種各樣的疾病,大家要引起重視。 1、容易嗆着,水容易進入氣管;如果嗆着,嚴重的後果有生命危險。 2、這樣喝不衛生,也不符合人的作為。 喝水喝多了有什麼壞處嗎? 1、水喝多了,會增加腎髒的負擔。人體是通過尿液來排毒的,那尿液的主要的組成部分就是水,而所有的尿液都是要經過腎臟過濾的,因此,如果喝水過多,就意味着腎髒的過濾就更多,就會增加腎髒的負擔。 2、飲水過量會引起水中毒。人體腎髒的持續最大利尿速度是每分鐘16毫升,如果人體攝入水的量超過了這個標準,或者喝水的速度超過這個標準,那體內就會出現水過剩的現象,而過剩的水分就會使細胞膨脹,繼而引起脫水低鈉症,臨床會表現為頭暈眼花、嘔吐、虛弱無力、心跳加快等癥狀,這種中毒的癥狀是全身的,嚴重的會出現痙攣、昏迷甚至危及生命。 擴展資料: 感冒時也並不是喝水越多越好。感冒時醫生都叮囑病人要多喝水,因為水可以加速排毒,緩解感冒的癥狀,而且,人在感冒的時候,身體也很容易缺水,所以適當的增加水的攝入是有好處的,但是也絕對不是喝的越多越好,而是要根據個人的差異,適當的增加喝水的量,而且一次喝的量不可過多。 每人飲水量應視個人情況而定,一般1.5~2升為宜。從衛生角度來說,喝涼開水、茶水或礦泉水較好。但應注意,一次飲水過多或喝得過快對身體不利,老年人尤其應該注意。一次飲水過多會加重心、腎負擔,對患有心臟病、高血壓、腎病和水腫的人傷害最大。因勞動或運動而大量出汗后也不宜一次喝水太多。 水喝多了,會引起水中毒。專家介紹,過量飲用卻會導致人體鹽分過度流失,一些水分會被吸收到組織細胞內,使細胞水腫。開始會出現頭昏眼花、虛弱無力、心跳加快等癥狀,嚴重時甚至會出現痙攣、意識障礙和昏迷,即水中毒。大量喝水后,人體易產生疲倦感,食慾大減,還使人感到昏昏沉沉的。 這是因為飲水過多衝淡了血液,全身細胞氣體交換就會受到影響。腦細胞一旦缺氧,人就會變得遲鈍。腎功能正常的人每天最多只可排出10~20升尿。如果飲水過...