最近公司运行在阿里云上的一个项目出现报警,说有sql整形注入漏洞。然后老板叫我去调查解决,一开始我是...算了干活要紧。
去阿里云上看报警,长这样
红色的大字写的很清楚,恩,不知道咋办就先点进去看看
这个是已经修复好的样子,在这之前“文件已修改”的位置是“漏洞待修复”之类的字样,也是红的
ok,确实有问题,那就去看代码
smarty... 这个框架是个人感觉最不好玩的了
而且代码里也看不出什么问题,那么怎么办呢?突然我想起来阿里云web漏洞列表里有一个文件的图标,上面赫然写着
我勒个去,高大上啊
点击查看才发现里面给详细描述了怎么去修复代码,这时我猜恍然大悟
原来sql的条件传值没有定义类型,这么大的漏洞当时是谁干的...
这个原理我倒是明白,就是说当你没有对传入的参数进行类型转换的话(int就只能接收int,string要trim),很有可能就被人利用你的这个参数漏洞写入一个直接就能通过的sql
举个栗子:你原来的sql是 “SELECT * FROM USERS WHERE id = ”.$id 你对$id没有处理,那别人就直