前言
又是老套的跳槽故事,你又来到了一个新的网站,你决定这一票干完就再也不干了,从此老老实实干活。
题目分析
首页如下:
现在的你可以说得上是经验丰富了,看到这你立马输入了一个 ‘ ,但接下来的一幕顿时让你傻眼了,竟然没有报错:
你顿时怀疑是不是哪里出错了,于是又重新输入了一次,结果还是和上次一样,虽然你有所怀疑,但你还是接着尝试输入了 and 1=1 、and 1=2,和 'and ‘1’='1 、'and ‘1’='2 ,竟然都没有报错:
你现在感到非常的迷惑,为什么都没有报错呢,究竟是哪里出了问题?想来想去你唯一能想到的解释就是网站对用户输入的参数进行了过滤,导致输入的单引号并没有带入数据库进行查询。那究竟过滤了什么样的字符呢?是不是所有字符都进行了过滤呢?(其实从题目的标题中我们就能看出来突破点是双引号)
百思不得其解下,你想起了你还有法器SQLMap!这一次SQLMap终于能够启动了。但非常不幸地是,SQLMap才刚扫描完就又一次没反应了。SQLMap扫描日志如下:
漏洞还是比较多的哈,你从payload中发现原来参数是加了双引号和括号的,那就不需要管过滤了那些字符的问题了,只需要用 ") 闭合左边,用- -+注释右边就行了。采用联合查询注入结果如下:
写入的SQL语句可以正常执行,剩下的步骤与之前一致。
人与工具
在这一章中笔者使用了工具SQLMap,想必大家对其并不陌生。笔者在此想要强调的是,在基础学习阶段,应当慎用这些工具。使用工具进行扫描注入无疑会极大地方便我们进行渗透工作,但如果只学习工具的使用方法而忽视了自身对知识的汲取,无疑是本末倒置。
试想当你在渗透一些防备工作做得相当完善的站点时,SQLMap等常用工具未必能发挥作用,这时候就需要你自己写脚本工具进行测试,没有这些知识打底,又能写出什么像样的脚本出来呢?因此工具起到的永远只是辅助的作用,真正的主体是人。切勿让自己最后成为的是一个只会用却不会创造的脚本小子。
总结
在面对有过滤处理的SQL注入漏洞时,可以逐个尝试一些其它的字符,如本题的双引号,只要没有完全过滤就总会找到突破口;在使用工具的同时还要注重对知识的消化吸收。
以上就是本篇的全部内容,我们下篇见。