温馨提示:这篇文章已超过435天没有更新,请注意相关的内容是否还可用!
摘要:本文介绍了Sqli-labs数据库安全挑战中的第一关到第四关的挑战内容。在第一关中,主要学习基本的SQL注入原理;第二关涉及更复杂的注入技术;第三关强调盲注技巧的应用;第四关则挑战了更高级别的防御策略绕过技术。这些关卡旨在帮助学习者逐步掌握SQL注入的攻防技巧,提升数据库安全意识。
目录
一,了解PHP源代码
在了解PHP源代码之后,我们重点看一下其中的SQL注入部分,以第一关为例,我们先找到网站根目录的www文件,找到sqli靶场的第一关,在index.php文件中添加两行代码,这两行代码的意思是将我们输入的SQL语句显示到页面上,然后换行,这有助于我们更好地理解注入的原理,进入第一关后,我们发现需要我们输入id信息,输入?id=1后,我们发现页面上输出了登录名和密码,这时我们先看一下后端源代码,了解一下SQL注入的逻辑。
二,破解第一关
2、1 在了解完源码之后,我们重点看一下其中的$sql语句,其中的$id就是我们可操作的内容,也就是说我们需要利用这行代码来提取出数据库的所有信息,这时我们回到第一关,输入?id=1’,看看结果,发现报错后,我们分析一下,注释掉后面的内容,再执行看一下。
2、2 破解这道题中表中有几列,可以看到没有报错,并且这道题有回显,这里我们用到order by函数来判断该数据库当前使用的表有几列。
2、3 查看表中哪一列有回显,接下来判断哪一列有回显位置,使用了一个SQL语句来判断,这里涉及到了一个知识点,如果前面的语句错误,那么后面的查询虽然也执行了,但是却不会在网页上反馈。
2、4 查询库、表、列信息,接下来知道了哪些列有回显后,就可以进行SQL注入了,这里介绍了一些查询语句来查询数据库的信息,这些语句可以配合limit使用,但更推荐使用group_concat函数,group_concat函数可以将所有值返回。
三,总结
第一关至第四关的过程只有对id的闭合方式不同,我们可以输入每一种方式的右半边,根据它的报错信息来判断它的闭合方式,还需要注意sqli靶场的库默认是security表默认是users。
希望以上内容能对你有所帮助!
还没有评论,来说两句吧...