利用系统级测试揭示SQL注入相关错误消息信息泄露
1. 引言
在Web应用程序的开发中,输入验证漏洞是一个严重的安全隐患。其中,SQL注入漏洞和错误消息信息泄露漏洞被列为CWE/SANS前25大最危险的编程错误。SQL注入漏洞是由于缺乏输入验证,攻击者可以通过使用SQL保留字和特殊字符改变SQL语句的逻辑结构,从而迫使系统执行非预期的行为。错误消息信息泄露漏洞则是因为应用程序未能正确处理异常情况,导致敏感信息泄露给攻击者。
本研究旨在评估系统级测试和单元级测试在揭示Web应用程序中SQL注入漏洞和错误消息信息泄露漏洞方面的相对有效性。我们通过对四个基于Java的开源Web应用程序进行案例研究,比较了JUnit单元测试和HtmlUnit系统级测试的效果。
2. 背景知识
2.1 SQL注入漏洞
以医疗记录系统中删除患者信息的Java方法为例:
...
java.sql.Connection mySQLConnector = DriverManager.getConnection();
java.sql.Statement s = mySQLConnector.createStatement("DELETE FROM Patients WHERE Name = ‘" + name + “’;”);
int result = s.executeUpdate();
return 1 == result;
...
此代码在定义SQL语句时未进行输入验证,存在SQL注入漏洞。攻击者可以在输入字段中输入“‘ OR TRUE –”
超级会员免费看
订阅专栏 解锁全文
2286

被折叠的 条评论
为什么被折叠?



