WEB常见漏洞及修复参考

漏洞类型造成原因修复方案
重定向攻击跳转的URL由前端输入,存在跳转URL被篡改、构造危害URL地址,导致用户受到攻击方案1、后台设置跳转白名单
方案2、前端提交跳转标识字符,后端返回约定后的URL重定向地址
服务器端请求伪造(SSRF)一般与使用场景有关,在提交http报文时,报文body参数内容包含完成URL地址,被替换为挂马等有危害URL地址。当用户浏览如后台管理员去审核时,自动会加载有危害URL导致管理员用户受到攻击。另一种构造有危害协议请求从服务端发端攻击内网。

1、提交报文时,前端用户不提交完整的URL
2、或在提交时,后台验证URL没有被篡改才能提交

3、 只允许http、https协议,限制file、gopher、ftp等协议

XXE漏洞在xml类型数据提交中,构造了对外部实体引用。因不同的xml解析库,修复代码也不同,但都是通过以下方式解决:
1、禁止加载外部实体;
2、不允许XML中含有任何自己声明的DTD
短信轰炸总体是逻辑设计问题导致,可能是没有验证码、或验证码可重复使用发送间隔60s,一次发送只能到一个手机号
或图片验证码使用一次立即失效等手段
容器信息泄露服务端未如对如404、500类似错误没有屏蔽,直接把容器中间件等信息返回给前端。导致通过此信息查漏洞直接攻击在框架里或tomcat里配置统一出错页面或信息,或在nginx里指定统一出错信息等手段,尽量避免信息泄露
越权访问前端在做数据做增、删、改、查时,后端没有做权限 、数据归属做验证对操作的数据时,验证此数据是否归此用户权并有权限操作
数据遍历数据通过改变ID即可访问1、增加ID的复杂度,设计的ID无法正常可以猜到
2、访问时对用户鉴权
XSS对危险的字符过滤不全,导致存在XSS风险XSS与业务密切相关,没有好的统一解决方案。一个项目无法只靠一个xss过滤器就能解决所有的XSS问题。总体就是破坏js脚本结构。 | & ; $ % @ ' " + CR LF , . = #都是有风险的字符,建议项目统一用宽一点过滤器,在接口里参数要求严格验证。
CSRFCSRF是web应用的基本问题,WEB程序缺少安全设计导致黑客通过用户可攻击系统,用户或系统同时遭受损失。在重要的表单提交验证http头referer参数及在接口增加验证动态验证码、页面影藏参数一起提交。具体需要看业务来实现
SQL注入参数拼接导致所有参数都应采用预编译sql写法即可避免
文件上传未验证上传文件类型,可导致上传木马(webshell)根据需求验证文件类型,或排除以下文件后缀,jsp,jspx、php,vbs,ps1,exe,asp,aspx,sh,py,rb,html,htm、js、css
第三方库漏洞引用有漏洞的库。在架构项目时没有检查第三方库,引用的库版本太旧,或第三方库出了新漏洞没有及时升级。在引用库时应检查一下此库的最新版本,引用最新版本。
任意文件下载前端传入下载文件路径,服务端没有做路径验证,导致可下载服务端任意文件验证前端传入路径或修改程序设计,通过前端传文件ID由服务端去查到文件后再返回
注释代码未清除不需要功能在前端注释,被爬虫爬到此接口进行攻击。危害程度取决于注释功能的。注释功能 同时在前后端同步去除不必须功能代码,减少攻击面
业务缺陷业务实现时没有对业务需求做安全评估,没有采用安全设计去实现业务逻辑。信任前端数据输入,没有做验证导致。根据具体业务做分析,应避免逻辑绕过及对前端的数据做充分验证
用户密码泄露返回用户名和密码给前端,这是世界上最傻的安全问题用户密码永远不要返回给前端

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件下载漏洞是指在网站中,用户可以通过构造恶意请求,访问到本应该禁止访问的文件,从而导致敏感信息泄露的漏洞。下面是一个基于PHP.Mysql,apache的文件下载漏洞示例: ```php <?php // 从GET参数中获取要下载的文件名 $file = $_GET['file']; // 拼接文件路径 $filepath = "/var/www/html/uploads/".$file; // 下载文件 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($filepath)); header('Content-Length: ' . filesize($filepath)); readfile($filepath); ?> ``` 上面的代码中,用户可以通过构造恶意请求,访问到服务器上/uploads目录下的任意文件。攻击者只需要将`$_GET['file']`参数设置为`../../etc/passwd`,就可以下载服务器上的/etc/passwd文件,并获取敏感信息。 为了修复这个漏洞,我们需要对用户输入的数据进行过滤和验证,确保其符合预期的格式和内容。比如,可以使用PHP的`realpath`函数来获取文件的真实路径,以避免恶意请求访问到非法文件: ```php <?php // 从GET参数中获取要下载的文件名 $file = $_GET['file']; // 拼接文件路径 $filepath = "/var/www/html/uploads/".basename($file); // 判断文件是否存在 if (file_exists($filepath)) { // 获取文件的真实路径 $realpath = realpath($filepath); if (substr($realpath, 0, strlen("/var/www/html/uploads/")) === "/var/www/html/uploads/") { // 下载文件 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($filepath)); header('Content-Length: ' . filesize($filepath)); readfile($filepath); } else { echo "无法访问非法文件!"; } } else { echo "文件不存在!"; } ?> ``` 通过使用`realpath`函数获取文件的真实路径,并判断是否在/uploads目录下,可以避免恶意请求访问到非法文件,从而修复文件下载漏洞

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值