学习笔记-SQL注入(1) – 作者:Tambrinem

漏洞原理

界面存在用户与数据库交互

比如,一个搜索框让用户输入数据

1618898468_607e6e24b86f924b2ee77.png!small

数据流向:web浏览器-后端服务器-数据库-原路返回

当前后端过滤不严时,导致恶意语句到达数据库执行

可能出现的地方:思路是寻找可能与数据库有交互的区域

渗透实例

时间盲注&&布尔盲注

1618899685_607e72e5b76d6044a6c8a.png!small

1618899708_607e72fce5d4e9a3c2fdc.png!small

初步判断,输入参数,参数被送至数据库查询

存在则返回相关数据,否则无结果

可能存在过滤不严导致的SQL注入

暴力fuzzing

为了知道注入是否成功,我们需设法得知一些反馈,观察显示结果就是最直接的反馈

构造语句2′ or version()#

1618900192_607e74e016988199e41a7.png!small

返回结果出现了延迟,可初步推断存在注入,但发现结果不是version(),初步推断显示窗口可能采取了用几个变量来接收返回结果,所以观察不到我们想要的结果

构造语句2′ or sleep(2)#

1618900392_607e75a838a53a3e6e220.png!small

出现了很明显的延迟,说明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
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论