SQL注入:原理及示例

SQL注入攻击是一种在真实环境中较为常见的漏洞。主要由用户在于服务端数据库,产生交互时,插入恶意数据,从而产生的一种web漏洞,该漏洞可能导致服务端敏感数据泄露,读写数据,严重可控制服务器主机

sql注入示例

前端:用户登录表单

html 复制代码
<form action="login.php" method="post">
  用户名:<input type="text" name="username">
  密码:<input type="password" name="password">
  <input type="submit" value="登录">
</form>

后端 :通过拼接用户输入,查询数据库

php 复制代码
<?php
$username = $_POST['username'];
$password = $_POST['password'];
// 错误的示例:直接将用户输入拼接到SQL语句中
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $query);
?>

当正常用户在前端用户登录表单,输入登录信息,提交到后端服务器时,会将用户输入拼接到数据库查询语句中,进行用户登录的验证

当恶意用户进行登录时会构造下方sql语句从而进行绕过

用户名:admin' -- 密码:000000

此时拼接到sql语句中

SELECT * FROM users WHERE username = 'admin' -- ' AND password = '000000'

当此sql语句进行查询时将会直接登录admin用户,无论密码是否正确

原理:

输入用户名时拼接了sql语句,通过 ' 对用户名进行闭合, -- 将后续sql语句进行注释。此时数据库进行查询,如果存在用户名为admin的用户,结果返回为真,及可登录。

扩展:如何快速找到真实站点存在的sql注入漏洞

1.打开google需vpn浏览器使用高级查询语法,查询可能存在漏洞的url

sql注入漏洞,查询语法集成

2.在注入点输入 ' 观察页面有无异常

3.如有异常进行后续攻击

存在SQL注入漏洞网站不管用或修复,评论@我换新

url: https://www.uni-1.com.hk/about_en.php?id=2

注入点类型:数值

sql报错回显:无

sql语句执行:order by union

字段数:14

回显点:12,13,14

相关推荐
养生技术人2 分钟前
Oracle OCP认证考试题目详解082系列第17题
运维·数据库·sql·oracle·ocp
koi77u11 分钟前
嵌入式学习———sqlite数据表
linux·数据库·学习·sqlite
xx~t16 分钟前
嵌入式——Linux软件编程——数据库
linux·c语言·数据库·oracle·sqlite
ACP广源盛1392462567323 分钟前
M6/M5 Pro Mac mini 端侧 AI 爆发@ACP#YLB3118 存储扩展芯片在本地 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
隔窗听雨眠31 分钟前
关系型数据库长期可维护性完全指南:设计、索引、运维、安全的系统性实践
数据库
隔窗听雨眠42 分钟前
活动中台系统慢SQL治理实践:从监控告警到性能优化的全链路方法论
sql·性能优化·github
涛思数据(TDengine)1 小时前
从“改了就改了“到“每一次变更都可追溯“:工业 AI 实战直播(十二期)
大数据·数据库·人工智能·时序数据库·tdengine
xixingzhe21 小时前
spring boot项目接口访问慢问题解决方案
java·数据库·spring boot
oradh1 小时前
Oracle普通表改造分区表的方法总结
数据库·oracle·普通表改造分区表
Gent_倪1 小时前
MySQL 与 Hive 语法异同点详解
数据库·hive·mysql