前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql-labs-less1/2|SQL注入

sql-labs-less1/2|SQL注入

作者头像
TenG
发布2020-10-28 17:47:52
4930
发布2020-10-28 17:47:52
举报

前言:

此系类文章为SQL注入讲解,在本地搭建sql-labs环境进行sql注入,我也是刚开始学sql注入,本篇文章为sql-labs前两关注入讲解,后面的会在学过以后陆续发布,写此系类文章是为了以后方便回顾,也希望能够帮到大家,如果有不正确的地方欢迎指正,由于讲解比较详细,操作过程截图比较多,全文比较干,大家谅解、感谢支持。

所需环境:

phpstudy,sql-labs

工具:

hackbar,可以不用这个工具,只是为了方便一点,我用的是免费版的。

关卡:

Less-1、Less-2

正文:

Less-1:

话不多说,直接看图:

在这里插入图片描述
在这里插入图片描述

直接在地址栏url注入,我为了方便使用hackbar,注入id=1测试:

在这里插入图片描述
在这里插入图片描述
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
echo "<hr/>";
echo $sql;
echo "<hr/>";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

	if($row)
	{
  	echo "<font size='5' color= '#99FF00'>";
  	echo 'Your Login name:'. $row['username'];
  	echo "<br>";
  	echo 'Your Password:' .$row['password'];
  	echo "</font>";
  	}
	else 
	{
	echo '<font color= "#FFFF00">';
	print_r(mysql_error());
	echo "</font>";  
	}
}
	else { echo "Please input the ID as parameter with numeric value";}

?>
</font> </div></br></br></br><center>
<img src="../images/Less-1.jpg" /></center>
</body>
</html>

图2为sql-labs less1部分源码,可以看到我在源码sql语句下面在浏览器输出了sql语句,这样看起来会更明白,注入id=1后正确显示,然后测试id=1’ ,注意这里多了一个单引号:

在这里插入图片描述
在这里插入图片描述

根据报错信息和sql语句可以看出是因为单引号没有闭合,我们在后面加入注释–+,如果不加上加号依然不能注释后面的limit语句,+在后端会变成空格,这样连起来就可以起到注释作用:

在这里插入图片描述
在这里插入图片描述

接下来使用order by依次猜测有多少字段(order by作用可以百度),http://localhost/sql-labs/Less-1/?id=1’ order by 1/2/3–+测试到第四个四段就不行了,所以只有三个字段,然后查看字段信息:

在这里插入图片描述
在这里插入图片描述

这里注意,使用union(union为拼接两个不同的操作)以后前面的id的值要为不存在的,因为后面limit语句只显示一个字段,如果前面的id为正确的就会显示第一个结果,可以看到,第一个字段没有显示出来,不可用,可以在2,3任意字段执行sql命令,我们来查看当前数据库信息:

在这里插入图片描述
在这里插入图片描述

成功得到数据库security,接下来就可以查看数据库里面的表信息,这里要使用group_concat函数连接字符串,因为查询出来的是多个字符串,而浏览器只显示一个字段,所以要拼接在一起:

在这里插入图片描述
在这里插入图片描述

这里面的table_name、table_schema都是数据库的信息表information_schema里面的,具体信息请自行百度,可以看到已经查询出来了security数据库里面的表,flag表是以前大佬帮我搭环境的时候给我创建的,查询到flag里面的信息即可,当然大家查询其他信息方法都是一样的,接下来查看flag表里面的字段名:

在这里插入图片描述
在这里插入图片描述

可以看到flag表里面的字段名也是flag,这里用到的查询语句同上一步都为information_schema里面的信息,现在知道表名字段名以后直接select 字段名 from 表名就可以了:

在这里插入图片描述
在这里插入图片描述

成功得到所有信息,至此sql注入成功。

Less-2:

第二关和第一关几乎一样,只是id那里没有了单引号,大家看源码:

在这里插入图片描述
在这里插入图片描述

所以这一关不用在添加单引号,所有命令都为第一管去掉单引号即可,再次感谢支持!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
    • 所需环境:
      • 工具:
        • 关卡:
        • 正文:
          • Less-1:
            • Less-2:
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档