4.联合查询注入

文章讲述了联合注入原理,涉及如何利用字段数不匹配创建查询点,通过字符和数字型注入的示例来判断漏洞。同时介绍了白盒测试(确定注入点和利用information_schema进行表名获取)和黑盒测试(获取表名并查询字段内容)的过程。
摘要由CSDN通过智能技术生成

联合注入原理

联合查询,两边的字段数要相同,不然会报错

就像这样

select from users where user_id=1 union select * from guestbook

上述联合查询语句可以拆分为两个查询语句

select from users where user_id=1

select from guestbook

接下来要确定两个查询语句的字段数

select from users where user_id=1

字段数(注入点)为8

select * from guestbook

的完全语句为

select * from guestbook where comment_id = 1

字段数为3

利用联合查询创造多个查询点,然后将第二个查询语句的数字替换成为各种函数,一次性进行多个查询

限定语句导致的错误

当联合查询两个以上语句时,如果将comment_id设定为1的话,那除了第一个语句外的后面的所有语句都将不会回显出来

联合注入攻击

白盒测试流程

攻击开始

判断为字符型还是数字型

这里只是将Id更改了,没有其他变化,不像数字型注入漏洞

改为字符型试探

当输入值改为1' and '1'='2时,页面直接崩溃,说明这里有一个字符型注入漏洞

判断字段数(注入点)

注入点确定,这里只有两个注入点

数据库连接账户为localhost

连接的数据库名称为dvwa

0

版本为5.7.33

查询对方数据库中符号的表示方法

就会生成对应的字符

这样可以将数据库吐出来的数据更加美观一些

黑盒测试是不知道数据库内部结构和表名的

但数据库的表的数据都会保存在information_schema这个表中,我们只要将这个一定会存在的表,给他破解掉,就可以获得这个数据库中的全部表名了

黑盒测试流程

获取表名

select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1

将注入点数字替换为这个语句

得到第一个表名

将注入点写入这个语句

select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1,1

得到第二个表名

根据表名查询字段

通过字段查询内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值