命令执行漏洞

打印 上一主题 下一主题

主题 1712|帖子 1712|积分 5146

命令执行漏洞是指,当用户可以控制命令执行函数中的参数时,攻击者通过在应用程序的输入字段或参数中注入恶意操纵体系命令与正常操纵命令拼接,使用应用程序调用体系命令的功能,使体系执行攻击者注入的命令。一般是因为应用程序在调用体系命令时,没有对用户输入进行有效的过滤和转义,导致攻击者可以通过构造特殊的输入来执行额外的命令。
漏洞区别命令执行漏洞主要是在操纵体系层面执行命令,使用应用程序调用体系命令的功能,通过在输入中拼接额外的命令来执行,如ls、rm、cat等,来使用体系的功能进行攻击代码执行漏洞偏重于在应用程序的代码层面,使用应用程序中存在的不安全函数或方法,如eval()、exec()等,这些代码通常是应用程序所使用的编程语言代码,如 PHP、Python、Java 等。攻击者通过注入代码来改变应用程序的正常执行流程,实现本身的攻击目的拼接符号:

1、分号(;)     system(cmd1;cmd2)
cmd1首先运行,不管cmd1运行成功与否,cmd2都会运行。
2、and(&&)  system(cmd1&&cmd2)
只有在前一个命令成功竣事后,下一个命令才会运行。
3、或(||)         system(cmd1||cmd2)
只有在前一个命令出现错误时,才运行下一个命令。
4、管道符(|)   system(cmd1|cmd2)
前一个命令的结果作为后一个命令的参数
例题:


WP:

很明显,我们可以通过$GET['ip']这个东西控制命令执行函数中的参数,拼接上恶意体系命令。ping用于测试网络连接,-c 4表示发送4个ICMP回显请求包,127.0.0.1表示ping命令的目的IP地址,所以ping -c 4 127.0.0.1为一个正常的完整的命令。想要找到flag,先查看当前目录内容,用ls命令,所以ip=127.0.0.1;ls -l。

不出意外的话,flag就在15789193225694.php,换成cat命令。

查看网页源代码,得到flag。

进阶:

1、过滤空格:(cat flag.php)


①cat$IFS$9flag. php
②cat${IFS}flag.php
③cal

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表