用户
搜索

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

2019-2-28 11:48| 发布者: 桃子Tz| 查看: 192| 评论: 0|原作者: 我是salf


前言


首先定义本文所说的现代化网站. 现代化网站是指符合以下多个特征的对外服务.




  • 储存,数据库,网站程序等服务器高度分离




  • 实现现代化前端技术, 如三大框架, 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的渗透测试.


尾言


现在正是承前启后的时代,旧的开发技术未被淘汰,新的开发技术正在发展, 谁会在这个时代引领潮流, 或是被淘汰.让我们拭目以待吧



鲜花
鲜花
握手
握手
雷人
雷人
路过
路过
鸡蛋
鸡蛋