对现代化网站的渗透测试的思考

栏目: 编程工具 · 发布时间: 4年前

内容简介:首先定义本文所说的现代化网站. 现代化网站是指符合以下多个特征的对外服务.篇幅有限, 不再列举,但相信读者应该能理解笔者的意思.不属于现代化网站最典型的例子就是 下载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

觉得文章写出了现在渗透测试这个行业遇到的种种问题。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件预构艺术(中文版)

软件预构艺术(中文版)

Ken Pugh / O'Reilly Taiwan公司 / 东南大学 / 2010-6 / 26.00元

利用经验累积而得到的洞察力开发新的解决方案被称为预构。透过重构而获得的专业知识也属于这类经验,而预构的词源即重构。重构是修改程序或软件系统内部结构的实践,以此在保留其现有行为的基础上改良设计。重构的原因有多种:方便后期增加功能、提高可维护性、提升性能。 本书作者是经验老道的软件开发人员。书中,作者运用他个人和其他众多开发人员的丰富经验,展示由其推衍而得的各项实践方针。这些方针把优秀的开发人员......一起来看看 《软件预构艺术(中文版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具