SQLi LABS Less-27a

举报
士别三日wyx 发表于 2021/12/23 01:53:06 2021/12/23
【摘要】 第27关使用GET请求提交参数,在url地址栏中构造payload即可 后端源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则         由于源码中过滤了--和#等注释,而且在id两边拼接了双引号,我们可以考虑不使用注释,而是使用双引号闭...

第27关使用GET请求提交参数,在url地址栏中构造payload即可

后端源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则

 

 

 

 

由于源码中过滤了--和#等注释,而且在id两边拼接了双引号,我们可以考虑不使用注释,而是使用双引号闭合来确保SQL语法的正确性,从而实现绕过

针对空格的过滤,我们可以使用括号()来替代空格

至于select和union等关键字的过滤,由于其没有严格过滤大小写,我们可以使用大小写来绕过

先在url中输入 1"and"1,参数拼接到SQL中会变成下面这样

 and后面的"1"会被转换成true,是SQL恒成立,正常查询处用户信息,从而显示在页面中

 

接下来输入 1"and"0,参数拼接到SQL中是下面这个样子

 and后面的"0"会转换成false,使SQL恒不成立,查询不出用户信息导致页面空显示

 

用户输入的参数可以是SQL恒成立或恒不成立,从而控制SQL的执行结果,也就意味着存在SQL注入,注入点为双引号字符型注入,由于报错信息被写死了,这一关可以使用布尔盲注

1"and(length(database())>1)and"1
 

 页面正常显示信息说明条件成立,由此可以判断出数据库的长度大于1

 

依次增加长度到8时,页面空显示,意味着条件不成立,也就是说数据库的长度是8

1"and(length(database())>8)and"1
 

 

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/119720685

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。