WebGoat通关攻略之 SQL Injection (intro)

SQL Injection (intro)

1. What is SQL?

在这里插入图片描述本题练习SQL查询语句,就是写一句SQL获取叫Bob Franco所在的department

SELECT department FROM employees WHERE first_name = 'Bob' AND last_name = 'Franco'

在这里插入图片描述
成功通关!

2. Data Manipulation Language (DML)

在这里插入图片描述
本题练习的是Update 修改数据,将Tobi Barnett的department改为‘Sales

UPDATE employees SET department = 'Sales' WHERE first_name = 'Tobi' AND last_name = 'Barnett'

在这里插入图片描述
成功通关!

3. Data Definition Language (DDL)

在这里插入图片描述
本题练习的是Alter 添加数据,在employees表中添加phone(varchar(20))列

ALTER TABLE employees ADD phone varchar(20)

在这里插入图片描述
成功通关!

4. Data Control Language (DCL)

在这里插入图片描述
本题练习的是数据控制语句,需要授予用户组 “UnauthorizedUser”更改表的权限,在这里,我们可以使用grant授权命令对该用户组进行授权

GRANT ALL PRIVILEGES ON grant_rights TO unauthorized_user;

在这里插入图片描述
成功通关!

5. What is SQL injection?

在这里插入图片描述
练习的是SQL注入
在这里插入图片描述

"SELECT * FROM users WHERE name = 'Smith' OR 1=1;--'";

6. Try It! String SQL injection

在这里插入图片描述
字符串型SQL注入讲解,执行的SQL语句是:

SELECT * FROM use_data WHERE first_name='john' and lastname='Smith or 1=1'

上述SQL语句的意思是:从user_data表中,寻找first_name=‘john’,且last_name='Smith or 1=1’的全部数据,也就是在数据表中,满足条件的一行数据。其中,last_name的内容是由我们控制的。

看到能输入or 1=1,是不是应该有一种使"where"后面出现“xxx or 1=1”的冲动,因为“where xxx or 1=1”这句话,不就跟没得条件一样吗,1=1是恒成立,“xxx or 1=1”恒成立。

那么我们可以这样输入:
在这里插入图片描述
如此填写之后,要执行的SQL语句,就会变成这样:
在这里插入图片描述
红框中的内容都变成了字符串,那么SQL语句就变成了:

SELECT * FROM use_data WHERE first_name=‘XXX’ or ‘1’='1’这种形式,也就是where后面相当于没条件了。提交数据,可以看到:
在这里插入图片描述
成功通关!

7. Try It! Numeric SQL injection

在这里插入图片描述
本题目练习的是数字SQL注入,给SQL语句"SELECT * FROM user_data WHERE login_count = " + Login_Count + " AND userid = " + User_ID;构建一个动态查询,分析SQL语句,以及实验可知,本题的注入点在user_id

原因:本题使用了SQL预编译语句,但是只对Login_Count做了防护,User_Id还是直接带入参数值,因此只能使用user_id作为注入点组成SQL语句。

SELECT * From user_data WHERE Login_Count = 1 and userid= 1 or 1 = 1

在这里插入图片描述
成功通关!

8. Compromising confidentiality with String SQL injection

在这里插入图片描述
本题练习的是使用String SQL注入破坏机密性,从employee表中检索所有雇员数据

Employee Name:Smith
Authentication TAN:3SL99A' OR 1=1;--

在这里插入图片描述
成功通关!

9. Compromising Integrity with Query chaining

在这里插入图片描述
本题练习的是使用查询链接损害完整性,利用查询链(分号;)破坏数据完整性,也就是修改非授权数据。两个框都可以是注入点

Employee Name:Smith
Authentication TAN:3SL99A' OR 1=1;UPDATE employees SET SALARY = 90000 WHERE LAST_NAME = 'Smith';--

在这里插入图片描述
成功通关!

10. Compromising Availability

在这里插入图片描述
本题要利用字符型注入来破坏可用性,也就是让原本被授权的人无法读取或操作某些文件。要求把表access_log删除,因此用DROP TABLE关键字进行操作即可

我们可以先SELECT一下查看表中都有什么:
在这里插入图片描述

3SL99A' OR 1=1;DROP TABLE access_log;--

在这里插入图片描述
成功通关!

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

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

相关文章

安卓毕业设计:基于安卓android微信小程序的超市购物系统

运行环境 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&a…

喜报 | 思码逸 DevInsight 通过DaoCloud兼容性互认证

近日,北京思码逸科技有限公司(简称:思码逸)的 Devlnsight 一站式研发效能度量平台与上海道客网络科技有限公司(简称:DaoCloud)的 DaoCloud Enterprise 云原生操作系统 V5.0,经双方联…

数据结构:lambda表达式

基本概念 语法 // 1. 不需要参数,返回值为 2 () -> 2 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的和 (x, y) -> x y // 4. 接收2个int型整数,返回他们的乘积 (int x, int y) -> x * y // 5. 接受一个 string 对…

配置中心

服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题: 1. 配置文件相对分散。 在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散 在各个微服务中,不好统一配置和管理。 2. 配置文件无…

ACREL DC energy meter Application in Indonesia

安科瑞 华楠 Abstract: This article introduces the application of Acrel DC meters in base station in Indonesia.The device is measuring current,voltage and energy together with hall current sensor. 1.Project Overview This company is located in Indonesia a…

APP分发平台指的是将开发完成的应用程序

APP分发平台指的是将开发完成的应用程序推广和发布到用户可以下载和安装的渠道,如应用商店、第三方分发平台等,以让更多的用户知道和使用该应用程序,从而提升应用的用户覆盖率和市场份额。在APP分发过程中,需要对APP分发进行一系列…

Java WebSocket 获取客户端 IP 地址

在开发 Web 应用程序时,我们通常需要获取客户端的 IP 地址用于日志记录、身份验证、限制访问等操作。当使用 WebSocket 协议时,我们可以使用 Java WebSocket API 来获取客户端的 IP 地址。 本文将介绍如何使用 Java WebSocket API 获取客户端 IP 地址&a…

substring-after用法

substring-after:函数返回一个字符串,该字符串是给定子字符串后给定字符串的其余部分。 #句法 substring-after( haystack ,needle) haystack:要评估的字符串。该字符串的一部分将被返回。 needle:要搜索的子字符串。needle在h…

SqlServer_idea连接问题

问题描述: sqlServer安装之后可以使用navicat进行连接idea使用账户密码进行登录连接失败 问题解决: 先使用sqlServer管理工具进行登录 使用window认证连接修改账户密码 启用该登录名 这时idea还是无法连接,还需要如下配置 打开sqlserve…

获取所有非manager的员工emp_no

个人网站 文章首发于公众号小肖学数据分析 题目来自牛客网 描述 有一个员工表employees简况如下: emp_nobirth_datefirst_namelast_namegenderhire_date100011953-09-02GeorgiFacelloM1986-06-26100021964-06-02BezalelSimmelF1985-11-21100031959-12-03PartoBamfordM1986…

centos安装指定版本docker

centos7安装指定版本的docker 官方文档 https://docs.docker.com/engine/install/centos/ 1、卸载旧版本 $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2、设…

140.【鸿蒙OS开发-01】

鸿蒙开发 (一)、初识鸿蒙1.初识鸿蒙(1).移动通讯技术的发展(2).完整的鸿蒙开发 (二)、鸿蒙系统介绍1.鸿蒙系统的官方定义(1).鸿蒙操作系统概述(2).鸿蒙的生态 2.鸿蒙系统的特点3.鸿蒙和安卓的对比4.鸿蒙开发的发展前景 (三)、鸿蒙开发准备工作1.鸿蒙OS的完整开发流程2.注册并实…

哈希表HashTable

散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。 哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,复杂度O(1) 哈希表本质…

css设置下划线

css中设置下划线的方法 在CSS中可以使用text-decoration属性或border-bottom属性来给字体设置下划线样式。 1、使用text-decoration:underline;设置下划线样式 CSS的text-decoration属性用于指定添加到文本的修饰,其underline属性值可以定义文本下的一条线。 语…

渗透测试--4.捕获和监听数据

捕获和监听数据 一. 捕获和监听数据1.监听捕获数据方法2.kali监听捕获工具介绍arpspoof使用 arpspoof 工具需要满足以下条件:在 Kali Linux 上,arpspoof 工具是通过 dsniff 软件包提供的。arpspoof实战(同一局域网断网实战)arpspoof实战(流量传输的功能)driftnet参数形式…

计算机类编程课学生编写的代码应该如何管理

管理学生编写的代码是一个重要的任务,以下是几种常见的方式来有效地管理学生的代码: 版本控制系统:使用版本控制系统(如Git)来管理学生的代码。每个学生都可以在自己的分支上进行开发,并通过提交请求&#…

BellmanFord算法

算法 Bellman-Ford(G, w, s)for each vertex v 属于 V[G]d[v] 无穷大p[v] NILd[s] 0for i 1 to |V[G]| - 1relax(u, v, w)for each edge(u, v)属于E[G]if d[v] > d[u] w(u, v)return falsereturn truen表示图中的顶点数,m表示边数,时间复杂度为…

Idea2023 Springboot web项目正常启动,页面展示404解决办法

Idea2023 Springboot web项目正常启动,页面展示404解决办法 问题: 项目启动成功,但是访问网页,提示一直提示重定向次数过多,404 解决方法 在IDEA的Run/Debug Configurations窗口下当前的Application模块的Working directory中添…

centos更换yum源

1. 安装wget yum install -y wget 2. 备份配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 3. 下载华为yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo 4. 清…

Induced AI:一个专门为自动化任务而设计的AI原生浏览器RPA平台

​内容来源:xiaohuggg Induced AI:一个专门为自动化任务而设计的AI原生浏览器RPA平台 刚刚获得OpenAI CEOsama的个人投资! 它能够模拟人类浏览网页的行为,自动化地浏览网页,搜集关键信息,并对这些信息进行…