XSS面试题

什么是XSS攻击,如何避免?

XSS指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。

XSS分类:

  1. 反射型XSS:攻击者构造一个带有恶意代码的url链接诱导正常用户点击,服务器接收到这个url对应的请求读取出其中的参数然后没有做过滤就拼接到Html页面发送给浏览器,浏览器解析执行
  2. 存储型XSS:攻击者将带有恶意代码的内容发送给服务器(比如在论坛上发帖),服务器没有做过滤就将内容存储到数据库中,下次再请求这个页面的时候服务器从数据库中读取出相关的内容拼接到html上,浏览器收到之后解析执行
  3. DOM型XSS:dom型xss主要和前端js有关,是前端js获取到用户的输入没有进行过滤然后拼接到html中

防范措施:

  1. 预防存储型和反射型 XSS 攻击:
  • 改成纯前端渲染,把代码和数据分隔开。
  • 对 HTML 做充分转义。
  1. 预防 DOM 型 XSS 攻击:
    在使用 .innerHTML、.outerHTML、document.write() 时要特别小心,不要把不可信的数据作为 HTML 插到页面上,而应尽量使用 .textContent、.setAttribute() 等。
  2. 其他XSS攻击防范:
  • Content Security Policy(CSP):实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行。它的实现和执行全部由浏览器完成,开发者只需提供配置。
  • 输入内容长度控制,增加XSS攻击的难度。
  • HTTP-only Cookie: 禁止 JavaScript 读取某些敏感 Cookie,攻击者完成 XSS 注入后也无法窃取此 Cookie。
  • 验证码:防止脚本冒充用户提交危险操作。

xss设置了http-only如何获取cookie

保存读取:对方浏览器已经记录账号密码信息——直接读取
xss.pt里面,直接选择获取浏览器记住的明文密码
没有保存读取:对方浏览器没有保存账号密码信息——表单劫持
在登录时触发XSS的表单劫持脚本代码,就会将账号密码信息发送回XSS后台,我们就能以此拿到管理员的账号密码信息。
如果要利用表单劫持,那么XSS漏洞必须出现在登录框所在页面,也即XSS的表单劫持代码必须插入到登录框所在的页面(XSS代码提前写入此页面等待触发),若登录框所在页面不存在跨站漏洞,就无法得到账号密码信息。
利用phpinfo获取cookie
phpinfo中很有可能藏着大量的信息,其中说不定就包含着cookie

DOM型XSS和一般的XSS区别?

基于文档对象模型(Document Object Model,DOM)的一种漏洞,在JavaScript脚本动态执行的过程中产生的。
DOM型是不需要经过服务器的,其他的XSS一般是要经过服务器

存储型xss在纯内网的环境中,可以怎么利用?

xss本质上是任意代码执行,不要仅限于弹cookie,知名的XSS框架beef可以参考一下,xss可以修改网站页面,甚至可以扫描端口,如果你也在内网,可以嗅探密码等等。

HttpOnly的作用?

如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击窃取cookie内容的情况发生,这样就增加了cookie的安全性。

XSS可以用来做什么?

  1. cookie劫持
  2. XSS钓鱼
  3. 获取用户浏览器信息(xss.pt)
  4. 进行DDOS攻击
  5. 劫持浏览器会话,可以结合CSRF,使其威力加倍
  6. 获取电脑的真实IP
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值