深入探究 Web 应用程序中的 SQL 注入漏洞
1. 注入攻击概述
在评估 Web 应用程序时,操作系统(OS)命令注入可让攻击者在主机上获取 shell。不过,更常见的是实现 SMTP、XML、X - PATH 或 SQL 注入。SQL 注入能使攻击者窃取整个数据库,还可利用相关方法访问底层操作系统。
许多类型的应用程序和后端存储都会受到注入攻击的影响,如 OS 命令注入和 LDAP 注入,这些都属于注入类漏洞。多数注入漏洞源于缺乏输入验证,特别是服务器端的输入验证。通过改进输入验证和过滤,可增强许多应用程序的安全性。需注意,若不进行服务器端输入验证,仅改进客户端验证并非合适的安全控制措施。
OWASP 应用安全验证标准(可在 owasp.org/www - project - application - security - verification - standard 找到)是一个有用的参考资源。
2. SQL 注入手动检测与利用
2.1 发现潜在漏洞
以一个名为“pony app”的图像画廊 Web 应用为例,其 URL 格式为 http://<TargetIP>/ponyapp/?id=2&image=dashie.png
。通过观察 URL 参数,可推测用于选择图像和图像说明的 SQL 查询。
当点击页面上的链接更改图像时,URL 中的 id
参数会相应改变。手动更改 id
参数,如将其改为 2,文本会变为“Rainbow dash!”,但图像不变,这表明