Pikachu系列——XSS

Pikachu靶场系列持续更新~

 
要像追剧追番一样追下去哦
 

实验二 —— XSS

XSS概述

Cross-Site Scripting 简称为“CSS”(跨站脚本攻击),为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;

DOMXSS、存储XSS与反射XSS有啥不同?
反射型:会经服务器处理,可在当前返回的数据包中发现XSS代码并显示在页面中;
存储型:经服务器处理,存储在页面中,以后别的用户访问,这个页面里都会有XSS代码;
DOM:在返回包里压根儿就找不到XSS代码的影子,只会出现在自己的页面代码中;

XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
主要原因
程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
防范
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入
输出转义:根据输出点的位置对输出到前端的内容进行适当转义

 

实验环境

我用的是phpstudy集成环境,一键搭环境 (如果端口没被占用还是比较顺利的)

靶场:Pikachu靶场下载
浏览器:火狐(谷歌的好像默认alert不发生弹窗)
工具:hackbar插件

接下来:
–>把下载下来的pikachu文件夹放到web服务器根目录下
–>根据实际情况修改inc/config.inc.php里面的数据库连接配置(登录名和密码要与数据库相同)
–>访问http://x.x.x.x/pikachu,会有一个红色的热情提示"欢迎使用,pikachu还没有初始化,点击进行初始化安装!",点击即可完成安装。
 

XSS——反射型(get)

可在表单或者URL里输入<script>alert(1)</script>
在这里插入图片描述
发现输入长度不够,F12审查元素,修改maxlength值,再写入弹窗语句
在这里插入图片描述

XSS——反射型(post)

看到登陆页面,可以选择爆破(admin,123456)
在这里插入图片描述
利用hackbar插件–>postdata功能,输入message=<script>alert(1)</script>&submit=submit
在这里插入图片描述

XSS——存储型

存储型xss一般存在留言框,个人信息等其他用户访问页面且可见的地方
在这里插入图片描述
这里简单弹了个cookie。在实战利用下危害极大,可利用xss平台或beef造成严重的威胁
在这里插入图片描述

XSS——DOM型

查看元素,发现用户输入的字符串会被存进src然后拼接
在这里插入图片描述
构造Payload:#'><img src="#" onmouseover="alert('xss')"> 鼠标移动至图片块则发生弹窗
在这里插入图片描述

XSS——DOM型(-x)

跟上题类似,不过这个是点击链接之后发生的弹窗
构造Payload:#'><img src="#" onmouseover="alert('xss')"> 鼠标移动至图片块则发生弹窗
在这里插入图片描述

XSS——盲打

盲打,也就是说只有后台才能看到输入的内容,从前端是无法判断是否存在XSS的。一般会联合beef等平台,利用xss盲打对获取管理员的cookie信息等,之后对带着一连串的攻击套路…

这里可以直接插入前面获取Cookie的恶意代码,直接盲打后台管理员的Cookie
在这里插入图片描述
这里我们自己登录后台…/admin_login.php
在这里插入图片描述
以管理员身份登录进后台就被弹窗,并弹出管理员的cookie
在这里插入图片描述

XSS——过滤

输入<script>发现被过滤掉了
在这里插入图片描述
这里简单通过大小写绕过
(更多绕过请自行百度~或者以后会写个xss绕过总结)
在这里插入图片描述
在这里插入图片描述

XSS——htmlspecialchars

htmlspecialchars()是PHP提供的一个对特殊字符进行转义的函数,它可以把预定义的字符转换为HTML实体

“ 转换为 &quot
‘ 转换为 &#039
< 转换为 &lt
> 转换为 &gt

输入查看特殊符号发生了实体转义,但是发现单引号不被过滤
在这里插入图片描述
构造#‘ onlick='alert(1)'绕过
在这里插入图片描述
点击链接后发送弹窗
在这里插入图片描述

XSS——href输出

发现输入内容都直接被写进href属性值内
在这里插入图片描述
输出在a标签的href属性中,可以使用javascript协议来执行JS
在这里插入图片描述

XSS——js输出

F12审查源码,发现输入内容丢进了#formjs里执行,输入的字符被拼接到$ms变量中:
在这里插入图片描述
输出被拼接到JS中,可以直接修改JS源码实现逃过
第一种方法:giao'</script><script>alert(1)// 闭合标签
在这里插入图片描述
第二种方法:111';alert(1);// 先分号闭合前面函数,再添加alert函数
在这里插入图片描述
 
GOT ALL OUT!
 
******************************************************
这一XSS模块先搞定了,关注收藏追更哦~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值