靶场科普 | 搜索型注入

发表时间:2022-05-09 11:42

本文由“东塔网络安全学院”总结归纳


靶场介绍:

搜索型注入

今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:“搜索型注入”。

注:在搜索框输入admin或root等用户名信息查询

一、实验介绍

1.SQL注入介绍

SQL注入,SQL injection。何为 SQL,英文:Structured Query Language,叫做结构化查询语言。常见的结构化数据库有MySQL,MSSQL ,Oracle以及Postgresql。SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询等操作。

2. Information_schema数据库基本表说明:

1)schemata表:提供了当前mysql实例中所有的数据库信息,show databases的结果就是从该表得出。

2)tables表:提供了关于数据库中的所有表的信息,即表属于哪个schema,表的创建时间、表的类型等,show tables from schemaName的结果就是从该表得出。

3)columns表:提供表中所有列信息,即表明了表中所有列及每列的信息,show columns from schemaName.tableName的结果就是从该表得出。

3.搜索型注入:

在搭建网站的时候为了方便用户搜索该网站中的资源,程序员在写网站脚本的时候加入了搜索功能,但是忽略了对搜索变量的过滤,造成了搜索型注入漏洞,又称文本框注入。

靶场科普 | 搜索型注入


4.like语法

“%”匹配任何字符,“like”的意思就是像

select username,id,email from member where username like '%$name' and 1=1 and '%'='%'

二、实验目的

1.深入理解sql注入的概念及原理

2.掌握搜索型注入的原理

三、实验步骤

1.打开实验地址,查看实验环境,搜索名称 admin ,然后抓包根据数据库进行相应的操作

2.按照判断注入点、拼接sql函数来判断执行语句的对错,并获取数据库名、表名、字段名、字段内容等信息

四、防御方式

1.不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。

2.过滤掉关键字,比如select等,对特殊字符进行实体编码

3.使用预编译功能

4.禁用相关函数