ctfshow ThinkPHP篇573

CTF之think_java反序列化完整案例 【代码】CTF之think_java反序列化完整案例。 阅读详情

web573

thinkphp 3.2.3sql注入漏洞
源代码

class IndexController extends Controller {
    public function index(){
    $a=M('xxx');  //表名
    $id=I('GET.id');
    $b=$a->find($id);
    var_dump($b);
    }
}

来调试一下看为什么普通的注入不行。本地sql表内数据如下。
在这里插入图片描述
传入?id=1'
首先在I函数里面有个过滤,调用think_filter函数
在这里插入图片描述
在这里插入图片描述
但是没什么影响,就算匹配到了最多加个空格。
跟进find函数,在find函数中_parseOptions对$options进行了处理,继续跟进
在这里插入图片描述

_parseType对$options进行了处理,跟进
在这里插入图片描述
可以看到如果我们的数据库中的id是int型会进入intval函数,会直接去掉其他字符达到过滤的效果,如果id的类型是char则会接着往下走。
在这里插入图片描述
执行完_parseType后回到find中的select
在这里插入图片描述
跟进buildSelectSql
在这里插入图片描述
跟进parseSql
在这里插入图片描述

我们知道我们的id的值在$options[‘where’]中,跟进parseWhere
在这里插入图片描述
最终是进到了parseValue
在这里插入图片描述
在parseValue中中我们看到了具体的转义函数
在这里插入图片描述
在这里插入图片描述
也就是通过addslashes()函数进行转义

addslashes() 函数会在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL

那么假设我们传入的内容是数组呢?id[where]=1'
当我们传入的是数组时,不会进入下面的if中,所以$options['where']="1'",否则的话就是
$options['where']['id']="1'"

在这里插入图片描述
按照刚才的方式往下走到_parseOptions,如果我们的$options['where']是数组的话会进入_parseType,我们前面说到,现在的$options['where']="1'"是个字符串,也就不会进入这个if,所以当目标数据库中的id字段是int型时可以绕过intval过滤。
在这里插入图片描述
接着往后走,直接在parsewhere中进入if$whereStr = $where; 最终返回的内容是WHERE 1'在这里插入图片描述
在这里插入图片描述
最终执行的sql语句是select * from xxx where 1' limit 1 这样我们的单引号就保留了下来。
在这里插入图片描述
剩下的就很简单了。
payload:?id[where]=id=0 union select 1,flag4s,3,4 from flags
前面的跑表名和列名就不具体写了。

CTF——Thinkphp5远程命令执行漏洞利用 [BJDCTF 2nd]old-hack(5.0.23) 进入之后: 打开页面,页面提示powered by Thinkphp。说明可能和thinkphp框架有关。也确实如此,这里用到了thinkphp5的远程命令执行漏洞。 Thinkphp5远程命令执行漏洞 漏洞描述:由于thinkphp对框架中的核心Requests类的method方法提供了表单请求伪造,该功能利用 $_POST['_meth... 阅读详情

相关推荐

FreeRTOS项目:智能手表(1);

从 “最底层启动”→“系统基础配置”→“硬件驱动”→“中间件能力封装”→“上层业务功能”,分层递进、从基础到应用,就能逐步把整个项目的逻辑串联起来~

weixin_46847454的博客 1446

ctfshow thinkphp专题

前言 跟进一步增强php的代码审计能力,了解tp框架 从最基础的开始学习,目的不是为了一把梭,而是要明白它的原理和设计思路,为我们以后自主调试挖洞打下基础 web569——路由 本题使用的版本为3.2.3 ThinkPHP3.2.3完全开发手册-架构-URL模式 入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作: http://serverName/index.php/模块/控制器/操作 这是3.2版本的标准URL格式。 payload

qq_50589021的博客 1108

Gamma变换算法之Matlab&FPGA实现

Gamma映射原理 什么是Gamma曲线 人眼的感光与光强并不是呈线性关系的,而是呈非线性关系(指数型关系,如下图左-曲线。在低照度下,人眼更容易分辨出亮度的变化,随着照度的增加,人眼不易分辨出亮度的变化。而图像传感器与输入光强呈线性关系(如下图左-直线)。从图中可见,当传感器感光在20%左右时,人眼感光响应达到了50%,人眼对低照度的变化更为敏感。从下图右侧可见,Reference Tone为人眼感光50%的亮度,而传感器在感光50%时则相对暗的多(见Select,近似中性灰)。这种将原始图像通过映射操

CrazyBingo的博客 7405

ctfshow- thinkphp专题笔记一

web569 @[TOC]web569

Yasso的博客 1160

c++ mysql_init 返回无效指针_C++操作MYSQL遇到的一些问题

首先 我使用的是 vcpkg上面是我装的一些库《大大安利vcpkg 安装时一定要使用powershell进行编译装上vcpkg后装ligmariadb这个库,这个对Mysql操作还是挺方便的,然后说一下 在装库时碰到的一些问题1.网络问题1.参考了一下 github上的答案 将下载失败的url拷下来 自己下 然后再重新开始安装《vcpkg在安装时每一个需要下载的 都会提供url-仔细找,2.这个问...

weixin_32176627的博客 680

Unity游戏开发实战:用柏林噪声打造3D随机地形(附完整C#代码)

本文详细介绍了如何在Unity游戏开发中使用柏林噪声算法生成3D随机地形,包含完整的C#代码实现。从基础柏林噪声原理到高级参数控制,再到性能优化和常见问题解决,帮助开发者掌握程序化地形生成技术,打造丰富多变的游戏世界。

weixin_29281941的博客 99

【Web】Ctfshow Thinkphp3.2.3代码审计(3)

(这里我认为数据库id字段类型为varchar,这样数组条件判断进_parseType()就不会受到数字型或布尔型强制类型转化干扰)发现会进到is_string的判断里,让$options['where']=array("_string"=>"1")之后传入到find(),和web573一样也是以数组形式传参,只不过传入的参数也是数组,我们跟一下代码。键'_string'的首字符为'_',跟进parseThinkWhere()这题与web573的区别在于进find()前先进了where()处理。

uuzeray的博客 542

ROS2中间件选型指南:FastDDS与CycloneDDS零拷贝机制对比与实战

在机器人开发中,通信中间件是连接分布式节点的核心纽带,其性能直接影响系统的实时性与可靠性。DDS作为ROS2默认的通信标准,通过发布订阅模型和QoS策略,为高频大带宽场景提供了灵活的数据分发能力。并行计算与高性能传输的需求,推动了零拷贝技术的演进——从传统序列化到共享内存乃至指针传递,旨在减少数据复制开销、降低延迟。在激光雷达点云、相机图像等场景下,中间件的选型尤为关键。FastDDS凭借与ROS2的深度集成和丰富文档成为入门首选,而CycloneDDS在低延迟和资源占用上表现更优,借助iceoryx实现了

weixin_28726391的博客 251

CTFSHOW ThinkPHP

在ThinkPHP中,Pathinfo 是一种用于解析 URL 的模式,它允许通过路径参数来指定模块、控制器和方法。根据题目描述,flag 存在于 Admin 模块的 Login 控制器的 ctfshowLogin 方法中,因此需要通过 URL 访问该方法。在 ThinkPHP 的 Pathinfo 模式下,URL 的结构通常为:/index.php/模块/控制器/方法。

2301_80038080的博客 532

基于STM32的DS1302电子时钟电路与程序设计

这个示例代码中,我们使用DS1302_GetTime函数从DS1302芯片获取当前时间,并使用DS1302_GetDate函数获取当前日期。在本文中,我们将介绍如何使用STM32微控制器和DS1302实时时钟芯片来构建一个基于STM32的DS1302电子时钟,并提供相应的程序设计。请注意,以上示例代码仅供参考,具体的实现细节可能会根据使用的开发环境和硬件组件有所差异。在实际应用中,你可能需要根据自己的需求进行适当的调整和修改。为了完整实现电子时钟的功能,你还可以添加其他功能,例如闹钟设置、温度显示等。

UbiSqlserver的博客 1324

【CT/电镜 重建教程 1.1】层析成像的精确实空间迭代重建算法(RESIRE)

在此,我们报告了RESIRE算法的发展用于准确的断层重建。与实空间迭代算法相比,RESIRE使用傅里叶切片定理或Radon变换作为正向投影,使用线性变换作为反向投影,两者都具有高精度。与EST和GENFIRE相比,RESIRE是一种实空间迭代算法,可以在并行计算中实现快速运行时间。

2401_87064292的博客 1062

ctfshow-thinkphp篇

基础知识 关于thinkphp需要知道的基本知识 https://www.kancloud.cn/manual/thinkphp/1696 demo1 修改 D:\phpStudy\PHPTutorial\WWW\thinkphp-3.2\thinkphp-3.2\Application\Home\Controller\IndexController.class.php <?php namespace Home\Controller; use Think\Controller; class Inde

giaogiao123的博客 1235

YOLOv11 损失函数进阶:Varifocal Loss 让正负样本精度双升

创建self.alpha = alpha # 正样本权重系数self.gamma = gamma # 聚焦系数self.lambda_reg = lambda_reg # 回归损失权重# 分类损失:Varifocal Classification Loss# 正样本权重:基于预测置信度# 计算 BCE 损失并加权cls_loss = cls_loss.sum() / (cls_true.sum() + 1e-6) # 按正样本数归一化。

m0_71589036的博客 441

CTFshow——thinkphp专题

570——闭包路由 关注这段代码:这是闭包路由的用法,官方:手册闭包支持 我们用phpinfo()函数测试一下:是可以的 /index.php/ctfshow/phpinfo/1 注意因为eval是一个语言结构而不是函数,所以这里是不能被call_user_func调用的,而assert是一个函数。因此我想到了assert(system("ls"));,但在尝试ls /时却不行了,很迷。 然后我想着参数转移一下。然后下意识构造出这样: /index.php/ctfshow/assert/$_POST[1

D.MIND 的博客 2078

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ctfshow ThinkPHP篇—3.2.3(569-578)

文章目录web569相关内容题解web570web571web572web573web574web575web576web577web578 web569 相关内容 参考thinkphp手册 为了访问下图中的index方法并输出hello 123我们可以通过下面四种模式。 PATHINFO模式 http://localhost/index.php/Home/Index/index/name/123/ 普通模式 http://localhost/index.php?m=Home&c=Index&a

羽的博客 2883

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ctfshow thinkPHP专题

569-Thinkphp3.23的url访问规则 https://www.kancloud.cn/manual/thinkphp/1697 URL模式 入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作: http://serverName/index.php/模块/控制器/操作 这是3.2版本的标准URL格式。 可以通过设置模块绑定或者域名部署等方式简化URL地址中的模块及控制器名称。 所以 访问 url/index.php/Admin

qq_45655564的博客 458

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ctfshow thinkphp 3.2.3

web569 相关内容 参考thinkphp手册 路由方式 http://serverName/index.php/模块/控制器/操作 此外就是默认是不区分大小写的,由'URL_CASE_INSENSITIVE' => true,这个配置决定。 URL模式的话,默认是PATHINFO模式,即本题考察的模式。 直接访问即可: /index.php/admin/login/ctfshowlogin web 570 根据题目提示 就直接看官方文档 路由一块 看到了闭包函数 .

blowed的博客 399

【Web】Ctfshow Thinkphp3.2.3代码审计(2)

这段代码的作用是根据数据库字段类型的定义,对数据进行相应的类型转换,以确保数据的类型与数据库字段类型匹配,从而提高数据的准确性和一致性。比如数据库中的id是int型会进入intval函数,你输入1' union select * # 转换后就成了1。因为$options['where']是一个数组,所以会从if进入_parseType。其实很明显就是让$options['where']不为数组就可以了。所以要用一些路子,不进入到下面的if判断里。因为1是number,所以会让。这是我们不愿意看到的。

uuzeray的博客 746

【Web】Ctfshow Thinkphp3.2.3代码审计(4)

这里是从cookie里读user键对应的值进行反序列化,并将实例化对象与传入的id比较,如果id属性与传入的id相等,则show方法调用底层的eval执行实例化对象的username属性。因此,确保在进行反序列化之前,你需要确保序列化的类定义存在,并且能够被自动加载或手动引入。这里令$name=_content,$from=写的马即可让$_content非空,从而eval()执行php代码。这次where()里直接传了一个数组,省得走if将字符串的值再改为_string的数组了。

uuzeray的博客 1628

ctf攻防世界 WEB题:php_rce

ThinkPHP是一个基于PHP语言的开源Web应用框架,它提供了一系列的工具和组件,可以帮助开发人员更快速、更高效地构建Web应用程序。ThinkPHP框架具有简单易用、高效稳定、安全可靠等特点,被广泛应用于各种Web应用程序的开发中。对于thinkphp框架Github上有一个专用的漏洞验证工具:https://github.com/zangcc/Aazhen-v3.1。进入靶场后会看到以下内容,非常直观的说明了自己是thinkphp框架。此工具已经给一个可用的url案例,我们只需要更改就可以了。

qq_30889301的博客 1239

【Web】Ctfshow Thinkphp5 非强制路由RCE漏洞

前面审了一些tp3的sql注入,终于到tp5了,要说tp5那最经典的还得是rce下面介绍非强制路由RCE漏洞。

uuzeray的博客 1519

ctfshow ThinkPHP专题 1

PATHINFO模式是系统的默认URL模式,提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境。REWRITE模式是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。m参数表示模块,c参数表示控制器,a参数表示操作(当然这些参数都是可以配置的),后面的表示其他GET参数。,ThinkPHP支持的URL模式有四种普通模式、PATHINFO、REWRITE和兼容模式。...

qq_61768489的博客 991

【Web】CTFSHOW-ThinkPHP5-6反序列化刷题记录(全)

纯记录exp,链子不作赘述。

uuzeray的博客 1227

web flow

http://www.vertexlogic.com/processOnline/process/processOnline.html http://flowchart.com/ViewDemo http://www.gliffy.com/ http://www.edrawsoft.com/drawing-online.php // need to check ...

lgj573 175
上一篇: ctfshow baby杯web
下一篇: ctfshow ThinkPHP篇575
yu22x
博客等级 码龄7年 3739粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yu22x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值