今天我们看一幅数据库注入式攻击的漫画。记得上大三那会儿,我们的老师还让我们用一条语句直接在学校官网,直接拿到学校所有录取的新生详细信息,我当时试了试,很多学校的官网都可以。不过方正教务系统攻击不进去,输入完了直接告诉我IP已经被记录。好了,废话不多说,看漫画。
看漫画的上半部分。一个小男孩跑去给医生打了一针后开开心心的回去了。我称之为医生对小男孩进行了一次操作。
回家后,小男孩发现。我的桌子(table 又指表,传说中的老外的一语双关)没拉。为什么回去发现我的表没了呢?
仔细想想,医生打的那针可能不是普通的针,居然是一条SQL语句。此处暗讽,在数据库操作中,我们直接将用户输入的数据进行拼装SQL语句,带来的安全性问题。举个列子:我们需要更新张三的分数。我们等待用户输入如果程序没有实施类型强制,就会发生这种形式的注入攻击,例如:UPDATE subject SET score= ? where name = 'zhang3'如果成绩被恶意伪造为100; DROP TABLE users #此时SQL语句就会发生变化UPDATE subject SET score= 100; DROP TABLE users; # where name = 'zhang3'它会将“users”表从数据库中删除