关于shiro反序列化漏洞
什么是shiroApache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 fofa搜索语法为 1app="apache-shiro" 由于shiro本身就是一个身份认证的组件,所以其常出现在登录界面 shiro反序列化触发原理1https://www.freebuf.com/articles/web/380382.html 目前比较常见的shiro的漏洞有两个:Shiro-550反序列化漏洞与Shiro-721反序列化漏洞 Shiro550和Shiro721的区别是什么Shiro550只需要通过碰撞key,爆破出来密钥,就可以进行利用Shiro721的ase加密的key一般情况下猜不到,是系统随机生成的,并且当存在有效的用户信息时才会进入下一阶段的流程所以我们需要使用登录后的rememberMe...
web-刷题&学习取证-枫何
完成事项 刷题 学习取证 未完成的事项 暂时没有 下周待做的事 学学学 挖洞 [安洵杯 2020]Validator扫目录扫到源码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162const express = require('express')const express_static = require('express-static')const fs = require('fs')const path = require('path')const app = express()const port = 9000app.use(express.json())app.use(express.urlencoded({ extended: true}))let info =...
关于RSA算法的相关问题
什么是RSA加密RSA算法是一种非对称加密算法,与对称加密算法不同的是,RSA算法有两个不同的密钥,一个是公钥,一个是私钥。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK 相关参数 RSA加密的相关参数明文 m:就是待加密的文本啦,一般也就是我们的flag。 密文 C:加密完成后的密文,一般题目会给你,我们要做的就是根据密文解密出明文。 公钥 e(加密钥):用来加密的密钥,是一个整数,是公开的。 两个大素数 p,q:RSA加密的关键部分,一般不会告诉你。我们选取两个大素数并计算它们的乘积,得到n=p*q。后面会用p,q,n来加密解密。由于p,q非常大,想要对n进行因式分解得到p,q非常困难,这也确保了RSA的安全性。 私钥 d(解密钥):用来解密,一般不会告诉你,d满足e*d mod...
关于为Linux添加定时计划-crontab命令的应用
首先在添加定时计划之前我们需要知道一个命令crontab Linux crontab 是 Linux 系统中用于设置周期性被执行的指令的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。 Linux 任务调度的工作主要分为以下两类: 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存 2、个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置 语法1crontab -l 编辑当前用户的 crontab 文件: 1crontab -e 1crontab -r 1crontab -u username -l 1crontab -u username -e 格式当你敲下crontab...
php代码审计-反序列化篇
什么是序列化?为什么几乎所有语言都有序列化功能实序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。 因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回来的,所以我们必须在把对象转成字节数组的时候就制定一种规则(序列化),那么我们从IO流里面读出数据的时候再以这种规则把对象还原回来(反序列化) 1234567891011<?phpclass aaaa{ public $name; function __construct($name) { $this->name=$name; }}$obj= new aaaa( name: "kaede");echo serialize($obj);?> 这就是php反序列化中的pop链 12345678910111213<?phpclass aaaa{ ...
php代码审计-前端漏洞篇
在实战中不建议深度挖掘,这些漏洞一般都可以通过一些逻辑漏洞进行绕过 白盒审计中的前端漏洞前端漏洞类型: xss漏洞 CSRF漏洞 JSONp劫持漏洞 url跳转漏洞 点击劫持漏洞 白盒测试中的XSS漏洞如何在白盒测试中寻找xss漏洞 自动化FUZZ,寻找输出函数 富文本xss挖掘 那么就有个问题,什么是富文本富文本就是例如网站开发者为使用者开发的留言板,文章编辑器等内容 富文本xss常见的富文本过滤方法: 黑名单过滤: 1234<?php$a=$_GET['1'];$b=htmlspecialchars($a);?> 1234<?php$a=$_GET[('1')];$b=strip_tags($a);?> 上述的两种方式虽然十分的高效和有效,但是其必然会影响到业务的正常,尤其是那些博客在线编辑等网站,这个时候一般的开发者就会选泽富文本过滤器 其实也没什么高深的,就是处理了一些js前端敏感和危险的函数 1<script src=16 href=16...
php代码审计-xml注入篇
这个洞其实我都不太乐意去讲,也没什么好说的 php XML实体注入解析函数 simplexml_load_file simplexml_load_string simpleXMLElement DOMDocument xml_parse php中的xxe漏洞逐渐减少php xml操作依赖libxml库 libxml2.9.0+默认关闭XML外部实体解析开关 如何挖掘xml实体注入(xxe)漏洞?暴力搜索!!!!!!核心代码 $data= file_get_contents(‘php://input’); $object=simplexml_load_string($data); //…… echo $object ->name; 常见于需要权限验证的web应用中 例子:Z-BLOG...
php代码审计-命令执行RCE篇
php命令执行函数php原生的命令执行函数如下,一共7个 system passthru (语法与system类似) exec(需要输出函数才能执行,** **) shell_exec (与exec一样,语法如下echo shell_exec(“tac flag.php”);) popen (格式语法如下popen(command,mode) command 必需。规定要执行的命令。 mode 必需。规定连接模式。可能的值:+ r: 只读。+ w: 只写...
php代码审计-任意文件操作篇
常见的一些文件类的危险函数文件包含 include require include_once require_once sql_autoload 文件读取 file_get_contents php://filter 绕过死亡file_put_content() base64...
php代码审计-sql注入篇
sql注入是php代码审计的主要漏洞点之一,另一个是upload 反向查找流程: 通过可控变量(输入点)回溯危险函数 查找危险函数确定可控变量 传递的过程中触发漏洞 但是上述的流程也并不完全的正确,例如有些铭感函数虽然出现在了程序当中,但是触发的流程需要经过转义注释等,那么这个函数就不构成威胁 具体反向查找的例子:B-blog-bind xxe 反向查找流程特点 上下文无关 危险函数,调用即漏洞 根源:危险函数导致漏洞 特点: 暴力:全局搜索危险函数 简单:无需过多理解目标网站功能与框架 快速:适用于自动化代码审计工具 无法挖掘逻辑漏洞:逻辑漏洞一般不存在危险函数,或危险函数的参数看似不可控 适应性较差:不适合存在全局过滤的站点 正向查找流程: 从入口函数出发 找到控制器,理解url派发规则 跟踪控制器调用,以理解代码作为目标进行源码阅读 阅代码的过程中,可能发现漏洞 具体正向查找的例子:PHPCMSv9.6.0...