文章目录
(一) 漏洞概念
SQL injection (SQLi), 攻击者将SQL代码片段提交到后台造成SQL语句拼接后被DBMS执行,造成预期外的查询行为。
(二) 漏洞原理
- 将SQL语句插入或添加到应用(用户)的输入参数中,再将这些参数传递给后台的SQL服务器加以解析并执行。
- 浏览器发起一个请求,并将请求交给服务器,服务器当中运行着Apache\Nginx等中间件来解析请求,当对请求中的网站进行解析的时候,需要用到解析脚本(ASP\PHP\JSP.NET),而存储层的东西是不能直接使用的,所以就出现了逻辑层,由逻辑层来从存储层当中取东西。
(三) 漏洞危害
根据DBMS本身具备的能力、当前账号权限的不同,SQL注入可能存在不同的危害。具有来说,在条件满足的情况下,该漏洞会造成数据泄露、文件读写、命令执行直至系统被接管。
(四) 修复思路
- 正确使用安全的连接方式,比如PDO;
- 如果不能变更连接方式和和DBMS通信的架构,则需要做好攻击payload的识别的处理。
(五) 漏洞利用过程
- 判断是否动态网站