漏洞成因、原理、攻击的方法、防范的方法、攻击与防范的技巧。
SSRF
SSRF(服务器端请求伪造)
- 成因:其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据
数据流:攻击者----->服务器---->目标地址(一般用来在外网探测或攻击内网服务)
- 原理:根据后台使用的函数的不同,对应的影响和利用方法又有不一样
PHP中下面函数的使用不当会导致SSRF:
PHP中下面函数的使用不当会导致SSRF:
file_ get_ contents()
fsockopen()
curl_exec() : 执行一个cURL会话
- 防范技巧:
如果一定要通过后台服务器远程去对用户指定(“或者预埋在前端的请求”)的地址进行资源请求,则请做好目标地址的过滤。
- 限制协议为HTTP、HTTPS
- 禁止30x跳转
- 设置URL白名单或者限制内网IP
- 攻击防范技巧方法:
Curl 导致 SSRF 及 WAF 绕过方式
SSRF原理与绕过姿势
互联网上有大量相关的材料
URL重定向
成因:用户进行了不安全的url跳转
原理:后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话就可能发生"跳错对象"的问题
攻击者攻击的方法:
url跳转比较直接的危害是:
–>钓鱼,既攻击者使用漏洞方的域名(比如一个比较出名的公司域名往往会让用户放心的点击)做掩盖,而最终跳转的确实钓鱼网站
防范的方法
- 代码固定跳转地址,不让用户控制变量
- 跳转目标地址采用白名单映射机制
比如1代表auth.landgrey.me,2代表www.landgrey.me,其它不做任何动作 - 合理充分的校验校验跳转的目标地址,非己方地址时告知用户跳转风险
技巧:
xxe
越权(Over Peremission)
简介:
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作,在实际情况中垂直越权很复杂。
成因:
权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
原理:
越权漏洞属于逻辑漏洞逻辑, 是由于权限校验的逻辑不严谨导致的。
防范方法:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,谨慎对待前前端传进来的条件;
文件上传
成因:
因业务所需,很多web服务器都有文件上传接口,比如:
1.头像上传
2.上传文件附件
后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,采用了有缺陷的措施
原理:
攻击者通过一些手段绕过网站设置的安全措施从而上传一些恶意文件(如 一句话木马),从而通过该恶意文件控制web后台。
漏洞测试流程
- 在文件上传处进行正常的文件上传,查看返回结果(路径,提示等)
- 尝试上传不同类型的 ’恶意文件‘ ,查看结果。
- 查看源码,看是否在前端上进行了限制。可以绕过。
- 尝试不同的方式进行绕过:黑白名单/MIME类型绕过/目录0x00截断绕过等。
- 猜测结合其它漏洞(比如敏感信息泄露)得到木马路径,连接测试。
防范措施:
–验证文件类型、后缀名、大小;
–验证文件的上传方式;
–对文件进行一定复杂的重命名;
–不要暴露文件上传后的路径;
–上传文件的目录进行权限控制(只读),限制权限执行带来的危害。