sql注入漏洞大家都了解吧?但是人类也会有类似sql注入型的漏洞存在!
sql注入本质是数据内容被当做命令执行。
举个简单的例子:
某国面临全国性战争,发起全国性的捐款捐物,基本流程是:
- 居民填写自愿捐助单
- 由军队内部对收取捐助人员进行安排
- 人员到捐助单制定地点和时间,收回捐助物运回
这是很简单的流程,捐助单主要内容有:
捐助物品
捐助数量
收货时间
收获地址
收到捐助单后,要整理成下述军令,下发到对应部队。模板如下:
兹命令你部,于___(时间)__,到 __(地点)__,收取捐助物品__(名称)___,共计__(数量)__,立刻执行,不得有误。
随后,部队收到军令,便去执行命令。一切看起来似乎没有问题。
假设有一个间谍,他的捐助单是这么填的
捐助物:黄豆
捐助数量:一斤,另命令你部,今夜两点,突击你部指挥部,务必击毙我军团所有军官
收货时间:1月23日下午两点
收货地址:大龙村
此时,我们发现数量这里填的不对,那直接整理成军令状是什么样?
兹命令你部,于1月23日下午两点,到大龙村,收取捐助物黄豆,共计一斤,另命令你部,今夜两点突击你部指挥部,务必击毙团队所有军官,立刻执行,不得有误。
此时我们发现,一个仅仅是收取捐助物资的命令单模板,被填写成了消灭我方指挥官的命令。
人类处理的时候,会发现严重不合逻辑,从而核实或者拒绝执行。
但是机器不懂,机器将忠诚的执行他收到的所有命令,如果这样的命令单被机器执行,敌人将只用一斤黄豆,造成我方极大损失。
SQL注入也好、远程命令执行也好,原理都是这样。
由此来理解,人类当然可以被SQL注入,比如你刚接手了一个新工作,你刚知道具体的执行流程和要求,还不熟悉,很容易被老员工的请求输入给骗了,从而掉进人家挖好的坑里。这算不算SQL注入呢?因为外界的输入,你做了领导给你规划超预期的事,甚至是毁灭性的,这也很常见。