无列名注入

无列名注入

十一月 23, 2021

替换列名

在information_schema被ban的情况下使用无列名注入

表名可以用

sys.schema_auto_increment_columns()

sys.schema_table_statistics_with_buffer

在sql语句中可以用select和union组合可以替换列名

select 1,2,3 union select*from table

table中的列名会被替换成1,2,3

select `1`from(select1,2,3 union select *from table)a

这样就可查出table表第一列的内容,实际上替换列名只是创建了一张临时表,所以在后面加了a给这个临时表命名

字符串比较

在union和报错都被过滤的情况下,用字符串比较进行盲注

在sql中字符串比较会取出要对比的第一个字符,先进行对比,如错误就直接返回false,正确才会进行下一位的比较

基本的playload

select 1,’a’ >select*from table

join报错

输出flag时有其他字符干扰,且输出长度受限

在sql注入的语句的末尾添加regexp函数进行对输出字符串的正则匹配,基本用【^f】匹配以f开头的字符

用right,left函数让字符串从左右输出

用substr输出任意位置任意长度的字符

用reverse倒叙输出字符

配合python的切片-1,来正序

1
2
3
y=''
y=y[::-1]
print(y)