漏洞原理
界面存在用户与数据库交互
比如,一个搜索框让用户输入数据
数据流向:web浏览器-后端服务器-数据库-原路返回
当前后端过滤不严时,导致恶意语句到达数据库执行
可能出现的地方:思路是寻找可能与数据库有交互的区域
渗透实例
时间盲注&&布尔盲注
初步判断,输入参数,参数被送至数据库查询
存在则返回相关数据,否则无结果
可能存在过滤不严导致的SQL注入
暴力fuzzing
为了知道注入是否成功,我们需设法得知一些反馈,观察显示结果就是最直接的反馈
构造语句2′ or version()#
返回结果出现了延迟,可初步推断存在注入,但发现结果不是version(),初步推断显示窗口可能采取了用几个变量来接收返回结果,所以观察不到我们想要的结果
构造语句2′ or sleep(2)#
出现了很明显的延迟,说明sleep()被数据库执行
结论:此处过滤不严,构造-1‘ or ****#语句可能造成危害
后续使用该语句对该站其他多个类似功能点测试,发现同样适用,这为我们提供一种常见规律
经验总结
1.资产搜集是第一步,明晰目标系统架构,再寻找相关漏洞进行渗透
2.对漏洞常见出现灾区了解帮助我们提升渗透效率
3.对前后端架构清晰以及fuzzing原理掌握是我们在渗透过程中更加心中有数
4.渗透需要耐心
SQL扫描流程
1.寻找重灾区
2.分析灾区特点
3.逻辑fuzzing
欢迎探讨交流
来源:freebuf.com 2021-04-20 14:55:31 by: Tambrinem
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册