Cross-Site Scripting (xss)

在聊xss之前先讨论下 同源策略核心安全

可以参考这个链接https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

作用:可以阻止第三方的写入或读取信息 xss就在其中访问之内 打个比方最简单的pyload在谷歌是不会生效的

谷歌的浏览器就采用了同源策略所以有的时候不是无效和环境也有关系<script>alert(1)<script>

 

这个协议本质上检查主机和源中三个不同东西 Protocal Host Port 只有当三个源都相同的时候浏览器才允许跨源读取或写入

Cross-Site Scripting (xss)

 

 

 同源策略会查看协议是否相同 http or https 然后再会看地址 最后是端口 这个策略可以保证基本的网络安全

java script 可以通过Dom API 访问html文档  文档由浏览器提供 

这意味着我们可以操纵dom 也可以窃取一些有问题的csrf令牌........ 或读取一些cookie 

我们可以将一些javascript注入到其他网站上  

example

Cross-Site Scripting (xss)

 

 

 当你点击一个提交后会像http服务发送这样的请求

 

Cross-Site Scripting (xss)

 

 

输入的名pwn用get参数发送到服务器上去 服务器处理完请求后返回一个响应值 hello pwn

服务器知道它响应发送出去的数据但是在没有额外信息情况下它不知道我们发送的输入是会被响应反射 

被进一步处理发送在屏幕上

再试一次把输入的内容换成一个payload <script>alert(1)</script> 然后弹窗1

没有如何过滤 在浏览器眼中会把它当成一个html并执行它 这种情况就被称为xss 刚刚这种情况就叫

反射型xss输入在响应中被反射回来并被识别为一个脚本块然后执行

存储型xss 打出去的javascript代码被存储起来放到服务器中和数据库里面 形成持久化攻击每一个人被访问的人都会被攻击 属于高危...

Cross-Site Scripting (xss)

 

 

   存储型xss:可能存在的地方 留言板  评论区 任何可以写入数据的地方都可以 

        dom型xss:修改客户端浏览器的dom环境执行脚本

参考:https://owasp.org/www-community/attacks/DOM_Based_XSS

解决方案 使用dompurify它会清理javascript代码 只留下安全的出去

xss挑战:xss.pwnfunation.com 目前在更新

 

上一篇:【原创】用MySQL 生成随机密码-增加大写处理


下一篇:Vue2.0 和 Vue3.0 Dom Diff 对比