pikachu通关教程-CSRF XSS

article/2025/7/17 3:55:25

XSS

XSS漏洞原理


XSS被称为跨站脚本攻击(Cross Site Scripting),由于和层叠样式表(Cascading Style Sheets,CSS)重名,改为XSS。主要基于JavaScript语言进行恶意攻击,因为js非常灵活操作html、css、浏览器。
利用网页开发时web应用程序对用户输入过滤不足导致将恶意代码注入到网页中,使用户浏览器加载并执行恶意代码,通常是JavaScript类型,也包括java、vbs、flash、html等。用户的信息也就被获取了

可以分为三类,存储型,反射型,DOM型

xss执行成功的原因就是没有做好过滤,导致脚本被执行成功。

反射型xss(get)

做此类题目是,我们可以先输入一些特殊字符,例如"'<>666,查看有没有进行一个过滤,然后我们可以查看页码的源码,放在一个p标签里面,那换个角度,如果我们输入一些script代码,那是不是就能运行,这里要注意的就是前端对输入框的大小进行限制,但是很多前端的限制其实是无用的,我们可以通过f12对他进行一个更改,改成200即可,然后我们输入script代码。

<p class='notice'>who is ''<>6666,i don't care!</p> </div>

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

代码分析

当后端收到数据的时候,只进行了是否为空的操做,然后又返还给前端,整套流程没有做任何过滤,我们可以利用这种get请求,进行cookie获取等其他操做。

$html='';
if(isset($_GET['submit'])){if(empty($_GET['message'])){$html.="<p class='notice'>输入'kobe'试试-_-</p>";}else{if($_GET['message']=='kobe'){$html.="<p class='notice'>愿你和{$_GET['message']}一样,永远年轻,永远热血沸腾!</p><img src='{$PIKA_ROOT_DIR}assets/images/nbaplayer/kobe.png' />";}else{$html.="<p class='notice'>who is {$_GET['message']},i don't care!</p>";}}
}

反射型xss(post)

因为他是post我们可以通过抓包软件进行操做,其实get也可以这样子就不用更改html代码了,这里我们来获取cookie,可以看到我们前端出现弹窗,上面显示了cookie

存储型xss

我们还是使用这个代码,这样子只要查看这个页面都会有这个弹窗。

<script>alert(document.cookie)</script>

DOM型xss

还是f12对原代码进行一个查看,对这个按键绑定了以domxss事件,他这个会有一个a标签,我们也可以根据提示,如果不看提示,面对这种问题,一个是将a标签闭合添加其他的,或者添加事件。

  <div id="xssd_main"><script>function domxss(){var str = document.getElementById("text").value;document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";}//试试:'><img src="#" onmouseover="alert('xss')">//试试:' onclick="alert('xss')">,闭合掉就行</script><!--<a href="" onclick=('xss')>--><input id="text" name="text" type="text"  value="" /><input id="button" type="button" value="click me!" onclick="domxss()" /><div id="dom"></div></div>

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

DOM型xss-x

读完源码就知道,有些费尽心机想要忘记的事情,后来真的就忘掉了当点击这个链接时会执行domxss函数,出现一个让往事随风飘散的a标签,链接就是我们输入的代码,这时候跟上一题一样的思路,一个是将a标签闭合添加其他的,或者添加事件。

' onclick="alert('xss')">,
  <div class="page-content"><div id="xssd_main"><script>function domxss(){var str = window.location.search;var txss = decodeURIComponent(str.split("text=")[1]);var xss = txss.replace(/\+/g,' ');
//                        alert(xss);document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";}//试试:'><img src="#" onmouseover="alert('xss')">//试试:' onclick="alert('xss')">,闭合掉就行</script><!--<a href="" onclick=('xss')>--><form method="get"><input id="text" name="text" type="text"  value="" /><input id="submit" type="submit" value="请说出你的伤心往事"/></form><div id="dom"></div></div><a href='#' onclick='domxss()'>有些费尽心机想要忘记的事情,后来真的就忘掉了</a></div><!-- /.page-content -->

xss盲打

这道题要结合前后界面一起看,当我们提交数据后,登录后台能查看,他这个也是没有做任何过滤,我直接用image标签提交的。正常xss都可以显示

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

http://127.0.0.1:1000/pikachu/vul/xss/xssblind/admin.php

xss之过滤

<img src="#" οnmοuseοver="alert('xss')">当我用这个的时候发现也过了,说明其实题目是过滤,但是不完整,当我去查看代码是知道了对 <scrip过滤,其实方法也很简单换个标签或者双写


http://www.hkcw.cn/article/VqciDbQlHV.shtml

相关文章

E. Melody 【CF1026 (Div. 2)】 (求欧拉路径之Hierholzer算法)

E. Melody 思路 将所有出现过的音量和音高看作一个点&#xff0c;一个声音看作一条边&#xff0c;连接起来。那么很容易知道要找的就是图上的一条欧拉路径&#xff08;类似一笔画问题&#xff09; 又已知存在欧拉路径的充要条件为&#xff1a;度数为奇数的点的个数为0或者2个…

历年中国科学技术大学计算机保研上机真题

2025中国科学技术大学计算机保研上机真题 2024中国科学技术大学计算机保研上机真题 2023中国科学技术大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school?classification1 拆分数字 题目描述 给定一个数字&#xff0c;拆分成若干个数字之和&#xff…

2025陕西省赛补题

A 贪心 题意&#xff1a;给一个长度为n的序列&#xff0c;每次操作可以花费 w [ c [ i ] ] ( r − l 1 ) w[c[i]](r-l1) w[c[i]](r−l1)的代价&#xff0c;把区间 [ l , r ] [l,r] [l,r]染成染色 。 思路&#xff1a;对任意颜色&#xff0c;[l,r]中如果有cnt个连续的该颜色段…

Linux详谈进程地址空间

目录 第一谈&#xff1a;简单了解 第二谈&#xff1a;与操作系统的联系 内核空间与用户空间 步骤1&#xff1a;用户态代码执行 步骤2&#xff1a;跳转到内核代码 步骤3&#xff1a;内核代码访问用户数据 步骤4&#xff1a;返回到用户态 对于操作系统的本质&#xff1a;…

RabbitMQ vs MQTT:深入比较与最新发展

RabbitMQ vs MQTT&#xff1a;深入比较与最新发展 引言 在消息队列和物联网&#xff08;IoT&#xff09;通信领域&#xff0c;RabbitMQ 和 MQTT 是两种备受瞩目的技术&#xff0c;各自针对不同的需求和场景提供了强大的解决方案。随着 2025 年的到来&#xff0c;这两项技术都…

【Dify学习笔记】:Dify离线安装插件教程

Dify离线安装插件教程 1.本地下载插件 插件点击详情页面&#xff0c;安装右边的下载按钮&#xff0c;下载到本地 2.dify插件打包工具 dify-plugin-repackaging 下载后&#xff0c;进入到工具所在目录dify-plugin-repackaging/ git clone https://github.com/junjiem/dif…

2025年全国青少年信息素养大赛 scratch图形化编程挑战赛 小高组初赛 内部模拟试卷解析

2025年信息素养大赛初赛scratch模拟题 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】 scratch资料 Scratch3.0系列视频课程资料零基础学习scratch3.0【入门教学 免费】零基础学习scratch3.0【视频教程 114节 免费】 历届蓝桥杯scratch国赛真题解析历届蓝桥杯scratch…

eBest智能价格引擎系统 助力屈臣氏饮料落地「价格大脑」+「智慧通路」数字基建​

从价格策略到终端执行&#xff0c;数字化正在重构饮料行业竞争壁垒&#xff01; 近日&#xff0c;eBest为屈臣氏饮料提供的智能价格引擎系统已正式上线并投入运营。同时&#xff0c;基于eBest SFA方案且与屈臣氏饮料业务场景深度耦合的Smart Field Operation智慧通路项目正式启…

开发效率提升小技巧:快速提取图标资源的解决方案

在日常使用电脑的过程中&#xff0c;我们经常会遇到想要提取某个软件图标的情况&#xff0c;比如用于美化桌面、制作快捷方式&#xff0c;或者个人收藏等。这一款高效又实用的图标提取工具&#xff0c;帮助你轻松获取软件中的图标资源&#xff01; ResHacker 是一个绿色免安装…

keepalived定制日志bug

keepalived定制日志bug 源码安装apt安装endl 源码安装 在/etc/rsyslog.d/目录下创建 keepalived的日志配置文件keepalived.conf [rootubuntu24-13:~]# vim /etc/rsyslog.d/keepalived.conf [rootubuntu24-13:~]# cat /etc/rsyslog.d/keepalived.conf local6.* /var/log/keepa…

SpringCloud——Docker

1.命令解读 docker run -d 解释&#xff1a;创建并运行一个容器&#xff0c;-d则是让容器以后台进程运行 --name mysql 解释&#xff1a; 给容器起个名字叫mysql -p 3306:3306 解释&#xff1a;-p 宿主机端口:容器内端口&#xff0c;设置端口映射 注意&#xff1a; 1、…

2.测试项目启动和研读需求文档

软件质量需求 定义: 用于确定测试目标&#xff0c;反映用户对软件的要求分类依据: 分为功能和非功能两大类&#xff0c;其中非功能包含性能、界面等8个子类 软件质量需求的分类 功能需求: 软件能做什么的核心能力非功能需求: 性能&#xff1a;运行效率和资源占用界面&#xf…

在 Android 上备份短信:保护您的对话

尽管我们的Android手机有足够的存储空间来存储无数的短信&#xff0c;但由于设备故障、意外删除或其他意外原因&#xff0c;您可能会丢失重要的对话。幸运的是&#xff0c;我们找到了 5 种有效的 Android SMS 备份解决方案&#xff0c;确保您的数字聊天和信息保持安全且可访问。…

02业务流程的定义

1.要想用好业务流程&#xff0c;首先必须得了解流程与认识流程&#xff0c;什么是业务流程。在认识流程之前&#xff0c;首先要理清两个基本概念&#xff0c;业务和流程。 业务指的是&#xff1a;个人的或者摸个机构的专业工作。流程&#xff0c;原本指的是水的路程&#xff0…

PHP7+MySQL5.6 查立得源码授权系统DNS验证版

# PHP7MySQL5.6 查立得源码授权系统DNS验证版 ## 一、系统概述 本系统是一个基于PHP7和MySQL5.6的源码授权系统&#xff0c;使用DNS TXT记录验证域名所有权&#xff0c;实现对软件源码的授权保护。 系统支持多版本管理&#xff0c;可以灵活配置不同版本的价格和下载路径&#…

vue+threeJs 绘制3D圆形

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“vuethreeJs 绘制圆形”。 今天找到一个用three.js绘制图形的项目&#xff0c;主要是用来绘制各种形状。 项目案例示意图 1.THREE.ShapeGeometry 定义&#xff1a;是 Three.js 中用于从 2D 路径形状&#xff08…

vue+threeJs 生成一个圆柱体

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“vuethreeJs 生成一个圆柱体”。 案例示例图 1.CylinderGeometry 定义&#xff1a;创造一个圆柱体。 属性列表列表说明 radiusTop 顶部半径 radiusBottom 底部半径 height 高 radialSegments 横向分段&#xff…

VUE中created() 和 mounted()俩种生命周期钩子函数的区别

在 Vue.js 中&#xff0c;created() 和 mounted() 是两个关键的生命周期钩子函数&#xff0c;它们的主要区别在于​​调用时机​​和​​可访问的实例属性​​&#xff1a; 调用时机 ​​created()​​ 在 Vue 实例创建完成后立即调用&#xff08;​​数据初始化完成&#xff…

ASP.NET MVC添加模型示例

ASP.NET MVC高效构建Web应用ASP.NET MVC 我们总在谈“模型”&#xff0c;那到底什么是模型&#xff1f;简单说来&#xff0c;模型就是当我们使用软件去解决真实世界中各种实际问题的时候&#xff0c;对那些我们关心的实际事物的抽象和简化。比如&#xff0c;我们在软件系统中设…

【免费赠书8本】《扣子开发AI Agent智能体应用》

【图书介绍】《扣子开发AI Agent智能体应用》-CSDN博客 博主免费赠书《扣子开发AI Agent智能体应用》8本。 想要赠书的朋友&#xff0c;请在本文后面加评论&#xff0c;要求赠书。 收到赠书后&#xff0c;受赠书的朋友&#xff0c;两周内在CSDN博客上发一遍博文&#xff0c;…