自学sql注入(一)

这是笔者自行整理出来的有关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用于删除数据

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语句,使之带入到数据库内与原有的语句进行拼接,继而改变原有的语义去执行攻击者想要执行的语句。

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的库,里面存放了所有表的内容信息

-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)
// 知晓列名和表名,就可以轻松查出所有的内容
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值