02 2022 档案
摘要:前言 TP代码审计一直是个坎,很多次CTF比赛中都会出现,都不是特别拿手,所以简单复现TP的经典漏洞,也算是学习记录。 复现 环境 官方源码下载即可 控制器修改代码 <?php namespace app\index\controller; class Index { public function
阅读全文
摘要:前言 学习了Yii框架,接下来进入TP的世界。 复现 环境 官方源码下载https://www.thinkphp.cn/donate/download/id/610.html 在ThinkPHP/Conf/convention.php配置数据库即可. 连接数据库 配置控制器 Application/
阅读全文
摘要:前言 继续学习PHP代码审计,PHP反序列化是很常见的PHP漏洞,这里复现一下。 第一次复现Yii框架 看看框架的目录 DIRECTORY STRUCTURE assets/ contains assets definition commands/ contains console comman
阅读全文
摘要:MiniCMS-1.10审计入门 前言 听说是审计入门选择,开始学习PHP审计了。还有后面的Thinkphp审计 安装 下载源码https://github.com/bg5sbk/MiniCMS 修改install.txt为install.php,在web页面下运行此文件即可 复现 CVE-2018
阅读全文
摘要:CVE-2017-5223-PHPMailer任意文件读取漏洞复现 影响版本: PHPMailer ⇐ 5.2.21 漏洞原理 文件读取的函数主要是 encodeFile函数。(贴关键代码) protected function encodeFile($path, $encoding = 'base
阅读全文
摘要:简介 Session文件包含,实质就是SESSION_UPLOAD_PROGRESS 的利用 Session Upload Progress 即 Session 上传进度,是php>=5.4后开始添加的一个特性。官网对他的描述是当 session.upload_progress.enabled 选项
阅读全文
摘要:前言 伪造用户登录的攻击面也是特别广 伪造用户需要 Key,所以隐藏 key的方法就有很多 uuid.getnode()函数隐藏 key Session反序列化 环境变量藏 KEY,软连接读任意文件读取 pickle反序列化/proc/self/environ获取环境变量 SSTI读取环境变量 例题
阅读全文
摘要:Session序列化攻击 PHP在session存储和读取时,都会有一个序列化和反序列化的过程,PHP内置了多种处理器用于存取 $_SESSION 数据,都会对数据进行序列化和反序列化 php有三种session存储处理引擎,参考lemon师傅的表: 下面根据代码,来看一下session的实际情况。
阅读全文
摘要:前言 刷题中遇到很大关于session相关的题目,这里总结一波 session基础知识 这里主要讲讲传统的PHP中的“服务端Session”。至于什么是服务端Session,什么是客户端Session,可以看看P神的客户端 session 导致的安全问题 Session概念:在计算机中,尤其是在网络
阅读全文
摘要:前言 在内网学习中,经常需要配置靶机的各种服务,简单记录,方便以后查阅 0x00 kali网卡配置 网卡路径 /etc/network/interfaces,修改即可 vim /etc/network/interfaces DNS解析配置路径 /etc/resolv.conf vim /etc/re
阅读全文
摘要:1.预编译,绑定变量 基本上大家都知道 采用sql语句预编译和绑定变量,是防御sql注入的最佳方法。但是其中的深层次原因就不见得都理解了。 String sql = "select id, no from user where id=?"; PreparedStatement ps = conn.p
阅读全文
摘要:前言 学习了sql注入很长时间,但是仍然没有系统的了解过,这次总结一波,用作学习的资料。 从注入方法分:基于报错、基于布尔盲注、基于时间盲注、联合查询、堆叠注入、内联查询注入、宽字节注入 联合查询 即多表之间的查询 联合查询分类 内连接(inner Join 或 Join) 交叉连接 (cross
阅读全文
摘要:redis入门 基础内容可以在菜鸟教程 redis实践 环境搭建 攻击机:kali redis4-5 靶机:Ubuntu redis4-5 apt install redis-server#安装即可 Ubuntu下 redis日志文件地址 /var/log/redis/redis-server.lo
阅读全文
摘要:1.导出函数写shell 触发条件 网站绝对路径 secure_file_priv 的值非NULL或包含了导出的绝对路径 mysql服务有对网站可访问路径的写权限 .mysql连接用户有FILE权限/ROOT用户或ROOT权限 可以使用如下语句 show global variables like
阅读全文
摘要:前言 转载https://www.freebuf.com/articles/web/264593.html 基础绕过 1. 大小写绕过 用于过滤时没有匹配大小写的情况: SeLECt * from table; 2. 双写绕过 用于将禁止的字符直接删除的情况: 比如,使用preg_replace()
阅读全文
摘要:什么是 CDN CDN 工作原理 内容分发网络(Content Delivery Network,简称 CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络 最简单的 CDN 可以通过一个 DNS 服务器和多个缓存服务器组成。 例子讲解 假设通过 CDN 加速的域名为
阅读全文
摘要:漏洞描述 Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。 漏洞条件 shiro版本 ⇐1.2.4 漏洞复现 抓包
阅读全文
摘要:一、漏洞描述 Apache Shiro 是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 CVE-2020-1957,Spring Boot中使用 Apache Shiro 进行身份验证、权限控制时,可以精心构造恶意的URL,利用 Apa
阅读全文
摘要:前言 遇到很多次原型链知识点的考题,每次都被爆锤,下次不想了呀。。。 JavaScript原型 javascript中的类,在java和php中使用class来定义类,而是通过函数定义的方法。 JavaScript 常被描述为一种基于原型的语言 (prototype-based language)—
阅读全文
摘要:Pickle原理剖析 为什么需要Pickle 如果我们需要存储的东西是一个dict、一个list,甚至一个对象,依然选用存储字符串的方法就很繁琐。所以需要序列化 序列化:对象-->字符串 反序列:字符串-->对象 各大语言都有自己的反序列库,而Python的库就是Pickle 比如下图,显示了对象的
阅读全文
摘要:phar文件本质上是一种压缩文件,会以序列化的形式存储用户自定义的meta-data。当受影响的文件操作函数调用phar文件时,会自动反序列化meta-data内的内容。 关于流包装 大多数PHP文件操作允许使用各种URL协议去访问文件路径:如data://,zlib://或php://。 例如常见
阅读全文
摘要:基础知识 序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。 php 将数据序列化和反序列化会用到两个函数 serialize 将对象格式化成有序的字符串 unserialize 将字符串还原成原来的对象 序列化的目的是方便数据的传输和存储,在PHP中,序列化和反序列化一
阅读全文
摘要:## leve-1 无任何过滤,get 型,直接<script>alert(1)</script> 2. 方法一:闭合 input 标签里面的"><script>alert(1)</script> 方法二:闭合 value 属性,在 input 标签中添加新的属性" onclick="alert(1
阅读全文
摘要:一、后缀黑名单绕过 1.前端 JS 绕过 可以直接更改 js 源码,允许上传 PHP 文件 也可以直接删除 2.只验证 Content-type if (file_exists(UPLOAD_PATH)) { if (($_FILES['upload_file']['type'] == 'image
阅读全文
摘要:先上图 PAGE-1(Basic Challenges) 一、GET 篇 1.2 最基本方法 判断注入类型 http://127.0.0.1/sqli-labs/Less-1/?id=1正确返回 http://127.0.0.1/sqli-labs/Less-1/?id=1'出现报错显示 http:
阅读全文
