sqli day05

  1. SQL注入原理、SQL注入常用函数及含义,SQL注入防御手段,SQL注入常用绕过waf的方法

SQL注入是一种常见的网络攻击技术,它主要是通过把SQL查询语句的组成部分插入到应用程序的数据输入字段中,进而攻击服务器执行恶意的SQL命令。以下内容将涉及SQL注入的原理、常用函数及含义、防御手段以及绕过WAF的方法。

SQL注入原理

SQL注入攻击通常发生在用户数据被不当地用于构建SQL语句时。例如,当应用程序将用户输入直接拼接到SQL查询中,而没有对输入进行适当的审查或转义时,就可能发生SQL注入。攻击者可以通过这种方法操纵原始SQL语句的结构,从而访问数据库中不应该公开的数据。

SQL注入常用函数及含义

'OR'1'='1:这是一个经典的SQL注入测试语句,用来检测数据库是否对输入进行了正确的处理。

UNIONSELECT:用于从多个表中选择数据。

COUNT(*):计算表中行的数量。

'OR'1'='1:用于逻辑判断,常常用于绕过某些限制。

SQL注入防御手段

输入验证:对所有用户输入进行验证,确保它们符合预期的格式。

参数化查询:使用参数化查询可以确保用户输入被安全地处理,不会影响SQL语句的结构。

预编译语句:也称为准备好语句,可以防止SQL注入,因为它不会将用户输入直接拼接到SQL语句中。

使用ORM框架:对象关系映射框架通常自带了防止SQL注入的机制。

限制数据库权限:确保应用程序使用的数据库账户只有必要的权限,减少潜在的损失。

SQL注入常用绕过WAF的方法

WAF(Web应用防火墙)是一种网络安全系统,旨在保护网站免受攻击。然而,一些SQL注入攻击者可能会尝试使用以下方法来绕过WAF:

编码攻击:通过编码SQL注入语句,使其在传输时不容易被WAF检测。

unionbasedattack:利用UNIONSELECT进行攻击,可能会被某些WAF放过。

用户代理(User-Agent):伪装成合法用户,避免WAF的拦截。

扩展攻击:通过在攻击中使用大量的不同数据,使WAF因为处理过载而失效。

为了防范这些绕过方法,WAF的配置和管理需要定期更新和优化,以适应不断变化的攻击手段。同时,采用深度检查和行为分析等技术,可以更有效地识别和防御SQL注入攻击。

  1. sqli-labs通关前5关

Sqllib下载安装一条龙

第一关

先试试注入点是否存在

再查看版本号

当前的数据名

爆字段名

通过上述操作可以得到两个敏感字段就是username和password,接下来我们就要得到该字段对应的内容

第二关

和第一关是一样进行判断,当我们输入单引号或者双引号可以看到报错,且报错信息看不到数字,所有我们可以猜测sql语句应该是数字型注入。那步骤和我们第一关是差不多的

第三关

当我们在输入?id=2'的时候看到页面报错信息。可推断sql语句是单引号字符型且有括号,所以我们需要闭合单引号且也要考虑括号

第四关

根据页面报错信息得知sql语句是双引号字符型且有括号,通过以下代码进行sql注入

第五关

看起来只能以bull盲注的形式

通过length函数判断长度,为8

同样的的方法我们逐一拿到表名长度,表名,字段长度一级字段内容长度

一般这些工作以sqlmap完成,手动十分繁琐,这里我们已知答案,就直奔答案结果

115是s,同样的方法拿到security

表名长度为13

表名逐一注入获得emails、referers、uagents、users

字段名长度

逐一获得字段名

分别有id、username、password三个字段

获得字段长度为109

逐一获得内容dumb

  1. sqli步骤

识别目标:首先要确定应用程序中可能存在注入风险的输入点,这通常是通过观察应用程序的数据库交互方式来实现的。

收集信息:确定注入点后,下一步是收集有关数据库的信息。这可能包括数据库类型、版本、表名、列名等。使用诸如extractvalue、updatexml、union select等SQL操作可以实现。

判断注入点:通过输入特殊字符或字符串,观察应用程序的响应是否发生变化来判断是否存在注入点。

检测漏洞:如果应用程序响应发生变化,那么可以推断应用程序可能存在SQL注入漏洞。

利用漏洞:利用发现的注入点,通过构造恶意的SQL语句来执行非授权的数据库操作,如读取、修改或删除数据。

获取数据库内容:通过构造特定的SQL查询,可以逐步获取数据库中的内容,如用户的用户名和密码。

防御措施:重要的是要意识到SQL注入是一种严重的安全威胁。因此,在实际环境中,必须采取预防措施,如使用预编译的SQL语句(如参数化查询)或ORMs(对象关系映射工具),以及进行定期的安全审计和测试,以确保应用程序不会受到此类攻击的影响。

  1. 第六关使用sqlmap

sqlmap -u "http://192.168.126.1/sqli-labs/Less-6/index.php?id=1" --technique E -D security -T users --dump --batch

方便快捷👍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值