查看: 8371|回复: 1

SQL注入基本知识

[复制链接]
发表于 2023-7-27 09:22:34 | 显示全部楼层 |阅读模式
SQL注入原理
    当web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据.

SQL注入本质
把用户输入的数据当成执行的代码

SQL注入的危害
盗取网站的敏感信息
绕过网站后台认证

借助SQL注入漏洞提权获取Webshell

借助SQL注入漏洞提权 把服务器变成自己的肉鸡
读取文件信息
SQL注入-常用函数:
user() 返回当前使用数据库的用户,也就是网站配置文件中连接数据库的账

version() 返回数据库版本

database()返回数据库(只有在use命令选择一个数据库之后,才能查到)

group_concat() 把数据库中的某列数据或某几列数据合并为一个字符串

@@version_compile_os 操作系统版本

SQL联合查询流程:

?id=1 and 1=1
判断有无闭合 and 1=1 and 1=2 //结果和第一个一样说明需要闭合,反之无闭合 有闭合需要用到
猜解字段 order by 10

判断数据回显位置 -1 union select 1,2,3,4,5, 6…….

获取当前数据库名、用户、版本 union select version(),database(),user()

SQL注入思路
判断注入点
在GET参数、POST参数、Cookie、Referer、XFF、UA尝试插入代码、符号或语句,尝试是否存在数据库参数读取行为,以及能否对其参数产生影响,如产生影响,存在注入点

端口扫描
如果可以对主机进行端口扫描,可以根据端口判断数据库类型Oracle:521
SQL Server:433
MySQL:3306
PostgreSql:5432

sql注入点类型
get注入
在get传参时写入参数,将SQl语句闭合,后面加写入自己的SQL语句

post注入
通过post传参,原理与get一样,重要的是判断我们所输入的信息是否与数据库产生交互,其次判断SQL语句是如何闭合的

Referer注入
Referer正确写法应该是Referrer,因为http规定时写错只能将错就错,有些网站会记录ip和访问路径,例如百度就是通过Referer来统计网站流量,我们将访问路径进行SQL注入,同样也可以得到想要的信息

XFF注入
在用户登录注册模块在 HTTP 头信息添加 X-Forwarded-for: 9.9.9.9′ ,用户在注册的时候,如果存在安全隐 患,会出现错误页面或者报错。从而导致注册或者登录用户失败

SQL注入:数字型
当输入的参数为整形时,若存在注入漏洞,则是数字型注入。

如:https://blog.csdn.net/aboutus.php?id=1

此时后台语句:$sql=“SELECT 123 FROM abc WHERE id=’1 ‘”

检测方法:URL输入 and 1=1 / and 1=2 报错则说明有注入

SQL注入:字符型
当输入参数为字符串时,称为字符型注入。

它与数字型的区别:数字型不需要单引号来闭合,而字符串需要单引号来闭合。

例:https://github.com/KnightYuGan?id=1’

此时后台语句:$sql=“SELECT 123 FROM abc WHERE id=’1 ’ ’ “

若多出了一个单引号,破坏了原本的SQL语句结构,数据库无法处理,于是会报错,证明这条语句成功被带进数据库查询,存在字符型注入。

评分

参与人数 1i币 +5 收起 理由
jingdutiao + 5 支持原创

查看全部评分

回复

使用道具 举报

发表于 2024-8-13 15:48:15 | 显示全部楼层
不错,很有收获
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-4-30 21:56 , Processed in 0.071886 second(s), 18 queries , Gzip On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部