命令注入:
* 但随着IT技术的飞速发展,“计算机”的形态多种多样(大型服务器、PC机、智能终端等等,以及运行其上的形形色色的应用),不同角色的人在计算机系统中所扮演的角色各异(开发者、维护者、高级用户、普通用户、管理者等等)。
* 这些场景中,数据甚至指令通常都无法事先固化,需要在运行的过程中动态输入。如果这两者混杂在一块,没有经过良好的组织,就会被黑客加以利用,成为一种典型的攻击方式——命令注入。
* 命令注入攻击的常见模式为:仅仅需要输入数据的场合,**却伴随着数据同时输入了恶意代码**,而装载数据的系统对此并未设计良好的过滤过程,导致恶意代码也一并执行,最终**导致信息泄露或者正常数据的破坏**。
简单版:
1.进行代码审计:
* 由图可知没有进行任何的参数校验;
* 因此可以输入一些代码,里获取我们想要的数据:
2.进行测试:
- 这里我输入了127.0.0.1&&pwd直接暴露出当前路径;
中等版:
1.进行代码审计:
- 在这里发现系统对&&和;进行了空格过滤;但是仍有其他命令未进行过滤;(比如& ||);
2.进行测试:
在这里用127.0.0.1&&pwd是不可行的(没有反应)将其改为127.0.0.1&pwd出现上面的结果;
注意的是”&&”与” &”的区别:
Command 1&&Command 2
先执行Command 1,执行成功后执行Command 2,否则不执行Command 2
Command 1&Command 2
先执行Command 1,不管是否成功,都会执行Command 2
高等版:
1.代码审计:
- 黑名单数量增多,但是,有一个细节
|后面多了一个空格,这就是等于没有过滤|呗!!!(注意是英文的|)
* 输入127.0.0.1|pwd,直接暴露路径
不可能版:
1.代码审计:
这段代码的意思是将ip分为四个部分,每一部分只允许数字。。。。