LOADING

加载过慢请开启缓存 浏览器默认开启

Day5

2023/10/2 -WEB WEB

Day5

SQL注入,【4.sql注入产生的原理10.如何判断注点


1.四个步骤:

  1. 参数的传递

  2. 数据的接收

  3. 数据的交互

  4. 数据库的执行

2.通过参数的传递,数据语言拼接到原来的语句后,执行恶意的数据操作。实现自定义的数据查询。

3.可控变量

通过参数传递可以改变它的值

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

其中id为变量可以修改

4.sql注入产生的原理

  • 可控变量
  • 带入数据查询
  • 变量未存在过滤或者过滤不严谨

5.get注入和post注入

​ get注入:

http://127.0.0.1/sqli-labs-master/Less-1/?id=1

特征:

?id=××

6.注入测试正确

1.1

a.注入给了y没有给x

b.c.正确

d.参数名的错误

关注注入的对象,找注入点.

7.信息收集

数据库的收集

  • 操作系统

  • 数据库名

  • 数据库用户

    数据库管理

  • 数据库版本

  • 网站路径等

8.数据注入

mysql注入-小迪

9.MySQL数据库

一级一级的获取,无法一次性获取

10.如何判断注点

1、逻辑值
    and 1 = 1		页面正常
    and 1 = 2		页面异常
    则可能存在注入点

正常和之前没有什么区别,不正常指和原来页面有很大的区别

2、order by
        通过order by 判断注入的字段数
    

原理:

sql语句可以进行拼接,说白了就是看你输入的东西对现在这个页面有没有影响。

注:出现404或者返回主页面,说明有检测可能没有漏洞

**11.联合注入 union **

猜解列名数量,字段数 **ORDER BY ** 语句

错误和正确的数量值

12.信息收集

数据库版本:version()
数据库名字:database()
数据库用户:user()  
操作系统:@@version_compile_os

爆出什么在什么地方写

13.必要知识点

在mysql5.0以后的版本存在一个information_schema数据库、里面存储记录数据库名、表名、列名的数据库。相当于可以通过information_schema这个数据库获取到数据库下面的表名和列名。

14.获取相关信息

information_schema.tables			#information_schema下面的所有表名
information_schema.columns		#information_schema下面所有的列名
table_name										#表名
column_name										#列名
table_schema									#数据库名