# 安全测试问题总结
# 程序问题
# 高危
# 问题一:弱口令漏洞
描述: 攻击者可轻易获取口令信息,并进行非授权的登录行为。
建议: 设置口令复杂度策略,要求用户口令长度不小于8位,至少包含数字、字母和特殊字符中两种,且强制要求系统中的弱口令账号修改口令。
举例: 密码设置过于简短和大众化,比如:类似123456的密码,容易被猜中而盗取您的帐号,容易被盗号者使用软件暴力破解。
# 问题二:垂直越权访问
描述: 存在越权,且造成攻击者可以获取用户信息,或执行其他非法权限操作,使用低权限用户请求高权限用户接口,可以请求成功。
建议: 对所有用户功能基于 session_id 判断用户权限。
举例: 恶意用户只要猜测其他管理页面的URL或者敏感的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
# 问题三:存在XSS漏洞
描述: 攻击者利用应用程序的动态展示数据功能,在html页面里嵌入恶意代码。当用户浏览到包含恶意代码的这些html页面时,用户浏览器被攻击者控制,导致用户cookie盗用和非授权操作,严重时会造成敏感信息泄露甚至财产损失。
建议:
- 1.编码转义,对输入的数据进行HTML转义,使其不会识别为可执行脚本
- 2.使用白名单过滤方法,过滤危险的字符,对危险的标签和属性数据进行过滤。
- 3.根据数据输出的内容类型进行数据转义。
举例: 首页->功能->教学活动->新增课程->课程题目或活动地点处插入 xss 代码Payload:" onclick=confirm(4) //
# 问题四:任意文件上传getshell
描述:
1.同理上传 jsp 木马文件也可以被解析,可直接 getshell,拿下服务器权限,至此,漏洞成立。
2.攻击者可以利用该漏洞上传网站后门木马获得服务器控制权限,进一步还可导致服务器数据泄露以及被利用进行其他攻击。
建议:
- 1.后端对文件上传类型做白名单限制,只允许上传jpg、png、gif或功能需要的格式文件。
- 2.对文件代码做安全效验,不仅仅是在 JS 里做判断,还要在后端做安全效验。
- 3.对文件存放目录做无执行脚本权限,防止文件存放目录解析运行JSP、PHP、ASP等脚本的 webshell 文件。
- 4.修改后端文件上传逻辑,避免上传文件名和存放路径在前端可控。
举例: 上传附件—上传 jpg后缀文件,使用 burpsuite 抓包,修改xjFileNameEdit参数值对应文件名后缀为 jsp,成功上传并且上传目录可以解析 jsp 文件。
# 问题五:存在任意文件上传漏洞
描述: 此功能点可上传任意类型文件,比如 exe、jsp类型文件,攻击者可以将后门文件通过文件柜功能发送给所有师资或学员账号进行钓鱼。
建议:
- 1.基于功能需要,设置上传文件类型白名单,限制一些恶意脚本文件的上传。
- 2.对文件存放目录做无执行脚本权限,防止文件存放目录解析运行JSP、PHP、ASP等脚本的 webshell 文件。
举例: 来到文件柜功能处,选择文档上传jpg后缀文件,上传时抓包,修改上传参数 xjFileNameEdit 为其它类型文件名,该参数可控制上传文件类型和名称,如下上传 exe 文件,发送给师资或学员后控制对方电脑。
# 中危
# 问题一:页面提示可以手机号登录
描述: 访问公众号中大八院教学管理平台的教学平台,登录页面提示可以手机号登录
建议: 建议模糊网站登录页面的回显信息。
举例: 点击忘记密码,输入手机号点击获取验证码发现系统提示未在系统中找到绑定此手机号的用户
# 问题二:CORS跨域资源共享漏洞
描述: CORS允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。如果Access-Control-Allow-Origin可控,且Access-Control-Allow-Credentials为true, 那么就可以利用一个可控的网站来窃取一个人的个人隐私信息。
建议:
- 不要配置"Access-Control-Allow-Origin" 为通配符“*”,而且更重要的是,要严格效验来自请求数据包中的"Origin" 的值。当收到跨域请求的时候,要检查"Origin" 的值是否是一个可信的源, 还要检查是否为null;
- 2.避免使用"Access-Control-Allow-Credentials: true";
- 3.减少Access-Control- Allow-Methods所允许的方法。
举例: Access-control-allow-origin,看到 response 包含这个字段,测试一下添加 Origin: www.test.com,请求成功。
# 低危
# 问题一:暴力破解
描述: 登录时使用抓包程序,抓取到明文的账号密码
建议:
- 1.页面增加图形验证码作为增强验证方式,建议图形验证码包含随机干扰像素、有扭曲、变形、重叠等元素,以增加口令破解难度。
- 2.用户名或密码输入错误超过一定次数情况,应采用锁定账号等安全措施。
举例: 访问公众号中大八院教学管理平台的在线考试页面,输入账号密码并进行抓包,可以看到账号密码。
# 问题二:图形验证码绕过
描述: 错误的图形验证码验证机制,将图形验证码人机校验机制失效,从而导致暴力破 解,接口重放等问题。在包含图形验证码的页面,截取用户截取图形验证码的请求,可以进行重放绕过。
建议: 判断 SessionID 为空的情况;在图形验证码被校验后,无论结果是否正确,服务 器端强制刷新 SessionID 对应的图形验证码;图形验证码校验应与操作数据校验 同时进行,不可以分步校验。
举例: 使用抓包程序抓取验证码
# 其他问题
# 低危
# 问题一:中间件版本信息泄露
描述: 所使用中间件版本泄露,若该版本中间件爆发高危漏洞,可能对系统造成威胁。
建议: 屏蔽数据返回包中的中间件版本信息。
举例: 
# 问题二:开启了不必要端口
描述: 更多的端口意味着更多的攻击向量,从而增加了系统的不安全因素。使用 nmap 进行端口扫描,发现使用了不必要端口。
建议: 在生产服务器上关闭与应用无关的端口。
举例: 