WEB应用搜索功能是用户交互的主要模块,也是安全风险的比较高发的区域。安全测试主要是:SQL注入漏洞和业务逻辑漏洞。
SQL注入漏洞测试
测试为验证输入参数是否被正确过滤与转义。
测试包括手工探测与自动化工具扫描。
手工探测使用特殊字符集作为输入:单引号(')用于触发语法错误,布尔逻辑符(OR 1=1 -- )用于尝试绕过认证,联合查询(UNION SELECT)用于提取数据。某电商平台搜索框输入%' AND 1=CAST((SELECT current_database()) AS INT) --后返回数据库错误信息,存在字符型注入。
自动化工具采用SQLmap实施深度检测。通过抓取搜索请求,注入点可被批量测试。工具输出包含漏洞类型(如布尔盲注、时间盲注)、可操作数据库账户权限及可提取数据表名称。
测试输出需记录有效载荷(Payload)、服务器响应特征(如错误信息、响应延时)、风险等级(高危/中危)。确认漏洞后应提供修复建议:使用参数化查询预处理语句,禁止直接拼接SQL。
业务逻辑漏洞测试
测试范围:权限控制、数据暴露与业务流程绕过等。
越权访问测试修改请求参数。例如搜索功能本应仅返回用户自身订单,但修改请求体中userID=123为userID=124后,系统返回他人订单信息构成水平越权。
敏感数据泄露测试-搜索结果的过滤机制。某招聘网站搜索简历时,服务器响应包中包含完整数据库记录(如手机号、邮箱),前端进行了部分隐藏。测试需检查API响应原始数据是否过度暴露。
业务规则绕过通过异常输入实现。输入超长字符串(1000+字符)可能导致系统拒绝服务;输入特殊字符(如通配符%、_)可能触发非预期的大量结果返回,消耗系统资源。
测试输出应包含漏洞描述(如“搜索接口未校验用户数据归属”)、重现步骤、风险影响(如数据泄露范围)等。修复需强化服务端权限校验和输出过滤等。
测试报告
最终报告需区分漏洞类型。SQL注入部分注明数据库类型、可利用程度;
逻辑漏洞部分明确业务影响。所有漏洞需附HTTP请求/响应原始数据作为证据。建议引入第三方检测机构进行双重复验,业务模块无高风险漏洞。
超过60%的WEB应用搜索功能存在至少一类安全缺陷。系统化测试可降低80%因输入验证缺失引发的安全问题。