sql注入学习

本文介绍了MySQL中的重要系统库如information_schema,弱数据类型的特性,以及group_concat和concat函数的区别。同时讲解了SQL注入中的报错注入技巧,利用updatexml和extractxml函数,以及XPath在XML操作中的作用。还提到了URL编码和注释的使用注意事项。
摘要由CSDN通过智能技术生成

1.基础知识

四个系统库以及里面重要的信息,最重要的information_schema这个系统库

这里面的每一个表不仅存放了与自己相关的,还存放了上级所属的信息。

注意mysql的弱数据类型,如果数据是数值型的,那么你在查询的时候即使加上了引号也不会报错,因为它会自动进行类型的转换

关于弱数据类型的详细点可以看这个 关于 MySQL 数据库空字符及弱类型的探讨 - 腾讯云开发者社区-腾讯云 (tencent.com)

这个查询的是admin’      记住即可 不是admin

注意这里只能这样写,顺序不能颠倒,把后面的内容放在引号内部,表示一个字段,字段的值是语句的查询结果。

group_concat这个函数,可以将指定字段的查询结果放在一行显示,不同行之间用逗号分隔。它显示一行的逻辑是把查询到的数据从上到下一行一行的拼接起来

concat的查询结果只能是一行,如果不是一行则会报语法错误,通过使用limit限制输出一行即可,比如 limit 0,1,逐行爆破;而且只能查询一个字段

group_concat和concat的区别在于,前者会把指定字段的查询结果拼接到一行,然后再用逗号分隔,而后者会拼接起来但是不同行之间不会拼接起来。

所谓的数值型还是字符型指的是传入时的处理逻辑,有没有加引号啦,而实际上在实际查询时所查询字段的值是一定的,比如select * from user where id=x,这里id的类型是固定的,不同的就是x的形式在变化,但是最终x的值都需要转换为x的类型才会进行查询

报错注入:
关键的函数 updatexml(修改xml文档的内容) 和extractxml(提取xml的内容)

关键的参数是xpath,就是xml文档的路径,xml的格式错误的话就会报错

我们利用的原理就是让xpath的格式错误,从而报错,把要执行的sql语句用括号括起来放在第二个参数的位置,因为带括号所以会优先执行我们的sql语句,之后会检测语法错误,从而才报错信息中得到我们需要的信息。

在使用报错注入时,我们通常还要使用concat拼接一个字符在想要查询的数据的首尾,这样可以帮助我们判断数据内容是否完整,字符一般使用16进制编码的0x7e表示波浪号,‘~',使用字符也可以,不过需要加上一对引号,可能会闭合前面的引号产生冲突,所以一般还是用16进制编码表示。

注释是:--      减减空格      和  #

如果是在url当中提交,可以使用--+,加号是空格的一种url编码,在url'当中会自动识别为空格,

但是如果不是在url当中,加号就不能被解析为空格,所以一般用#,或者-- ,直接减减空格可能导致空格被吞,所以可以在空格后面再加上其他字符比如:-- q

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值