最近玩xss挑戰玩到第14關,玩不下去了,因爲第14關中的一個URL失效了。後面百度了一下,發現第14關是玩的是圖片exif信息中xss,於是決定自己復現一下。
1,什麼是exif
可交換圖像文件格式(英語:Exchangeable image file format,官方簡稱Exif),是專門爲數碼相機的照片設定的,可以記錄數碼照片的屬性信息和拍攝數據。可使用鼠標右鍵進入屬性頁面查看部分信息。
2,怎麼修改exif信息
linux系統使用exiftool工具,進行修改。windows系統直接使用鼠標右鍵進入屬性頁面直接修改。
linux系統系統
安裝exiftool工具:sudo apt install exiftool
在圖片作者欄中寫入payload: exiftoll -artist='"<img src=1 onerrror=alert(/shy/)>' exif.jpg
上傳到可以讀取圖片exif信息的網站,出現彈窗,復現成功。
windows操作系統
鼠標右鍵進入屬性頁面
雙擊直接填寫payload
上傳彈窗
3,exif xss漏洞原理
有些網站有讀取圖片exif信息的功能,當網站讀取到的惡意的exif信息就會觸發這個payload,上面已經演示過了。
有些谷歌瀏覽器安裝了EXIF Vewer插件,而chrome Exif Viewer插件獲取圖片exif信息的時候沒有過濾,導致了XSS代碼的執行。
演示:
1,按照上傳方法在圖片exif信息中寫入xss payload
2,下載Exif Viewer插件
a,在網上好不容易找了一個下載地址:https://chromecj.com/downloadstart.html#56發現還需要關注公衆號,輸入驗證碼
b,查看頁面源代碼,發現javascript腳本
<script type="text/javascript">function checkcode() {
var code = $('#txtcode').val();
var id = document.location.hash.replace('#', '');
if (code.length != 6) {
$('#tip').html('請輸入6位數字驗證碼!').css('color', 'red');
return;
} else {
$.get('https://chromecj.com/Home/DownCheck?aid=' + id + '&code=' + code, function(r) {
if (r == '') {
$('#tip').html('驗證失敗,請重試!').css('color', 'red');
return;
} else {
var result = JSON.parse(r);
if (result != '') {
var status = result.status;
var file = result.file;
if (status == 0) {
$('#tip').html('驗證碼已失效,請在公衆號重新獲取,五分鐘有效!').css('color', 'red');
return;
} else {
$('#tip').html('驗證通過,下載馬上開始!').css('color', 'green');
setTimeout("down()", 2000);
}
}
}
});
}
}
function getlink(link, key) {
var code = '';
if(key != ''){
code = '提取碼:'+ key;
}
return '<b style="color:red;">本站使用百度雲分流,請點擊鏈接前往百度雲下載:<a target="_blank" rel="nofollow" href="' + link + '">' + link + '</a> '+ code +'</b>';
}
function down() {
var id = document.location.hash.replace('#', '');
var html = document.getElementById('downdesc');
if (id == 60) {
html.innerHTML = getlink('https://pan.baidu.com/s/1miyYjig', '');
} else if (id == 177) {
html.innerHTML = getlink('https://pan.baidu.com/s/1mi7fFIw', '');
} else if (id == 391) {
html.innerHTML = getlink('https://pan.baidu.com/s/1Wis3ahkav7L21p3NmRFmQw', '64ui');
} else if (id == 24) {
html.innerHTML = getlink('https://pan.baidu.com/s/1nvxAq1b', '');
} else {
window.location = 'https://chromecj.com/Handler/Download/' + id;
}
}</script>
c,根據上述信息,構造下載url:https://chromecj.com/Handler/Download/56,成功下載到繞過驗證,下載到該插件。
3,安裝chrome插件Exif Viewer
a,直接拖入chrome瀏覽器擴展程序頁面,提示程序包無效
b,將插件的.crx後綴名修改爲.rar後綴名,然後進行解壓
c,打開chrome瀏覽器的開發者模式
d,選擇加載已解壓的擴展程序進行插件安裝,安裝成功,如下圖。
4,將圖片上傳到vps,使用chrome瀏覽器進行訪問,復現成功。