SQL注入大汇总(逐步细化)

友情提示:查payload没问题,不适合0基础学习。虽然有目录但因为想起来一点补一点还是挺乱的,建议直接ctrl+F

基本流程思路

一、判断注入点
  • id = 1 加特殊符号与前边符号闭合,尾部加 --+ 或 # 注释掉后面的特殊符号,页面出错 这是参数为字符型才需要引号闭合,如果人家本来就是数字就不用加引号了
    • 单引号:id = 1’
    • 双引号:id = 1"
    • 以上两种还多一个小括号:id = 1’) 或 id = 1")
    • 如果这些符号被过滤了,如果是以GET方式提交的参数可尝试替换为url编码
  • id = 1 and 1 = 1 正常,id = 1 and 1 = 2 出错
    • 以上1=1,1=2仅仅是为了表达true和false,只要能体现出真假逻辑的世子都可替换,如-1 = -1 或 2 - 1 = 1
?id=1' and 1 = 1 --+
?id=1' and 1 = 2 --+

有的时候就是需要闭合而不是一味地注释

  • 单引号过滤绕过
    源码中 if(preg_match(’/.* ‘. */’,$str)!== 0)exit();
    $str为我们输入的字符串,只要我们输入的字符串中有” ’ “出现,就会匹配整个字符串,使我们所有操作都无效了,这时候可以加” \ “将username=’ '的第二个单引号转义,使第一个单引号与password那里的第一个单引号配对,再将最后一个单引号注释掉就可以了。
    绕过单引号过滤
二、判断字段数
  • order by 语句用于根据指定的列(可以为列名或列数)对结果集进行排序。
    • 在页面正常显示的情况下,构造order by ii = 1,2,3,4,…,*)直至页面出错,则能使正常显示的最大i即为当前页面所使用的表的列数也就是所谓的字段数
      以 3 为例
?id=1 and 1 = 1 order by 3 --+
三、判断回显点
  • 已判断出字段数 i
    • 在出错页(and 1 = 2之后)上使用联合查询,union select 1,2,3,…,i

假设 i = 3

?id=1 and 1 = 2 union select 1,2,3 --+

若现在能在页面上看到3,那么语句中3的位置就为回显点了,看到1或2同理

四、查询相关内容

假设已知回显点为3的位置,那么用查询语句替换数字3就ok了

?id = 1' and 1 = 2 union select 1,2,(这里放各种查询的语句) --+
如果回显点不在最后,比如在2的位置,那么替换为(select balabalabala)。
意思就是得多加一个select,叫做子查询。

注入类型及构造语句

一、显错注入

条件:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值