当前位置:   article > 正文

二、XSS(跨站脚本)攻击_xss攻击代码

xss攻击代码

1.反射型XSS(GET)(只会把XSS保存浏览器上,只有自己能看到,刷新页面就会消失只能用一次)

直接输入标签型XSS试试

<script>alert(1)</script>

输入到一半发现输入不了了,有长度限制

按F12,看一下前端代码

发现有长度限制,我们可以直接双击,把这个值改大就好了

继续我们的修改,点击提交

弹框了,说明存在反射型XSS

2. 反射型XSS(POST)(只会把XSS保存浏览器上,只有自己能看到,刷新页面就会消失只能用一次)

POST的XSS需要先登录一下

先用burp抓个包,然后爆破一下账号密码

账号密码爆破的结果是

账号admin   密码123456

登陆一下

发现出现一个和GET反射型XSS一样的框

尝试输入

<script>alert(1)</script>

提交

3. 储存型XSS(可以把XSS保存在服务器中任何人 访问都可以看到,形成持久伤害)

同样的先用标签型XSS试一试 

<script>alert(1)</script>

网站有弹框,刷新网站,弹框还在

4. DOM型XSS(XSS在前端执行,不与数据库交互)

随便写点东西,确定一下输出点的位置

发现有两个输出点,这段JS的意思是 把我们输的东西赋值给了变量str,所以href里面就是我们输的东西,是第一个输出点,第二个是明文输出的

先看第一个输出点,第一个输出点在<script>标签里面,所以可以尝试一下事件型输出

' οnclick=alert(1) >\\

 '是为了闭合href=后面的'  >是为了闭合a标签的>  \\是为了注释掉后面的

成功弹窗

再看第二个输出点,没有<script>标签,只能使用标签型的

 

没有反应,所以第二个输出点不存在XSS 

5. DOM 型XSS-x

和之前一样,随便写点伤心往事

 点击右边发现URL编码后面也多了一些伤心往事

 看下源码

 window.location.search该属性获取页面 URL 地址

 decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码

var xss = txss.replace(/\+/g,' ');+删除,这里应该是过滤经过url编码过的空格

所以这个和上题一样也是在href里面

' οnclick=alert(1) >\\

6. XSS盲打

盲打的意思是在前端看不到任何东西,这里我们借助一下第三方的XSS平台 

把第三方XSS平台生成的XSS放到两个框框里面

提交之后我们登陆一下后台(后台地址在提示里面,账号密码在登录地址的提示里面)

打开XSS平台的项目管理就拿到了登录的cookie

 7. XSS过滤

首先老样子先尝试一下

<script>alert(1)</script>

发现没有弹窗,被过滤掉了

随机尝试一些东西,发现只过滤小写的script

所以我们可以大小掺杂

<ScriPt>alert(1)</sCrIpT>

成功弹框

 8. xss之htmlspecialchars

htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

输入<script>alert(66666)</script>发现我们的输入被HTML实体编码了

 标签型的肯定行不通了,因为在a标签里面我们尝试着用事件型的去做一下

' οnclick=alert(666) //

出现弹窗

 9. xss之href输出

一般在href中用伪协议

 成功弹窗

 10. xss之js输出

首先随机输入一些数字,看看源码

 发现我们输入的数据被输入在了变量ms里面,变量ms在script标签里面

所以我们尝试一下闭合script标签,然后插入我们的XSS

</script><script>alert(666)//

 前面那个</script>是为了闭合前端代码的<script>,后面的<script>是为了和后面的</script>组成新的标签

成功弹窗

 11. 如何防御

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
  输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/150078
推荐阅读
相关标签
  

闽ICP备14008679号