20201214学习日记---sql注入

终于来到sql注入的学习了,sql注入先是给我了很“黑客”的感觉,之前有操作过phpmyadmin,接触了数据库普通的“查删减改”(大多数都是在后端云干的),那sql语句长什么样子呢,sql注入又是如何。

介绍

SQL注入望文生义先是与sql有关。想了解如何注入 我想需要先了解一下SQL。
SQL (Structured Query Language)结构化查询语言,常见的SQL数据库有MySQL、sql、server,Oracle、Sybase等。
在开始之前使用了一个很好用的php集成开发环境-phpstudy
其支持一键LAMP,LNMP,集群,监控,网站,FTP,数据库,JAVA等100多项服务器管理功能
rngMvT.png

SQL结构

sql结构如图所示,如图:数据表-字段-数据这样的结构。

rn6DSK.md.png

SQL数据类型

SQL数据类型除了常规的整型、文本型,又细分了具体的类型。
比如text分为char、varchar等。
具体分类

常用的SQL语句

在概念里面,SQL常用的应该是【查、删、减、改】,后面应该对这四个最基本的熟练掌握。

SQL表约束

rnxzIs.png

show databases;
查询数据库

create table tablename;
新增数据表

…写到这里发现不想写下去,因为语句太多太多了,基本上就是按照上面说的sql结构进一步操作。(这让我想起来phpmyadmin的可视化数据表好方便)

基本SQL注入

information_schema

数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。其中 performance_schema 用于性能分析,而 information_schema 用于存储数据库元数据(关于数据的数据),例如数据库名、表名、列的数据类型、访问权限等。

进入到系统自带的information_schema

1
use information_schema;

显示数据表

1
show tables;

显示数据表

1
select * from tables;

最后就会出现如图结果。
ru0Vns.png

SQL的发现

SQL注入的产生–从代码层次理解

ruDYY6.png

总的来说:web没有对用户输入的数据进行严格的过滤,就把sql带进数据库进行查询。

SQL注入的发现

找到有可能用到sql查询语句的地方
寻找所有有可能出现SQL交互的

写在后面

学习了基本的sql结构,下一步可以是sql注入的实践,期望更有收获。