pikachu靶场练习——XSS详解

这篇具有很好参考价值的文章主要介绍了pikachu靶场练习——XSS详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

XSS(跨站脚本)概述

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。

XSS 跨站漏洞分类:

1. 反射型

<非持久化>攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(不会存储在服务器,不会经过数据库),一般容易出现在搜索页面。

2. 储存型(比反射型危害大些)

<持久化>代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。

3. DOM型

基于文档对象模型Document Objeet Model(DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。(DOM型XSS只在前端,与后端毫无关系。)

一、反射型xss(get)

直接输入一个script试试,但是发现输入框限制了长度。
pikachu靶场练习——XSS详解
这里我们有两种方法解决这个问题。

1、网页框直接输入

第一种是通过观察发现网页框的url里面有我们输入的信息,直接在这上面上修改。
输入<script>alert("xss")</script>,如图:
pikachu靶场练习——XSS详解
回车效果如下:
pikachu靶场练习——XSS详解

2、修改输入框的长度

用快捷键f12,选中输入框,看到它的maxlength为20。
pikachu靶场练习——XSS详解
我们把它随意改个值,这里我改的是100。

pikachu靶场练习——XSS详解
再在输入框输入<script>alert("xss")</script>,如图:
pikachu靶场练习——XSS详解
点击submit效果如下:
pikachu靶场练习——XSS详解

二、反射型xss(post)

根据提示直接登录账号,用户名admin,密码123456。
pikachu靶场练习——XSS详解

JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。

我们这里输入<script>alert(document.cookie)</script>

pikachu靶场练习——XSS详解
得到了cookie值。
pikachu靶场练习——XSS详解

三、存储型xss

在留言板直接输入:
<script>alert(document.cookie)</script>
pikachu靶场练习——XSS详解
提交得到cookie值:
pikachu靶场练习——XSS详解
这里需要注意的是当我们点击其他关卡再次回到这个存储型xss关卡时它仍会出现弹窗,这说明存储型xss是存储在服务器的数据库中的,也就是说存储型XSS能危害所有访问受影响页面的用户。
pikachu靶场练习——XSS详解

四、DOM型xss

我们像之前一样输入<script>alert(document.cookie)</script>,点击提交发现出现一行小字,点击后出现403页面。
pikachu靶场练习——XSS详解
查看源代码,发现这里有个domxss函数。大概意思是我们输入的值作为str写入到了a标签里。

<a href='"+str+"'>what do you see?</a>

这里的<script>alert(document.cookie)</script>写入时就失效了,因为a标签里面没有这种写法,所以我们要看看其他的用法,这里给出了两种方法。
pikachu靶场练习——XSS详解

1、补充完a标签

根据提示a标签可以这么用:

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

所以我们直接输入str为

' οnclick="alert('xss')">

点击下面的小字后效果如图:
pikachu靶场练习——XSS详解

2、用img标签

我们先闭合掉a标签,然后用img标签,语句如下:

'><img src="#" οnmοuseοver="alert('xss')">

onmouseover事件:指鼠标移动都某个指点的HTML标签上,会出现什么效果。

pikachu靶场练习——XSS详解
当我们把鼠标移动到前面的图片上时,效果如图:
pikachu靶场练习——XSS详解

五、DOM型xss-x

既然还是DOM型,就直接查看网页源代码,发现跟上一关没啥区别。
pikachu靶场练习——XSS详解
唯一有一点不同的是,输入出现在了url中:
pikachu靶场练习——XSS详解

由于本关payload在url中,因此比第4关好利用很多
DOM型XSS只在前端,与后端毫无关系。DOM-X型危害更大,它能够像反射型一样在URL中体现,将URL发给了受害者就能进行攻击。

六、xss之盲打

直接输入框输入<script>alert(document.cookie)</script>
pikachu靶场练习——XSS详解
提交后发现没有反应
pikachu靶场练习——XSS详解
根据提示登录后台地址:/admin_login.php
pikachu靶场练习——XSS详解
再登录账号:admin密码:123456
pikachu靶场练习——XSS详解
看到后台得到的cookie值:
pikachu靶场练习——XSS详解

七、xss之过滤

直接输入<script>alert(document.cookie)</script>
pikachu靶场练习——XSS详解
提交后出现了一个’>’
pikachu靶场练习——XSS详解
发现页面有回显输入的内容,url中也有输入的内容,离开本页面再回来,页面就没有这个内容了,说明是反射型GET型XSS
pikachu靶场练习——XSS详解
说明这一题存在过滤,我们需要尝试他过滤了什么字符和如何绕过过滤。
猜测一下可能有:"<>'on/`() script img href src
把以上字符一起提交,发现<>‘on/’() script被过滤掉了
pikachu靶场练习——XSS详解
但是单独输入**<>‘on/’() ,发现没有被过滤掉:pikachu靶场练习——XSS详解
说明过滤掉的语句可能是
<.script*

那就不要用< script>标签了,尝试使用别的标签
输入Payload:

<a href="#" onclick="alert(document.cookie)">

点击之后得到cookie:
pikachu靶场练习——XSS详解
pikachu靶场练习——XSS详解
这里可以看一下php:
pikachu靶场练习——XSS详解
这里的preg_preplace()函数的用法如下:
pikachu靶场练习——XSS详解
pattern这部分为要匹配的内容,在匹配内容的开头和结尾必须要添加同样的标识,但是不能为数字和字母,所以这里前后出现了/:

'/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/' 

七、xss之htmlspecialchars

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
’ (单引号)成为 ’
< (小于)成为 <
(大于)成为 >

它的语法如下: htmlspecialchars(string,flags,character-set,double_encode)
其中第二个参数flags需要重要注意,很多开发者就是因为没有注意到这个参数导致使用htmlspecialchars()函数过滤XSS时被绕过。因为flags参数对于引号的编码如下:
可用的引号类型:
ENT_COMPAT - 默认。仅编码双引号。
ENT_QUOTES - 编码双引号和单引号。
ENT_NOQUOTES -不编码任何引号。

输入**,发现没有效果。
pikachu靶场练习——XSS详解
查看源代码,发现有个a标签,它<>部分被html编码。此这关想闭合标签是不行了。仔细一看,又发现单引号居然没有被html编码,所以就利用一下标签吧。
pikachu靶场练习——XSS详解
输入
#’ οnclick=‘alert(1)’>**,提交点击,发现成功弹窗。
pikachu靶场练习——XSS详解

八、xss之href输出

先输入个<script>alert(1)</script>试试,没有弹框
pikachu靶场练习——XSS详解
右键查看源代码,发现它过滤了<>:
pikachu靶场练习——XSS详解
试试#' onclick='alert(document.cookis)',发现还是没有弹窗,查看源代码,发现过过滤了’':
pikachu靶场练习——XSS详解
所以现在左右尖括号和单引号都被html编码了。
我们查看w3school,发现href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。
所以我们这里可以输入:

javascript:alert(document.cookie)

得到弹窗:
pikachu靶场练习——XSS详解
查看php文件,发现它用了ENT_QUOTES - 编码双引号和单引号。
pikachu靶场练习——XSS详解

七、xss之js输出

先输入个<script>alert(1)</script>试试,没有弹框,查看源代码:
pikachu靶场练习——XSS详解
发现输入的闭合掉了,介绍两种办法:
法一:直接可以输入</script><script>alert(1)</script>,得到弹窗:
pikachu靶场练习——XSS详解
法二:
或者无中生有出一个js语句就好了,首先要用’;闭合掉当前的语句,然后插入新语句,然后再用//注释掉老语句遗留下来的’;
输入';alert(1);//,得到弹窗
pikachu靶场练习——XSS详解
查看php,这里的关键是JS的输出点应该使用\对特殊字符进行转义:
pikachu靶场练习——XSS详解
总结:
1、在不知道它过滤了什么的情况下,可以用**"<>'on/`() script img href src**等字符
2、用htmlspecialchars进行过滤,默认情况下没有过滤单引号。
3、在a标签的href中可以利用JavaScript协议执行js语句。在有输入接口,并且将输入内容直接赋值给变量的,可以构造闭合来执行恶意js代码。文章来源地址https://www.toymoban.com/news/detail-487297.html

到了这里,关于pikachu靶场练习——XSS详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记录--详解 XSS(跨站脚本攻击)

    前言:我们知道同源策略可以隔离各个站点之间的 DOM 交互、页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是也束缚了 Web。这就需要在安全和自由之间找到一个平衡点,所以我们默认页面中可以引用任意第三方资源,然后又引入 CSP 策略来加以限制;默认

    2024年02月08日
    浏览(42)
  • Web漏洞-XSS实验-pikachu靶场5个场景(二)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 上一篇《Web漏洞-XSS理论和靶场小试牛刀(一)》已经介绍了XSS一些理论知识点,本文

    2024年02月05日
    浏览(45)
  • Web漏洞-XSS绕过和pikachu靶场4个场景(三)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1.1、XSS漏洞挖掘 数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考

    2024年02月05日
    浏览(47)
  • Pikachu靶场通关笔记--Cross-Site Scripting (XSS)

    首先,我们先区分get和post的区别。GET是以url方式提交数据;POST是以表单方式在请求体里面提交。通过get提交的数据是可以直接在url中看到的,所以GET方式的XSS漏洞更加容易被利用, 一般利用的方式是将带有跨站脚本的URL伪装后发送给目标,而POST方式由于是以表单方式提交,无法

    2024年02月05日
    浏览(44)
  • Pikachu靶场练习——CSRF

    打开pikachu靶场的CSRF我们可以看到CSRF的练习共有三项,分别为get、post、CSRF Token,在概述的地方有对CSRF的简单描述和一个小场景,对CSRF不熟悉的话建议先看看,看完之后那就开始趴。 点击CSRF(get)我们可以看到一个登录页面,点一下提示我们能够得到用户的登陆密码(后面

    2023年04月08日
    浏览(45)
  • 跨站脚本攻击XSS

    XSS又叫CSS (CrossSiteScript),因为与层叠样式表(css)重名,所以叫Xss,中文名叫跨站脚本攻击。 xss攻击,主要就是攻击者通过“html注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击方式。 危害 可以盗取用户Cookie 挂马(水坑攻击) 在用户经

    2024年02月15日
    浏览(54)
  • 跨站脚本攻击(XSS)

             XSS :Cross Site Scripting ,为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。在一开始的时候,

    2024年02月08日
    浏览(99)
  • XSS注入(跨站脚本攻击)

    今天学习一下xss注入 XSS注入漏洞又称为\\\"跨站脚本攻击(Cross Site Scripting)\\\",为了不和层叠样式表(Cascading Style Sheets,CSS)混淆,所以将跨站脚本攻击缩写为XSS。xss本质上是黑客通过对网页的HTML注入,篡改了原本服务器发给客户端的数据包,在其中插入了恶意的Script代码插入到网页

    2024年02月09日
    浏览(37)
  • XSS跨站脚本攻击漏洞

    XSS(跨站脚本攻击)是一种常见的网络安全漏洞,它允许攻击者在网站中植入恶意的脚本代码,当其他用户访问该网站时,这些脚本代码会在用户的浏览器中执行。这可能会导致严重的安全后果,比如窃取用户的敏感信息,欺骗用户,或者在用户的浏览器中执行恶意操作。

    2024年02月09日
    浏览(49)
  • XSS跨站脚本攻击及防护

    目录 一、初识XSS跨站脚本 1.1 XSS攻击概述 1.2 XSS漏洞攻击本质 1.3 XSS攻击的危害 1.4 XSS玫击原理 1.5 XSS攻击过程 1.6 XSS攻击特点(3) 1.6.1 间接攻击 1.6.2 可更正性 1.6.3 传播性强 二、XSS攻击与防护 2.1 XSS攻击分类 2.1.1 存储型XSS 2.1.2 反射型XSS 2.1.3 DOM型XSS 2.2 XSS攻击过程 2.2.1 存储型

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包