掌握注入漏洞的基本概念原理

SQL-Inject漏洞解析

有以下的几个章节

  • SQL Inject漏洞原理测试
  • 如何判断注入点类型及常见注入类型讲解
  • 注入get&post区别
  • SQL Inject漏洞手工测试:基于union联合查询的信息获取(select)
  • SQL Injectt漏洞手工测试:基于报错的信息获取(select/delete/update/insert)
  • SQL Injectt漏洞手工测试:操作系统权限获取
  • SQL注入漏洞-盲注(boolian base)原理及测试
  • SQL注入漏洞-盲注(time base)原理及测试
  • SQL注入漏洞0-基于http header的注入
  • SQL注入列表明猜解-暴力破解在sqli上的应用
  • SQL注入-宽节注入原理及演示
  • 如何使用SQL-Map进行SQL-Inject漏洞测试
  • SQL漏洞常见防范措施

SQL Inject漏洞

在owasp发布的top10漏洞里,注入漏洞一直是危害排名第一,其中主要指SQL Inject漏洞。
数据库注入漏洞,主要是开发人员在构建代码是,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构建的语句,从而欺骗后台数据对其进行执行,导致数据库信息泄漏的一种漏洞。
在这里插入图片描述在这里有一个网站,Web-serer是一个网站,它会有一个数据库(Database-serer)
我们会把用户信息相对应的留言等等都会保存到数据库里边,这是以一个正常的普通的一个架构,假如在这个页面(user_id)上有一个功能我们把用户名输入一个ID:1
后端会把这个ID对应的邮箱显示出来,提供一个页面查询
正常的我们输入1的时候,会被提交上来,然后我们通过对应的参数获取连接数据库,然后把这个输入放到对应的操作里面来,去获取数据库的信息如
输入:1

select email from users where id=1

这里的1是前端传进来的,这个时候前面是一个攻击者这时,他不按规定执行并没有在这时输入1或者是2,他输入的是:1 or 1=1然后你的后端没有对你的输入点或输入的参数没有做安全措施的话,那么用户输入的什么你拼接进去的可能就是什么。

 select email from users where id=1or1=1;

上面所述的一整段会当做拼接到SQL里面去,这样的话整个SQL的逻辑就会变,看起来是一样的,其实效果是不一样的,表里的数据都会被泄漏出去,所以你的数据库的信息泄漏

SQL-Inject漏洞的攻击流程

  1. 第一步:注入点探测
    自动方式:使用Web漏洞扫描工具,自动进行注入点发现
    手动方式:手工构造sql inject测试语句进行注入件发现

核心思想:你要构造一些测试的社会语句,通过前端拼接进去,传到后台之后我们通过它返回的数据,看它是否有报错,或者是说根据它返回的逻辑来判断我们输入的内容是否在后台拼接到数据库里面去执行的,如果是这样的,就意味着后端的数据库接受前端传出的其他的数据库的操作,这个地方就会存在一些注入。

  • 第二步:信息获取
    通过注入点取期望得到的数据
    ①环境信息:数据库类型,数据库版本,操作系统版本,用户信息等等
    ②数据库信息:数据库名称,数据库表,表字段,字段内容(加密美容破解)
  • 第三步:获取权限
    获取操作系统权限:通过数据库执行shell,上传木马

常见的注入点的类型

  • 数字型 user_id=$id
  • 字符型 user_id=‘$id‘’
  • 搜索型 text LIKE‘%{$_GET[‘search’]}%’"

如何判断注入点的类型
我们要以什么样的类型拼接进去的,如果是以数字型的方式拼接进去的就是数字型,如果是双引号或是单引号我们认为是字符型,当然还有搜索型会用LIKE然后会有%拼接进去的就是搜索型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值