首页 > 其他分享 >【bWAPP】XSS跨站脚本攻击实战

【bWAPP】XSS跨站脚本攻击实战

时间:2024-12-19 19:57:34浏览次数:11  
标签:XSS 跨站 xss bWAPP Reflected alert Medium payload

别低头,皇冠会掉;别流泪,贱人会笑。

0x01、XSS - Reflected (GET)

Low

输入的内容直接输出到页面中:

在这里插入图片描述

后台服务端没有对输入的参数进行过滤, 构造一个注入xss payload即可:

<script>alert(1)</script>

成功弹窗

在这里插入图片描述

Medium

审查源码可以发现服务端进行了过滤, 但只是addslashes()函数而已(防sql注入), 依旧可以xss:

在这里插入图片描述

构造一个注入xss payload即可:

<script>alert(1)</script>

成功弹窗

在这里插入图片描述

High

审查源码可以发现将所有关键字转换为HTML实体, 是安全的:

在这里插入图片描述

0x02、XSS - Reflected (POST)

和GET型一样, 只是区别在于GET型的注入直接修改URL的请求即可, POST注入则需要要Post data构造传输post请求:

GET型:

http://localhost:8080/bWAPP/xss_get.php?firstname=<script>alert(1)</script>

POST型:

在这里插入图片描述

成功弹窗

在这里插入图片描述

0x03、XSS - Reflected (JSON)

思考

当查找movie:Iron Man成功时, 就会提示找到:

在这里插入图片描述

当查找movie:Iron 不成功时, 就会将输入的字符串显示在界面上:

在这里插入图片描述

这就造成了可控变量的存在

Low

构造一个注入xss payload即可:

<script>alert(1)</script>

错误信息直接爆出来了…

在这里插入图片描述

可以看出来是Json注入,

尝试注入json数据:

{"result": "<script>alert(1)</script>"}

发现不行;

在这里插入图片描述

再看报错信息, 继续尝试闭合吧:

"}]}'; <script>alert(1)</script> //

发现不行, 查看HTML源码, 发现闭合出去之后是处于script之间的:

在这里插入图片描述

知道原因之后就简单了:

"}]}'; alert(document.cookie) //

成功进行json注入

在这里插入图片描述

Medium&High

将所有关键字转换为HTML实体, 安全:

在这里插入图片描述

0x04、XSS - Reflected (AJAX/JSON)

通过尝试可以发现本页面是xss_ajax_2-1.php, 通过Ajax调用xss_ajax_2-2.php完成查询:

在这里插入图片描述

Low&Medium

有两种方法:

第一种方法:在页面内直接输入XSS的Payload即可

<img src=x one rror=alert(1)>

成功弹窗

在这里插入图片描述

在xss_ajax_2-2.php?title=页面也可以直接输入Payload

在这里插入图片描述

High

high等级利用了json的解析:

在这里插入图片描述

在输入框中注入是直接以字符串的形式输出的, 不会作为html元素或者js执行,

在这里插入图片描述

原因就在于xss_ajax_2-2.php中对输入进行了HTM实体编码:

在这里插入图片描述

0x05、XSS - Reflected (AJAX/XML)

和上一题一样, 同样通过Ajax跳转到另一个php解析,

发现是xml解析:

在这里插入图片描述

Low&Medium

payload:

<a xmlns:a='http://www.w3.org/1999/xhtml'><a:body onl oad='alert(1)'/></a>

xmlns是XML Namespaces的缩写,

当加载网站的时候执行alert(1)

在这里插入图片描述

Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。payload仍可行

High

源码中使用了htmlspecialchars()函数来进行过滤

0x06、XSS - Reflected (Back Button)

点击Go back按钮,

在这里插入图片描述

页面会Header到上一个界面:

在这里插入图片描述

由于刚刚从上一题到这题, 点击按钮之后就返回了上一个页面

Low

分析源码, 看到是利用了Referer来进行相应地跳转:

在这里插入图片描述

闭合绕过

观察, 发现可以闭合绕出input标签, 然后加xss:

在这里插入图片描述

构造payload:

Referer:'"><script>alert(1)</script>

成功弹窗

在这里插入图片描述

High

将所有关键字转换为HTML实体, 安全:

在这里插入图片描述

0x07、XSS - Reflected (Custom Header)

有的web会加上自定义的http字段信息, 且没有做好过滤

Low

直接在Http头中加入bWAPP字段信息:

payload:

bWAPP:<script>alert(1)</script>

成功弹窗

在这里插入图片描述

Medium

由于采用了addslashes()函数转义单引号等字符, 但是仍可以xss注入

High

将所有关键字转换为HTML实体, 安全:

在这里插入图片描述

0x08、XSS - Reflected (Eval)

Low&High

很明显的一个执行函数eval(), 通过参数date传入可执行的js:

构造payload:

http://localhost:8080/bWAPP/xss_eval.php?date=alert(1)

在这里插入图片描述

Medium

不影响js代码的执行

在这里插入图片描述

0x09、XSS - Reflected (HREF)

web流程大致是先输入姓名, 再进行电影投票:

在这里插入图片描述

Low

分析

观察名字被写入了页面中:

在这里插入图片描述

于是直接在输入名字的地方xss:

发现在p标签中:

构造payload:

</p> <script>alert(1)</script>

成功闭合

在这里插入图片描述

再者, 注意到链接处也可以闭合绕出:

在这里插入图片描述

构造payload:

1>Vote</a> <script>alert(1)</script>

成功闭合

在这里插入图片描述

Medium&High

源码中使用了urlencode()函数来进行过滤。

0x0A、XSS - Reflected (Login Form)

Low

开始先xss盲打一下:

在这里插入图片描述

不行, 输入单引号, 尝试sql注入:

在这里插入图片描述

发现单引号后面的内容(123)被输出到页面上, 并且应该是没做过滤的。

于是在单引号后面xss:

构造payload:

bee' 123 <script>alert(1)</script>

成功弹窗

在这里插入图片描述

Medium

使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

High

用了htmlspecialchars()函数来进行过滤。

0x0B、XSS - Reflected (Referer)

和0x06那关一样, 抓包修改Referer即可。

0x0C、XSS - Reflected (User-Agent)

同理, 抓包修改User-Agent即可。

0x0D、 XSS - Stored (Blog)

同 SQL Injection - Stored (Blog)

0x0E、XSS - Stored (Change Secret)

xss盲打

先把密码修改为xss的payload:

<script>alert('hack')</script>

修改成功

在这里插入图片描述

进入SQL Injection (Login Form/User)

然后当用户登录的时候, 就会触发xss:

在这里插入图片描述

修改前端代码

观察前端, 发现有一个隐藏的input标签:

在这里插入图片描述

将type改为text, 然后在其中输入绕出闭合即可xss:

123"> <script>alert(1)</script>

隐藏标签会显示出来

在这里插入图片描述

成功弹窗

在这里插入图片描述

Medium

使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

High

用了htmlspecialchars()函数来进行过滤。

0x0F、XSS - Stored (User-Agent)

同 SQL Injection - Stored (User-Agent)

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

CSDN: 
https://rdyx0.blog.csdn.net/

公众号:儒道易行
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

博客:
https://rdyx0.github.io/

先知社区:
https://xz.aliyun.com/u/37846

SecIN:
https://www.sec-in.com/author/3097

FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

标签:XSS,跨站,xss,bWAPP,Reflected,alert,Medium,payload
From: https://blog.csdn.net/weixin_48899364/article/details/144577501

相关文章

  • xss-labs通关手册
    文档结构与内容1.整体结构:文档按照xsslabs的关卡顺序,从level1到level11依次进行介绍,每个关卡都包含了页面表现、尝试过程、源码分析、通关payload等内容。2.各关卡详情    Level1:页面显示get传参name的值插入到html中,无过滤,直接插入js代码`<script>alert(/xss/)......
  • 【bWAPP】XML&XPath Injection实战
    人生最大的悲剧就是:你配不上自己的野心,也辜负了所受的苦难前言XML注入XXE-“xmlexternalentityinjection”,即“xml外部实体注入漏洞”。概括一下就是"攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题"也就是说服务端接收......
  • C10-8 SQL注入II + XSS练习 I
    情境参加了培训的第八次课,涉及到了SQL宽字节注入,从MySQL注入到GetShell,SQL注入的基本绕过手法,SQL注入防御,SQLmap的使用;XSS基本概念和原理的介绍(包括3种XSS及其手动测试).这里是第八课的作业题,及我的解答.此次作业宽字节注入,需要使用到Pikachu靶场.该靶场......
  • css和wxss有什么区别?
    CSS(CascadingStyleSheets)和WXSS(WeiXinStyleSheets)在前端开发中各自扮演着重要的角色,它们之间存在一些显著的区别。以下是对这些区别的详细归纳:尺寸单位:WXSS引入了rpx(responsivepixel)这一尺寸单位,它能够根据屏幕宽度进行自适应调整。例如,在iPhone6上,1rpx等于0.5px。CSS......
  • 请描述下XSS是如何攻击的?
    跨站脚本攻击(XSS)是一种代码注入攻击,攻击者将恶意脚本注入到看似合法的网站中。受害者访问被注入脚本的网站时,恶意脚本就会在受害者的浏览器中执行,从而允许攻击者窃取用户的敏感信息、篡改网页内容,甚至劫持用户的会话。XSS主要分为三种类型:反射型XSS(ReflectedXSS):......
  • XSS跨站脚本攻击详解
    一、XSS攻击简介跨站脚本攻击的英文全称是Cross-SiteScripting,为了与CSS有所区别,因此缩写为“XSS”由于同源策略的存在,攻击者或者恶意网站的JavaScript代码没有办法直接获取用户在其它网站的信息,但是如果攻击者有办法把恶意的JavaScript代码注入目标网站的页面中执行,他就可以......
  • XSSFWorkbook转换SXSSFWorkbook对象使用,避免OOM
    XSSFWorkbook转换SXSSFWorkbook对象使用,避免OOM目前excel的导入导出功能,大部分是基于apache的POI技术,而POI给我们提供了WorkBook接口。常用的WorkBook接口实现有三种:HSSFWorkbook:它是早期使用最多的工具,支持Excel2003以前的版本,Excel的扩展名是.xls。只能导出65535条数据,如果超过......
  • 【DVWA】XSS(Stored)
    倘若人生一马平川,活着还有什么意思呢。1.XSS(Stored)(Low)相关代码分析trim(string,charlist)函数移除字符串两侧的空白字符或其他预定义字符,预定义字符包括、\t、\n、\x0B、\r以及空格,可选参数charlist支持添加额外需要删除的字符。mysql_real_escape_string(string,......
  • SEEDLab —— 跨站脚本(XSS)攻击实验
    【软件安全】实验4跨站脚本(XSS)攻击实验目录【软件安全】实验4跨站脚本(XSS)攻击实验Task1:上传恶意消息以显示警告窗口1.直接嵌入2.通过src属性引用嵌入2.1搭建一个本地Web服务器2.2使用src属性引用Task2:上传恶意代码以显示CookiesTask3:窃取受害者机器的Cookies......
  • 小程序开发WXSS语法:距离单位 vh 、px 、% 在各种组件属性设置中区别
    一、引言在小程序的WXSS样式设计中,有许多组件属性用于控制布局和间距。像width、height、padding、margin等属性在设置时可以使用不同的单位,如vh、px和%,它们各自具有独特的性质和应用场景。理解这些单位在不同组件属性中的区别对于创建精确且灵活的小程序界面布局至关......