深入分析.NET应用程序SQL注入【危害】
思考:
那么我们来想想既然我们可以修改掉我们SQL语句那么我们是不是可以在加一条SQL语句?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient;namespace SQLTmp {class Program{//数据库连接字符串public static String strCon = "Data Source=.;Initial Catalog=SQLTMP;Integrated Security=True";//创建数据库连接对象static SqlConnection SqlCon = new SqlConnection(strCon);static void Main(string[] args){Console.WriteLine("请输入用户名:");String name = Console.ReadLine();Console.WriteLine("请输入密码:");String pass = Console.ReadLine();try{Program p = new Program();//打开数据库连接 p.Open();string sql = "SELECT COUNT(*) FROM admin WHERE name = '" + name + "'AND pass = '" + pass + "'";SqlCommand sqlcom = new SqlCommand(sql, SqlCon);int i = (int)sqlcom.ExecuteScalar();if (i > 0){Console.WriteLine("登录成功!");}else{Console.WriteLine("登录失败!");}Console.ReadLine();}catch (Exception){throw;}finally{//关闭数据库连接 pass.Clone();}}//打开数据库连接public void Open(){//关闭状态下打开数据库连接if (SqlCon.State == ConnectionState.Closed){SqlCon.Open();}//中断情况下打开数据库连接if (SqlCon.State == ConnectionState.Broken){//关闭 SqlCon.Close();SqlCon.Open();}}//关闭数据库连接public void Close(){if (SqlCon.State == ConnectionState.Open || SqlCon.State == ConnectionState.Broken){SqlCon.Close();}}} }
这是我们上一篇文章中的C#代码。
我们可以来看看一次执行多条SQL语句.
通过登录该修改登录密码任意修改,我们把用户修改为
而且第一条就是我们修改后的SQL语句,后面的是SQL更新语句用来更新数据的(更新了密码),而【;】就代表一条SQL语句的结束.当然我们在这里也可以更新用户名或者其他表中的任何数据
通过实验一,我们可以看到可以直接更新本数据库里面的数据.那么问题来了我更新的数据只是这个数据库里面的我们能不能更新一下其他数据库脸的数据。这就是我们要做的实验二,在这里我们创建一个数据库并写入一条数据:
数据库
|
作用
|
Master
|
Master数据库记录SQL Server 系统的所有系统级别信息,包括如下三类:
l 所有的登录账户和系统配置设置
l 所有其他的数据库及数据库文件的设置
l SQL Server的初始化信息
|
Tempdb
|
Tempdb数据库保存所有的临时表和临时存储过程,以及临时生成的工作表
Tempdb数据库在SQL Server每次启动时都重新创建
|
Model
|
Model数据库可用于在系统上创建所有的数据库的模版,例如,使用SQL语句创建一个新的空白数据库,将使用默认中规定的默认值来创建
|
Msdb
|
Msdb数据库提供SQL Sever代理程序调度警报、作业以及记录操作时使用,另外有关数据库备份和还原,也会写在该数据库里面
|
Resource
|
Resource数据库是一个特殊的数据库,并且是一个只读的数据库,它包含了SQL Server中的所有的系统对象,这些对象物理上存在Resource数据库,但是在逻辑上,它们却出现在每个数据库的sys架构中,所以,Resource数据库是”隐藏”了的数据库,我们无法使用查看所有数据库的SQL命令等方法它
|
深入分析.NET应用程序SQL注入【危害】相关推荐
- sql注入危害利用及防护详解+sqlmap使用
来自于个人日常学习总结,欢迎大家一起来学习交流,如要转载请标明出处. sql注入危害 数据库信息泄露 网页篡改: 通过操作数据库对网页进行篡改,嵌入木马连接 数据库被恶意操作:被攻击.管理员账户被更改 ...
- 【网络安全入门】SQL注入是什么?SQL注入危害有哪些?
SQL注入是当今最危险.最普遍的基于Web的攻击方式之一,那么你知道SQL注入危害有哪些吗?SQL注入的位置包括什么?具体内容请看下文: SQL注入是什么? SQL注入是比较常见的网络攻击方式之一,主 ...
- MySQL攻略 - JDBC程序SQL注入,PreparedStatement接口详解与案例练习,JDBC相关API小结
文章目录 SQL注入 Statement详解 基本介绍 Navicat演示SQL注入 JDBC演示SQL注入 PreparedStatement详解 基本介绍 预处理好处 预处理案例(selete语句 ...
- sql注入***原理
sql注入***原理: 是数据库的安全漏洞.网站服务器端语言自身的缺陷以及程序设计过程中,对安全方面,考虑不足或者是不全面导致对输入字符串中夹带的sql指令的检查,从而是数据库受到***,包括数据库的 ...
- SEED实验系列:Collabtive系统SQL注入实验
本课程原文链接为:https://www.shiyanlou.com/courses/291,实验楼已经为此课程的实践提供了在线实验环境,想要尝试体验的,可以直接前往实验楼进行实践操作. 你能够喜欢我 ...
- 2017-2018-2 20179216 《网络攻防与实践》 SQL注入攻击
1. SQL语言 结构化查询语言(Structured Query Language)简称SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系 ...
- Web安全之SQL注入漏洞学习(一)
Web程序三层架构 三层架构主要是指将业务应用规划为的表示层 UI.数据访问层 DAL 以及业务逻辑层 BLL,其分层的核心任务是"高内聚低耦合"的实现.在软件体系架构设计中,分层 ...
- SQL注入-01-什么是SQL注入?
什么是SQL注入? 1.正常的web端口访问 正常访问是web传入程序设计者所希望的参数值,由程序查询数据库完成处理后,呈现结果页面给用户. 2.SQL注入是如何访问? (1)SQL注入也是正常的we ...
- 通过sql注入窃取用户数据库信息
一.SQL注入的定义 SQL Injection ,即SQL注入,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害是巨大的,常常会导 ...
- 注入——sql注入命令
SQL注入漏洞防御 SQL注入-结构化查询语言,是一种特殊的编程语言,用于数据库的标准数据库查询. SQL 注入(SQL Injection)是一种常见的Web 安全漏洞.攻击者利用这个漏洞,可以增删 ...
最新文章
- easyui datagrid 后台分页,前端如何处理
- js for循环给object数组赋值
- WeWork通过向225,000个社区征税来拼命地从Meetup.com榨取现金
- php curl 数据采集 空,PHP curl从网站返回空数组的数据
- leetcode练习——栈(1)
- python学习-练习题
- 在c语言中输入三个数据类型,【C语言讲解】第二章:数据类型3
- vue中v-for的使用以及注意事项
- 【机器学习系列】隐马尔科夫模型第三讲:EM算法求解HMM参数
- 用.htaccess禁止某IP访问
- Vue中将十六进制颜色格式转换为RGB格式
- 万字拆解孩子王:充满矛盾的母婴零售之王
- 什么?都1202年了还不懂k8s和容器的关系?!这份k8s指南快拿走不谢!
- 滴滴校招笔试题及解析
- Spark3 读写 S3 Parquet, Hive, Hudi
- 课堂问题:一个凸函数的性质
- SpringCloud 实战笔记
- 题解 P2089 【烤鸡】
- Vivado综合报错及解决方法
- shaderTextView 闪动文字,static{}(静态代码块)与{}(非静态代码块)的异同点