内容简介:首先定义本文所说的现代化网站. 现代化网站是指符合以下多个特征的对外服务.篇幅有限, 不再列举,但相信读者应该能理解笔者的意思.不属于现代化网站最典型的例子就是 下载cms,安装lnmp,直接安装网站程序.
首先定义本文所说的现代化网站. 现代化网站是指符合以下多个特征的对外服务.
- 储存,数据库,网站程序等服务器高度分离
- 实现现代化前端技术, 如三大框架, html5新api, websocket
- 基于虚拟化技术的服务部署
- 使用现代后端框架,如ssm,think5,gin,django
- 外部服务高度集成
- 多种客户端,包括Android,Ios,windows
篇幅有限, 不再列举,但相信读者应该能理解笔者的意思.
不属于现代化网站最典型的例子就是 下载cms,安装lnmp,直接安装网站程序.
现在渗透教程基本都是基于不属于现代化网站的假设(实际上我还没发现基于渗透现代化网站假设的教程)
现代化特征对渗透测试的影响
笔者按自己的思路逐个列举有影响的特征
CDN/反向代理
使用了CDN将会隐藏真实IP, 导致常规端口扫描,弱口令扫描全部失效.
但可以通过寻找真实ip来解决.
反向代理则无解, 甚至可能只把代理服务器暴露于公网.敏感服务全在内网
对绕过CDN这个问题, 已经有了一定的研究.有了安全工具, 如 fuckcdn
数据分离
上传文件服务器分离,将导致上传webshell技术失效, 很显然文件服务器是不可能执行webshell的. 上传危害最多只能达到上传html
websocket
之所以专门把websocket作为一点, 是因为感觉websocket属于盲区, burp,浏览器均不支持websocket的渗透测试.
新的h5 api
html5提供了新的api,但是这方面的安全问题还没有被开发人员重视.这个可以从hackone平台上的漏洞报告看出.例如 DOM Based XSS in www.hackerone.com via PostMessage .
postmessage
这类api的输入是不可控的,如果不进行控制, 就是安全问题.
前后端分离
使用三大框架(vue,react, angular)的前端, 对后端进行分离. 也就是不再将url参数直接渲染到html,而通过JavaScript操作.反射xss全部失效,常规储存xss在框架的安全性下也变得渺茫.
JavaScript操作带来的xss反而变为主流.这也对渗透测试人员阅读JavaScript代码带来了挑战
也带来了部分好处,由于在前端操作,后端暴露的接口将会更多.
后端框架
应用了框架后,简单注入全部失效,csrf部分失效, id=x
这种低级注入消失.出现注入的点趋向二次注入, 编码注入. sqlmap是不提供原生支持的.
外部服务接入
对某些功能不自行进行开发,使用其他公司的服务.这部分功能的安全性取决与该公司的安全水平, 不过真挖出漏洞就属于通用0day了.
由于对接入服务的理解,接入处反而容易出现问题, 比如未预料的异常.(接入开发: ???,这个问题你怎么不在服务上处理.服务开发: ???,这个你怎么不在接入处处理)
多服务端
提供了多平台客户端, 这就对渗透测试多平台渗透能力发出了挑战.
不但要会web,还要会安卓/ios渗透测试, 反编译(客户端总是会有一些未公开的api).甚至还有IOT
风控
好的风控系统 基本阻止了邮箱/短信轰炸.对需要爆破的漏洞也降低了危害.
无服务器
Sass(系统即服务), Fass(函数即服务)等各种服务公司不断涌现, 不需要购买服务器就能进行服务.可能出现刚拿下shell,想内网渗透,发现实际上服务是在某Sass上.或者发现服务api是在Fass上的,根本没有服务器
虚拟化
docker提供了优秀的服务分离,就算拿到了shell,也只是拿到了容器的shell. 容器虚拟化不一定安全,但是现在对这方面的研究还不是很多, 完全没有对绕过UAC的研究多.
对安全教程的思考
现在一些安全教程还是停留在旧时代, ' and 1=1
,
</x><script>alert(1)</script>
固然是基础,挖掘思路也很重要.
但是随着技术的发展, 渗透和开发技术也会走的更近, 新开发技术的爆发式增长,不可能像列中间件漏洞一样全部写出它们的渗透技术.就算有人写出来,等写出来黄花菜都凉了.
安全教程应该更强调编程, 而不是培养只会用扫描器的驻场工程师.令人欣慰的是现在年轻的渗透测试人员大部分都会编程,还不止一门(就笔者圈子来看).
对安全 工具 的思考
扫描器
随着技术的扩散,老式扫描器未来会面临失效.不支持浏览器模拟,只会抓a标签的扫描器, 对前后端分离无能为力. 基于流量和基于爬虫的扫描器会合并, 走向模拟获取流量进行扫描的模式
对app的扫描器目前不支持对web的渗透测试.
尾言
现在正是承前启后的时代,旧的开发技术未被淘汰,新的开发技术正在发展, 谁会在这个时代引领潮流, 或是被淘汰.让我们拭目以待吧
转载自: https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=50308
觉得文章写出了现在渗透测试这个行业遇到的种种问题。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 现代化网站的渗透测试
- 现代化的PHP-写好注释
- 现代化 Android Pie: 安全与隐私
- Dahlia:一个现代化的 React 框架
- 来!狂撸一款PHP现代化框架 (一)
- 用现代化的方式开发一个图片上传工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Designing Data-Intensive Applications
Martin Kleppmann / O'Reilly Media / 2017-4-2 / USD 44.99
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, w......一起来看看 《Designing Data-Intensive Applications》 这本书的介绍吧!