web安全常见漏洞_web漏洞挖掘

web安全常见漏洞_web漏洞挖掘常见Web漏洞小结1越权漏洞不同权限账户之间的存在越权访问检测抓去a用户功能链接,然后登录b用户对此链接进行访问抓去a用户功能链接,修改id为b的id,查看是否能看b的相关数据替换不同的cookie进行测试查看防范1服务器端必须对每个页面链接进行权限判断。2用户登陆后,服务器端不应再以客户端提交的用户身份信息为依据,而应以会话中服务端保存的已登陆的用户身份信息为准。3页面提交的资源标志与已登陆的用户身份进行匹配比对,然后判断其对当前链接是否有权限。4必须在服务器端对每个请求URL进行鉴

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

常见Web安全漏洞

1、越权漏洞

不同权限账户之间的存在越权访问

检测
抓去a用户功能链接,然后登录b用户对此链接进行访问
抓去a用户功能链接,修改id为b的id,查看是否能看b的相关数据
替换不同的cookie进行测试查看

防范
1服务器端必须对每个页面链接进行权限判断。
2用户登陆后,服务器端不应再以客户端提交的用户身份信息为依据,而应以会话中服务端保存的已登陆的用户身份信息为准。
3页面提交的资源标志与已登陆的用户身份进行匹配比对,然后判断其对当前链接是否有权限。
4必须在服务器端对每个请求URL进行鉴权,而不能仅仅通过客户端的菜单屏蔽或者按钮Disable来限制。

2、SQL注入

后台sql语句拼接了用户的输入,而且web应用程序对用户输入数据的合法性没有判断和过滤,前端传入后端的参数是攻击者可控的,攻击者通过构造不同的sql语句来实现对数据库的任意操作。

检测
对注入点进行测试,
单引号,双引号–>报错
And 1=1 and 1=2 ‘or ‘1’ = ‘1 ‘or ‘1’ = ‘2 两次web服务器响应不同
时间延时 sleep(5) 延迟响应
Get post 参数、cookie参数、http请求头
Sqlmap进行测试

防范
(1)预编译(PreparedStatement)(JSP)
SQL注入只对SQL语句的编译过程有破坏作用,而PreparedStatement已经预编译好了,执行阶段只是把输入串作为数据处理。而不再对SQL语句进行解析。因此也就避免了sql注入问题。
(2)PDO(PHP)
PDO对于解决SQL注入的原理也是基于预编译。
(3)使用正则表达式过滤,对用户输入的数据进行严格的检查,使用正则表达式对危险字符串进行过滤,这种方法是基于黑名单的过滤
(4)使用 Web 应用防火墙

报错注入–>传送门
宽字节注入–>传送门

3、XSS

攻击者在web页面插入恶意的Script代码,当用户浏览访问时,其中的script代码会被执行,从而达到恶意攻击。

检测
查找可能出现xss跨站的位置,搜索框、信息存储等
常用测试语句
查看源码,测试语句是否在系统响应HTML代码中输出。
可以输出的话进行xss测试

防范
对用户的输入(和URL参数)进行过滤,对输出进行html编码;对用户提交的所有内容进行过滤,对url中的参数进行过滤,过滤掉会导致脚本执行的相关内容;然后对动态输出到页面的内容进行html编码,使脚本无法在浏览器中执行。
Httponly

4、任意文件上传

攻击者上传web支持的动态脚本程序(asp,asp.net,php,jsp等)
Web程序对用户上传的类型不做检测,或者被绕过

检测
找到可以上传的地方,上传要求合理的合法文件,查看上传点是否可以使用,需要一些绕过姿势(大小写切换,00截断,抓包改类型等等),上传webshell,连刀。

防范
客户端检测:使用js对上传图片检测,包括文件大小,文件扩展名,文件类型等
服务端检测:对文件大小,文件路径,文件扩展名,文件类型,文件内容检测,对文件重命名等。
服务器端上传目录设置不可执行权限。
检查网站有没有文件解析漏洞和文件包含漏洞。
将文件上传到单独的文件服务器,并且单独设置文件服务器的域名。
文件上传过滤和绕过–>传送门

4.1、任意文件读取/下载漏洞

检测:
通过web漏洞扫描工具对网站实施扫描可能发现任意文件读取/下载漏洞,发送一系列”…/”字符来遍历高层目录,并且尝试找到系统的配置文件或者系统中存在的敏感文件。
也可通过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造…/…/…/ WEB-INF/web.xml等,然后查看其是否可被读取或者下载出来。
有些WAF会过滤…/,可以构造 /.%252e/.%252e/.%252e/ , %25对应的是%,%2e对应的是.,所以 .%252e/ 对应的是 …/

防范
1对用户传过来的文件名参数进行统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
2更新其中间件的版本,可能是因为中间件的版本过低。
3 web应用程序可以使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,使其即使越权也在访问目录之内。
4用户下载文件之前需要进行权限判断
5 用户下载时需提交对应ID
6不允许提供目录遍历服务。

5、目录遍历攻击

网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以为进一步入侵网站做准备。

检测
爬行,或者暴力激活成功教程系统目录结构。
在url后加常规目录,看是否被列出来
可以利用web漏洞扫描器扫描web应用进行检测,也可通过搜索,网站标题包含 “index of” 关键词的网站进行访问

防范
对用户传过来的参数名进行编码,对文件类型进行白名单控制,拒绝恶意字符或空字符。

IIS中关闭目录浏览功能:在IIS的网站属性中,勾去“目录浏览”选项,重启IIS。

Apache中关闭目录浏览功能:打开Apache配置文件httpd.conf,查找“Options Indexes FollowSymLinks”,修改为“ Options -Indexes”(减号表示取消,保存退出,重启Apache)。

Nginx 中默认不会开启目录浏览功能,若您发现当前已开启该功能,可以编辑nginx.conf文件,删除如下两行:autoindex on;autoindex_exact_size on,然后重启Nginx。

6、关键会话重放攻击

不断恶意或欺诈性地重复一个有效的数据包,重放攻击者可以拦截并重复发该数据到服务端,服务器端未对用户提交的数据包重放进行有效限制。

检测
抓包抓取登录请求,获得用户和密码参数
密码字典 暴力激活成功教程

防范
添加token、时间戳、图片验证码

7、CSRF

攻击者以用户的身份完成操作达到各种目的

检测
登录网站,使用bp构造csrf poc 保存在html
发送到另一台服务器,访问html查看是否可以实现html功能

防范
验证 http referer字段,看其请求来源
在请求地址中添加token并验证
在http头中自定义属性并验证

8、明文传输

对系统用户口令等机密信息的保护不足,攻击者利用攻击工具,从网络上窃取合法用户的口令数据,从而登录系统执行非法操作。

检测
使用工具抓取关于用户的数据包
查看相关参数是否做加密处理

防范
对密码信息进行加密处理
使用加密算法 不使用易激活成功教程的加密方式

9、文件包含

注入一段用户能控制的脚本或代码,并让服务器端执行,对要包含的文件变量名没有进行检测或初始化。
Include include_once require require_once
检测
在文件包含的地方,包含攻击者的文件进行测试

防范
尽量不使用文件包含
使用include,如include(‘test.php’)
包含文件验证–是否为白名单,白名单过滤
路径限制,进制目录跳转字符
关闭 allow_url_include=On(远程文件包含)、allow_url_fopen=On(本地文件包含)
文件包含–>传送门

10、业务逻辑漏洞

程序逻辑不严谨或太复杂,导致一些逻辑分支不能够正常处理或处理错误。

检测
一般在任意密码修改(没有密码验证),越权访问,密码找回,交易支付金额,进行抓包重放查看是否与逻辑不符合。

防范
业务流程需要有必要的控制参数,同时避免控制参数被绕过。
防止绕过流程节点和检查参考(如token等)
不需要用户操作或访问的数据避免发送到客户端(如验证码发送给客户端)
验证所有输入(数字的边界、正负值等)
防范资源消耗攻击(如短信等)、拒绝服务攻击(大规模数据查询,如搜索通配符)等

11、命令执行

用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,攻击者的输入作为系统命令的参数拼接到命令行中。

检测
在浏览器输入 拼接&、 | 、|| (命令连接符)

防范
进行命令执行的函数或者方法之前,都参数进行过滤
参数的值尽量用引号包裹,并在拼接前调用addslashes进行转义
禁止能执行系统命令的函数,可在php的配置文件中设置 disable_functions
命令执行和代码执行–>传送门

12、代码执行

应用程序在调用一些能够将字符串转换为代码的函数时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。

检测
源码,代码审计

防范
保证用户不能接触eval()函数,使用正则严格判断
字符串使用单引号包裹,并在插入前进行 addslashes()
对preg_replace()放弃使用e修饰符,保证第二个参数中对于正则匹配出的对象,用单引号包裹。
命令执行和代码执行–>传送门

13、SSRF

由攻击者构造请求,有服务端发起请求的安全漏洞,本质是信息泄露。

检测
通过分享功能
转码服务
在线翻译
图片加载与下载
图片文章收藏
关键字: share wap url link src source target u 3g display sourceURl imageURL domain

防御
限制请求的端口只能为web端口,只允许访问http,https的请求(禁掉file协议)
限制不能访问内网的ip,以防止对内网进行攻击
屏蔽返回的详细信息。
SSRF–>传送门

14、XXE

在应用程序解析XML输入时,XML文件的解析依赖libxml 库,而 libxml2.9 以前的版本默认支持并开启了对外部实体的引用,服务端解析用户提交的XML文件时,未对XML文件引用的外部实体(含外部一般实体和外部参数实体)做合适的处理,并且实体的URL支持 file:// 和 ftp:// 等协议,导致可加载恶意外部文件 和 代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。

检测
通过手工篡改网站中xml实体中的头部,加入相关的读取文件或者是链接,或者是命令执行等,如file:///$path/file.txt;http://url/file.txt;看看能否显示出来

防范
XML解析库在调用时严格禁止对外部实体的解析。
使用开发语言提供的禁用外部实体的方法
过滤用户提交的XML数据
XXE(XML外部实体注入)漏洞–>传送门

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191407.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • 高通平台8953 Linux DTS(Device Tree Source)设备树详解之三(高通MSM8953 android7.1实例分析篇)[通俗易懂]

    高通平台8953 Linux DTS(Device Tree Source)设备树详解之三(高通MSM8953 android7.1实例分析篇)[通俗易懂]高通平台8953 LinuxDTS(DeviceTreeSource)设备树详解之三(高通MSM8953android7.1实例分析篇)本系列导航:高通平台8953 LinuxDTS(DeviceTreeSource)设备树详解之一(背景基础知识篇)高通平台8953 LinuxDTS(DeviceTreeSource)设备树详解之二(DTS设备树匹配过程)高通平台8953 L…

    2022年10月18日
  • namecheap mx记录配置邮箱

    namecheap mx记录配置邮箱

  • navicate 15.0.23激活码【注册码】

    navicate 15.0.23激活码【注册码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • Java对象数组

    Java对象数组所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。 对象数组的声明先定义,再开辟空间类名称对象数组名[]=null;对象数组名=new类名称[长度]; 定义并开辟数组类名称对象数…

  • 分布式Session一致性入门简介

    Session简介是什么?Session在网络中表示“会话控制”,用于存储特定用户所需的属性和其他的配置信息;Session表示一个特定的时间间隔,可以指用户从登陆系统到注销退出系统之家的时间。为什么出现?因为http 是一种无状态协议,如果没有Session的话,服务器无法识别请求是否来自同一个用户! 在一些业务场景中需要知道前面的操作和后台的操作是不是同一个用户…

  • 基础工具之消息队列、线程池、缓冲区抽象、事件循环和日志实现

    正所谓“工欲善其事,必先利其器”,我们在实现通信设计任务的过程中需要一些基础工具来帮助我们搭建部分基础组件,这些基础工具包括消息队列,线程池,缓冲区抽象,事件循环和日志工具。接下来对这部分基础工具进

    2021年12月28日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号