命令注入
low级别
分析源码发现对输入的数据没有做任何处理只是看你点击提交没有和判断你输入的是window还是unix的ping命令所以可以直接用通道符|,||,&,&&来附加命令获取信息 I只获取命令2的返回结果
medium级别
分析页面源码发现对&&和;符号做了黑名单,这里需要注意的是”&&”与” &”的区别:
Command 1&&Command 2
先执行Command 1,执行成功后执行Command 2,否则不执行Command 2
Command 1&Command 2
先执行Command 1,不管是否成功,都会执行Command 2
那直接用I或者&符号就行了
high级别
分析源码发现所有的通道符号都加黑名单了,但是发现了|符号多了个空格,这是一个疏忽,但是却是一个突破点
总结:
漏洞原理分析:没有对用户输入的字符做好黑名单过滤,白名单过滤
方法:通过通道符,|和&就可以执行许多恶意命令
符做好黑名单过滤,白名单过滤
方法:通过通道符,|和&就可以执行许多恶意命令
防御方法:采用白名单的做法,或使用正则表达式进行过滤,对敏感字符进转义。