不必当真,重要的是创意
今天看到了一张图,挺有意思的。
这是一个有技术含量的车牌遮挡。我们先不说其是不是能奏效,不过,这个创意相当的NB啊。当你驾车通过某些路口时,被摄像头捕捉到你的车牌,通过 OCR变成文本,然后插入数据库,于是,有趣的SQL注入就发生了。
首先,假设这个车主知道交警部门的数据库中存放车牌号的数据库名和相关表结构,这个数据库的名称就是TABLICE
简单分析一下这个过程:
1.摄像头拍照 2.OCR模块从照片中解析车牌号3.数据库管理模块将车牌号插入数据库 那么,这个将车牌号插入数据表的语句应该是这样的:
INSERT INTO TABLICE VALUES ( 'id' );
上面表达式中的'id'是个变量,由OCR模块解析出的车牌号及一些相关域组成
比如:如果车牌号是“渝A 1234”,那么这条SQL语句应该是:
INSERT into TABLICE values ( '渝A 1234' ,X , X);
X,X是TABLICE数据表中的另外两个字段,具体含义不详
OK,回到这个例子,现在OCR解析出的车牌号是
ZU 0666‘,0,0); DROP DATABASE TABLICE;
于是,这条SQL语句就变成了:
INSERT into TABLICE values ( 'ZU 0666‘,0,0); DROP DATABASE TABLICE; -- );
把上面那行语句拆解,可以发现其中有两条完整的SQL语句:
INSERT into TABLICE values ( 'ZU 0666‘,0,0); DROP DATABASE TABLICE;
前面那条语句插入了车牌号'ZU 0666‘ 及相关信息(如果'ZU 0666‘是一个车牌号的话)
后面那条语句尼玛直接把TABLICE数据库给删了,看你们查谁去
