SQL注入系列总结二

前言

SQL注入的危害:
(1).数据库信息泄露,数据库中存放用户的信息隐私数据的泄露
(2).服务器被远程控制,被安装后门



七.二次注入

  二次注入属于SQL注入的一种场景,是指已存储(数据库,文件)的用户输入被读取后再次进入到SQL查询语句中导致的注入。二次注入比普通SQL注入利用更加困难,利用门槛更高,普通注入数据直接进到SQL查询中,而二次注入则是输入数据经处理后存储,取出后,再次进入到SQL查询

简言:如登录一个网站,进行网站账号注册,然后再在网站里面更改密码
payload(省略了有源码变量前的’$’):
 (1)后端源码:

sql = "UPDATE users SET PASSWORD='pass' where username='username' and password='curr_pass' ";

 (2)新建用户,构造名字 admin’#
 (3)重置账号密码,输入名字admin’#,修改过后发现被修改的账号是admin
 其原因就是(修改密码时,源码变化):#号注释了后面的引号

sql = "UPDATE users SET PASSWORD='pass' where username='admin' # ' and password='curr_pass' ";

 (4)从而修改了别人账号的密码


八.http头注入

  http头注入其实并不是新的SQL注入类型,而是指出现SQL注入漏洞的场景。有时候后台开发人员为了验证客户端头信息(比如常用的cookie验证),会对客户端的http header信息进行获取并使用SQL进行处理,如果此时没有足够的安全考虑则可能会导致基于http header的SQL inject漏洞

payload:
 (1)用burp抓包,信息头user-agent处加单引号报错
 (2)构造闭合,后端源码:

insert = "INSERT INTO `security`.`uagent` (`uagent`,`ip_address`,`username`) VALUES (`$uagent`,`$IP`,`$uname`)";

 (3)1’ and ‘1’ = '1 构造闭合

1' and updatexml(1,concat(0x7e,(select user()),0x7e),1) and '1'='1

在这里插入图片描述


九.堆叠注入

在SQL语句中,分号代表一条SQL语句结束,而堆叠注入就是多条SQL一起执行,堆叠注入不同于其他注入,有局限性

前提是你需要知道字段,表名称
payload:
 (1)如:1';create table test like users --+ 创建一个名为test的表
 (2)如:1';update users set password='admin@123' where username='admin' --+修改用户密码


十.access数据库注入

access数据库没有库,那些.mdb的文件就是access数据库的文件,打开里面有表,有列,所以注入点只能都是猜测

源码:id=request(“id”)
   sql =“select * from product where id=”$id
方法1:联合查询
 (1)判断注入点是否存在
 (2)猜测表名,如?id=123 and 1=2 union select 1,2,3 from xxx,这里的xxx即是数据库表名,要猜测出来,或者使用字典对名字进行遍历猜测
 (3)猜测字段名,在猜测出表名后,如?id=123 and 1=2 union select 1,x,3 from table,对字段名x进行猜测
方法2:逐字猜解法
 (1)猜测表名,and exists(select * from 表名)
 (2)猜测字段名,and exists(select id from admin),对id进行猜测


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL注入漏洞挖掘实战是指通过利用SQL注入漏洞的漏洞挖掘活动。SQL注入漏洞是一种常见的数据库攻击手段,用于利用应用程序对用户输入的SQL语句进行不当处理,从而导致恶意用户可以执行未经授权的数据库操作。这些操作包括读取、修改或删除数据库中的数据。 在SQL注入漏洞挖掘实战中,黑客通常会尝试通过构造特定的SQL语句来绕过应用程序的输入验证和过滤机制,以获取敏感信息或对数据库进行恶意操作。他们可能会使用各种技术和工具来自动化这个过程,并尝试发现和利用潜在的SQL注入漏洞。 为了防止SQL注入漏洞挖掘实战,开发人员应该采取以下措施: 1. 输入验证和过滤: 应用程序应该对用户输入进行严格的验证和过滤,确保只允许合法的字符和格式。使用参数化查询或预编译语句可以有效预防SQL注入攻击。 2. 最小权限原则: 数据库用户应该被授予最低权限,以限制对数据库的访问和操作。这样即使发生SQL注入攻击,黑客也只能执行有限的操作。 3. 安全编码实践: 开发人员应该熟悉安全编码实践,并使用安全的API和框架来构建应用程序。避免将用户输入直接拼接到SQL查询中,而是使用参数化查询或预编译语句。 4. 定期漏洞扫描和安全测试: 定期进行漏洞扫描和安全测试,以发现和修复潜在的SQL注入漏洞。这可以帮助及早发现和解决问题,确保应用程序的安全性。 总结起来,SQL注入漏洞挖掘实战是黑客利用SQL注入漏洞进行恶意攻击的活动。为了防止这种漏洞的利用,开发人员需要采取一系列安全措施,包括输入验证和过滤、最小权限原则、安全编码实践和定期漏洞扫描和安全测试。这些措施可以帮助保护应用程序免受SQL注入漏洞的威胁。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SQL注入攻击实战演示(附源码)](https://blog.csdn.net/hack0919/article/details/129880265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值