在前面的 hack 语句中:
1 | UPDATE table SET views = '1' WHERE id = -2441 OR (ORD(MID(( SELECT IFNULL( CAST (FirstName AS CHAR ),0x20) FROM nowamagic.`tb2` ORDER BY id LIMIT 1,1),2,1))>112)# |
我们注意到它用了 MySQL 自带的函数 MID,那么它的作用是什么呢?
MID()函数
SQL MID() 函数用于得到一个字符串的一部分。这个函数被MySQL支持,但不被MS SQL Server和Oracle支持。在SQL Server, Oracle 数据库中,我们可以使用 SQL SUBSTRING函数或者 SQL SUBSTR函数作为替代。
MID() 函数语法为:
1 | SELECT MID(ColumnName, Start [, Length]) |
注:字符串从1开始,而非0,Length是可选项,如果没有提供,MID()函数将返回余下的字符串。
举个简单的例子吧:
1 | mysql> SELECT MID( 'NowaMagic' , 5, 5); |
3 | | MID( 'NowaMagic' , 5, 5) | |
就这么简单的一个函数,讲完了~