标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-3336] 作者: 浩丶轩 发表于: [2023-09-08]
本文共 [52] 位读者顶过
Web应用程序安全与风险
[出自:jiwo.org] 1.web发展历程
静态内容阶段(HTML) CGI程序阶段(增加了APA接口,可以动态) 脚本语言阶段(ASP,PHP,JSP等) 瘦客户端应用阶段(独立于WEB服务器的应用服务器) RIA应用阶段(DHTML+AJAX可以不用刷新功能内容可变) 移动WEB应用阶段(安卓。Ios )
2.常见的WEB应用程序漏洞
跨站脚本漏洞 弱口令漏洞 SQL注入漏洞 密码重用漏洞 任意文件上传漏洞 密码泄露 远程代码执行漏洞 源代码信息泄露 任意文件下载漏洞 存在入侵痕迹 越权访问 登陆可暴力猜解漏洞 旁注漏洞 文件任意写入漏洞 ……
3.核心安全问题和因素
1.核心的安全问题: 用户可向服务器端应用提交任意输入
2.关键问题因素 不成熟的安全意识 独立开发 欺骗性的简化 迅速发展的威胁形势 资源与时间限制 技术上强其所难 对功能需求不对增强
3.新的安全边界 安全边界向用户端转移
在web应用程序出现之前 主要在网络边界上抵御外部攻击,保护这个边界需要对其提供服务进行强化打补丁,设置防火墙。
在web应用程序出现之后 用户要访问应用程序,边界防火墙一定要允许其通过HTTP/HTTPS连接内部服务器,应用程序要实现其功能,必须允许其连接服务器来支持后端系统、数据库、大型主机、金融与后勤系统。
如果存在漏洞,只要提交专门设计的数据就可以公婆组织的核心后端系统,这些数据就像正常,良性数据流一样,穿透组织的所有防御 所以要在应用程序内部执行防御措施 第三方小部件、以及很多跨域集成技术,让服务器端的安全边界跨越了组织本身的边界。
小结 应用程序使用SSL仅仅表示网络其他用户无法查看修改攻击者传送的数据 SSL无法阻止攻击者向服务器提交专门设计的输入 攻击者控制着SSL通道终端,可以向服务器发任何内容
4.做一个有良心的白帽子
1、腾讯http://security. tencent. com 2、网易http://aq. 163. com 3、京东http://security. jd. com 4、百度http/sec. baidu. com 5、补天https://www. but ian. net/ 6、漏洞银行https://www. bugbank. cn 7、Sebug http://sebug. net/ 8.、freebuf http://www. freebuf. com/ 9、wooyun 镜像http://www.anquan.us 10、全球黑客攻防学习站点https://link-base.org 攻防学习网址导航 1、安全圈https://www.anquanquan.info/ HACKED SAFE Hacked safe 众测平台: 漏洞盒子:www.vulbox.com CNVD众测平台:http://zc.cnvd.org.cn
5.渗透测试基本流程
渗透测试流程 0.授权 1.信息收集 2.扫描漏洞 3.漏洞利用 4.提权 5.渗透测试报告
web请求流程与HTTP方法刨析
1.HTTP
HTTP超文本传输协议,是访问万维网使用的核心通信协议,也是今天所有web应用程序使用的通信协议。
HTTP使用一种用于消息的模型:客户端发送一条请求信息,服务端返回一条响应消息。 该协议基本上不需要连接,虽然HTTP使用有状态的TCP协议作为他的传输机制,但是每次请求和响应都会自动完成,并且可能使用不同的TCP连接。
1.1HTTP请求
HTTP请求实例: GET /auth/488/YourDetails.ashx?uid=129 HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Referer: https://mdsec.net/auth/488/Home.ashx Accept-Language: zh-cn,zh;q=0.5 User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WDW64; Trident/4.0; SLCC2;. NET CLR 2.0.50727;. NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.OC; InfoPath.3; .NET4.OE; FDM;。NET CLR 1.1.4322) Accept-Encoding: gzip, deflate Host: mdsec.net Connection: Keep-Alive Cookie: SessionId=5870C7lF3FD4968935CDB6682E545476
HTTP请求实例分析 get get:主要作用是从web服务器获取一个资源,存在一个名为uid、值为129的参数;HTTP1.1协议版本(HTTP1.1版本必须使用host请求头) Accept Accept表示浏览器支持的MIME类型。
MIME类型分别是:text/html、application/xhtml+xml、application/xml 和 / text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的; text/html:表示 html 文档; Application:用于传输应用程序数据或者二进制数据; application/xhtml+xml表示 xhtml 文档; application/xml表示 xml 文档 */*表示支持任何类型 q:表示权重:如果没有则默认为1,表示优先这些类型。实例中0.9 表示前面都没有就用这个,最后的 0.8 表示如果都没有,那么任意的类型都行。 q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容,若没有指定 q 值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型。 Referer Referer: 用于表示发出请求的原始URL(例如,因为用户单击页面上的一个链接) (可防下载、盗链、判断非法链接) Accept-Language 表示浏览器支持的语言:zh-cn表示简体中文、zh表示中文;q表示权重系数。 User-Agent User-agent消息头提供与浏览器或其他生成请求的客户端软件有关的信息 HOST 用来指定被访问的完整url中的主机名。 如果多个站点以同一服务器为主机就需要使用host主机头。 Accept-Encoding 表示浏览器支持的压缩编码,如:gzip和deflate Cookie 用于提交服务器向客户端发布的其他参数 Connection 表示持久的客户端与服务连接。 Close和keep Close较好表示获取到数据后服务器与客户端断开 Keep用户量大会出问题 Upgrade-Insecure-Requests: 1 该指令用于让浏览器自动升级请求从http到https,用于大量包含http资源的http网页直接升级到https而不会报错.简洁的来讲,就相当于在http和https之间起的一个过渡作用。 X_FORWARDED_FOR 是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
1.2HTTP响应
HTTP响应实例
|