淺析圖片XSS中的哪些技術問題
跨站請求漏洞是web漏洞中最普遍的漏洞,在特定的場景下可以造成很嚴重的破壞。可以讓攻擊者在受害者瀏覽器上執行一個惡意腳本,網路上關於這方面的文章已經很多了。
危害
想像下,如果我們能夠在圖片里直接插入JS腳本,並且在訪問圖片的時候能夠觸發這個腳本。那麼我們就可以在網站文章下面的留言中上傳圖片,讓用戶不知不覺中招。
生成圖片
首先,以下腳本是一個向gif文件中注入JavaScript的腳本:
http://pastebin.com/6yUbfGX5
還有這個,是向bmp中注入的:
http://pastebin.com/04y7ee3u
兩個都是用python寫的,其中,我們注意到他們的重點是:
以下是對GIF的頭部進行的處理:
用Hexadecimal打開,可以看到元數據GIF89a。
此外就是注入的內容:
演示過程
把腳本放到kali下執行
接下來,我們運行如下命令,將語句注入到圖片中。以下是一個彈窗語句,在實際應用中,語句就很可能變成直接盜取cookie
好了,現在在html頁面中直接載入圖片,看xss是否可以被執行:
開啟網站服務,apache2
訪問頁面,發現js腳本成功被執行:
我們可以把語句改成以下,就能重定向了:
也有用C或者ASM做的工具:
https://github.com/jklmnn/imagejs
https://gist.github.com/ajinabraham/f2a057fb1930f94886a3
如何防範
防禦這類漏洞是很難的,不過有以下幾點建議可以參考:
過濾用戶輸入內容
用白名單的方式限制元素的載入,及時是來自同一個域用一些高級的開發模型例如MVC, PEAR, SRUTS…使用令牌系統
總結
XSS漏洞存在於互聯網的各個角落,千萬不能忽視他的存在。開發的過程中一定要記得過濾用戶輸入。
如若轉載,請註明原文地址: http://www.4hou.com/technology/3340.html 更多內容請關注「嘶吼專業版——Pro4hou」
推薦閱讀:
※好書一起讀(147):XSS,CSRF,SQL注入
※「每日一題」XSS 是什麼?
※了解黑客:這是黑客思維
※XSS常見攻擊與防禦
※記一次沒什麼技術含量的XSS注入