【渗透测试-web安全】命令注入

什么是命令

DOS命令、Shell命令等执行命令,可以对系统进行很多敏感性的操作

攻击过程

黑客构造命令–>服务器程序解析–>对命令进行拼接–>web端执行执行对应多余的拼接命令–>执行的命令作用于服务器

DOS命令

使用&进行命令拼接、ipconfig查询ip地址信息、net user 查看当前用户、dir查看当前目录、find “hello” ./test.txt执行查找操作
|作为管道命令,前面命令的输出时后面命令的输入

命令注入的成立条件

有调用可执行系统命令需求的系统
函数或函数的参数可控的系统
命令能够实现拼接的系统(使用系统命令白名单就能打破这一条件)

WEB系统中哪些函数能够执行系统命令

基本命令

语法

返回值

函数功能

system()

string system(string command, int [return_var]);

成功:输出的最后一行,失败:FALSE

执行命令,并且显示输出

exec()

string exec(string command, string [array], int [return_var]);

命令执行结果的最后一行内容

执行 command 指定的命令

shell_exec()

 string shell_exec ( string $cmd ) ;

命令执行的输出,出错 NULL

通过 shell 环境执行命令

eval()

mixed eval ( string $code )

返回 NULL,执行错误返回 FALSE

把 code 作为PHP代码执行

popen()

resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd = NULL [, array $env = NULL [, array $other_options = NULL ]]] )

返回表示进程的资源类型,如果失败,返回 FALSE。

类似 popen() 函数,提供更加强大的控制程序执行的能力

passthru()

void passthru ( string $command [, int &$return_var ] )

没有返回值

执行外部程序并显示原始输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值