命令执行

命令行执行漏洞介绍

应用程序钟又是需要调用一些执行系统命令的函数,如Python的os模块提供了很多函数来执行系统命令。

当黑客能够控制这些函数时,就可以将恶意的系统命令拼接到正常的命令钟,从而造成命令行攻击。

命令行攻击

如图,页面提供了一个输入IP地址后程序执行ping命令,然后将ping命令返回到页面上,

当输入127.0.0.1&&cat /ect/passwd则获取到了系统中的passwd文件的内容,这里利用了

Linux利用管道符"&&"连接多行命令来执行了cat /ect/passwd命令,从而得到了passwd文件内容

图-1

常用管道符

Windows

| :直接执行后面语句 例如:ping 127.0.0.1 | who am i

|| :如果前面执行的语句执行出错,则执行后面的语句,前面只能为假,例如:ping 2  ||  whoami

&:如果前面的语句为假则执行后面的语句,前面可真可假,后面语句都会执行。例如:ping 127.0.0.1& whoami

&&:如果前面语句为假则直接出错,也不执行后面的语句,前面的语句只能为真。例如ping 127.0.0.1&& whoami

Linux

;:执行完前面语句再执行后面的。例如:ping 127.0.0.1;whoami

| :显示后面语句的执行结果。

||:当前面语句出错是执行后面的语句

&:如果前面前面的语句为假则执行后面的语句,前面的语句可真可假

&&:如果前面的语句为假则直接出错,也不执行后面的语句。

命令行漏洞代码分析

命令行执行漏洞代码分析

多少因为直接拼接入参给执行函数,未对参数进行过滤处理

命令行执行漏洞修复建议

1)尽量不要使用命令执行函数

2)客户提交的变量要做好过滤与检测

3)在使用动态函数之前,确保使用的函数是指定的函数之一

4)不能完全控制的危险函数最后不要使用

你可能感兴趣的:(命令执行)