Web安全漏洞笔记整合

高危漏洞

1.Struts2代码执行漏洞:struts2就是一个框架,在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令

Jakarta插件:一个开源项目,包括Tomcat、Struts等
HTTP请求头:比如浏览器向服务器发送请求时,必须声明请求类型,这个请求类型就包含在HTTP请求头中
Content-Type: <. Meta http-equiv=“Content-Type” Content=“text/html; Charset=gb2312” .>其中Content-Type Content内容 Type格式,合起来就是内容格式

2.webconsole.html 文件未删除

3.启用了Struts 2调试模式

4.OpenSSL心脏出血漏洞:OpenSSL的源代码中存在的漏洞,可以让攻击者获得服务器上64K内存中的数据内容。原理是OpenSSL引入了heartbeat机制来维持TLS链接的长期存在,但在代码中没有做边界检测,导致攻击者可以获得TLS链接对端(可以是服务器,也可以是客户端)内存中的一些数据。

OpenSSL:一种网络通信的安全协议
TLS链接:加在HTTP 和 TCP 之间,这个 TLS 协商了一个对称密钥来进行 HTTP 加密(https)

5.GNU Bash代码执行漏洞:通过构造的 SHELLOPTS、PS4 环境变量,本地用户利用此漏洞可用 root 权限执行任意命令。针对使用了CGI技术的系统。

GNU Bash:是一个为GNU计划编写的Unix shell,广泛使用在Linux系统内。
CGI:按此标准编写的外部扩展应用可处理客户端输入的数据,完成客户端与服务器的交互。

6.HTTP.sys代码执行漏洞:这个漏洞并不是针对IIS的,而是针对windows操作系统的。漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。

IIS:互联网信息服务,是一种Web(网页)服务组件。

7.OpenSSL SSL3.0加密协议信息泄露漏洞(POODLE):SSL3.0是已过时且不安全的协议,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代,因为兼容性原因,大多数的TLS实现依然兼容SSL3.0。 由于SSL 3.0使用的CBC块加密的实现存在漏洞,攻击者可以成功破解SSL连接的加密信息,比如获取用户cookie数据。

CBC:一种加密模式(EBC/CBC/PCBC/CFB/OFB/CTR/), CBC是 密码分组链接模式。

手工测试

1.任意用户注册:使用不存在的邮箱、手机号等信息注册帐号,若注册成功则存在漏洞
2.单因素认证:系统只使用静态的用户名+密码进行认证,不具备短信验证码或USB数字证书
3.记住密码功能:系统不应该有“记住密码”功能
4.多登录入口:不能存在多个登录入口
5.管理后台不应放在外网:系统前台后台需要分离,后台需要放在公司内网
6.登录表单自动完成保护:password字段必须设置autocomplete属性

autocomplete:规定表单是否应该启用自动完成功能

7.认证表单输入格式校验:检查长度、字符复杂度
8.用户名复杂度:admin、administrator、root、system、test、等简单的用户名都不能存在
9.弱口令:也就是弱密码,‘123’、‘abc’ 等 ,
10.图形验证码:图形验证码必须由后端完全控制
11.短信验证码:必须由后端完全控制,且不能被爆破。
12.中间件版本信息泄漏:必须对404、403错误设置统一的错误界面。数据包header不能有中间件版本信息

中间件:一种软件,为应用提供操作系统功能范围外的服务。(比如:Tomcat)
404错误:没有找到界面
403错误:资源不可用,(服务器理解客户的请求,但拒绝处理它)

13.Flash跨域访问:a域名的swf文件访问b域名的swf文件,需要b域名的目录里存在crossdomain.xml文件,且里边设置了允许a域名访问,所以crossdomain.xml里的allow-access-from标签的domain属性不能为* && allow-http-request-headers-from属性不能为* && site-control标签的permitted-cross-domain-policies属性不能为all
14.Silverlights跨域访问:类似于flash跨域访问,但是配置文件为 ClientAccessPolicy.xml ,domain的属性不能为 *
15.HTML5 CORS跨域资源共享权限设置不严格:Access-Control-Allow-Origin(规定了哪个域名可以发送请求) 属性不能为 * 。

CORS:跨域资源共享,是一种 AJAX 跨域请求资源的方式

16.不安全的HTTP方法:可能会在Web 服务器上上传、修改或删除Web 页面、脚本和文件。
17.敏感信息明文传输:比如账号密码的明文传输,可以通过抓包获取。
18.CSRF用户请求伪造:XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求。比如看看QQ 空间,蹦出个包含中奖或者问卷调查链接的窗口。
19.登录消息中间人欺骗攻击:当数据离开一个端点前往另一个端点时,传输的期间便是对数据失去控制的时候。当一个攻击者将自己置于两个端点并试图截获或/和阻碍数据传输时,便称为中间人(MiTM)攻击。简单说就是“窃听”。(分为:嗅探、数据包注入、会话劫持和SSL剥离 四种类型)
20.会话标识未更新:应用服务器(如 Tomcat)的 JSessionId 没有更新。

回话标识符:服务器发给客户一个会话ID,当客户再访问服务器时就带着这个ID,服务器就凭着这个唯一的ID来识别用户 (比如SessionID)

21.会话标识不应写入URL:URL不能存在会话ID(比如sessionid)
22.会话标识唯一性:每次登陆,sessionid、token不能相同且不能有明显规律
23.密码不应返回前端:response 数据包不能出现密码
24.登录错误消息凭证枚举:不可以返回“账户名错误”或“密码错误”,应该返回“账户名或密码错误”
25.修改密码无需输入原密码:如题
26.密码复杂度:密码不能太简单,要限制长度、大小写、数字、特殊符号等
27.任意用户密码重置:登陆后的“密码修改”功能,不能通过改包的方式修改其他用户的密码
28.业务流程绕过:重置密码时,输入原密码/短信验证/好友验证 不能被改包的方式绕过。
29.水平越权:相同权限的用户之间不能操作对方的数据。

越权:用户A对用户B信息进行增删查改

30.垂直越权:web应用没有做用户权限控制,或者只是在菜单上做了权限控制,导致恶意用户只要猜测到其他管理页面的URL,就可以访问或者控制其他角色拥有的数据或者页面,达到权限提升的目的。
31.Cookies属性:HttpOnly、Secure、Domain、Path和Expires属性 必须有合理的值

HttpOnly:设置true后js将无法读取cookie,防止xss攻击
Secure:指示浏览器仅通过 HTTPS 连接传回 cookie。这可以确保 cookie ID 是安全的,且仅用于使用 HTTPS 的网站。如果启用此功能,则 HTTP 上的会话 Cookie 将不再起作用。
Domain:可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”。
Path:Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。
Expires:coolie的生存期,最长不能超过3个月。

32.参数伪造:数据包中不能有明显的 yes/no 、 true/false 等字样。
33.危险字符输入过滤:表单字段不能带有以下字符

;

"
<>
()
,
script
svg
alert
confirm
prompt
onload
onmouseover
onfocus
onerror
xss

34.危险字符串输出编码:输出危险字符串时必须进行编码转换
35.HTTP参数污染:给一个参数赋上两个或两个以上的值。现行的HTTP标准没有提及在遇到多个输入值给相同的参数赋值时应该怎样处理。因此web程序组件在遇到这类问题时采取的方法也不完全相同。

Http参数:比如 www.baidu.com/s?tn=baidusite&word=usa&word=china 时,此时给需要搜索的关键字,即参数word赋了两个值,分别为usa和china,可见百度会接受第一个参数(即usa)而放弃第二个参数(即china)

36.文件上传漏洞:用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等
37.任意文件下载:必须对用户可以下载的文件做限制,比如不能下载web业务的代码、数据库配置信息等。
38.邮件炸弹:密码找回、帐号注册 时,填写的邮箱,不能够无限制的发送邮件。
39.二次认证:在重要操作时(比如退款)时,必须要有二次认证(比如短信验证码)。
40.二次认证隐藏域敏感数据存储:不能通过input type=hidden 来传递敏感信息。
41.同一用户每日业务订购次数限定:如题,避免滥用系统资源。
42.审计权限分离:系统必须具备日志查看功能,且只有管理员才能查看。
43.敏感信息模糊化:数据包中的敏感信息需要被加密。
44.数据遍历:A用户查看自己的头像,会用到提交的参数来指明文件名比如:http://www.nuanyue.com/getfile=image.jgp ,当服务器处理传送过来的image.jpg文件名后,Web应用程序即会自动添加完整路径,形如“d://site/images/image.jpg”,将读取的内容返回给访问者。但是由于文件名可以任意更改而服务器支持“~/”,“…/”等特殊符号的目录回溯,从而使攻击者越权访问或者覆盖敏感数据。
45. 超时退出:当浏览器处于“未激活”状态(比如最小化)一定时间后,用户应该被注销。
46.浏览器窗口关闭事件监测与处理:当抓到含有会话ID的数据包后关闭浏览器,再次发包,这个包必须是无效的。
47.登录错误锁定机制:账号密码输入错误5次后,今天这个账号就会被冻结。

中间件泄露

1.安装文件未删除:需要删除中间件的默认安装文件。
2.Tomcat管理控制台弱口令

管理控制台默认端口:8080
管理控制台默认URL路径:/manager/html
管理控制台默认URL路径:/admin
常见用户:admin/manage/manager/tomcat/role1/both
常见密码:admin/manage/manager/tomcat/role1/both/s3cret

3.Weblogic管理控制台弱口令

管理控制台默认端口:http协议为7001,https协议为7002
管理控制台默认URL路径:/console
管理控制台默认URL路径:console/login/LoginForm.jsp
常见用户:weblogic/system/portaladmin/guest/admin/manage/manager
常见密码:weblogic/system/portaladmin/guest/admin/manage/manager

4.WebSphere管理控制台弱口令

管理控制台默认端口:9060或9043
管理控制台默认URL路径:/ibm/console
常见用户:admin/websphere/manager/manage/system
常见密码:admin/websphere/manager/manage/system

5.Jboss管理控制台弱口令

管理控制台默认端口:9990或8080
管理控制台默认URL路径:/
管理控制台默认URL路径:/jmx-console
管理控制台默认URL路径:/web-console
管理控制台默认URL路径:/invoker/JMXInvokerServlet
常见用户:admin/jboss/manager/manage/system
常见密码:admin/jboss/manager/manage/system

6.Resin管理控制台弱口令

管理控制台默认端口:http协议为80或8080,https协议为8443
管理控制台默认URL路径:/resin-admin
常见用户:admin/resin/manager/manage/system
常见密码:admin/resin/manager/manage/system

7.JOnAS管理控制台弱口令

管理控制台默认端口:9000
管理控制台默认URL路径:/jonasAdmin
常见用户:admin/jonas/jadmin/manager/manage/system/tomcat
常见密码:admin/jonas/jadmin/manager/manage/system/tomcat

8.GlassFish管理控制台弱口令

管理控制台默认端口:http协议为4848,https协议为8181
管理控制台默认URL路径:/common/index.jsf
常见用户:admin/glassfish/manager/manage/system
常见密码:admin/adminadmin/glassfish/manager/manage/system

9.Java反序列化漏洞:序列化就是把对象的状态信息转换为字节序列,反序列化就是把字节序列转还原成对象。

序列化例子:淘宝每年都会有定时抢购的活动,很多用户会提前登录等待,长时间不进行操作,一致保存在内存中,而到达指定时刻,几十万用户并发访问,就可能会有几十万个session,内存可能吃不消。这时就需要进行对象的活化、钝化,让其在闲置的时候离开内存,将信息保存至硬盘,等要用的时候,就重新加载进内存。

10.其他通用漏洞扫描:使用Appscan、WVS进行漏洞扫描

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值