挖洞技巧-扩展攻击面

0x00 前言

在挖洞过程中,我们经常忽略一些攻击面,但是这些被忽略的攻击面很大概率就是存在漏洞的。因为比较明显的攻击面被大多数人来回测试了几次,因此我们需要寻找一些很少人挖的地方进行挖掘。

0x01 更多的资产

可以通过空间引擎搜索一些特殊的cookie以及header头来发现目标更多资产(也以此搜索到同类的网站确认使用什么系统)。

可以通过改变user-agent、host、甚至通过来源ip(伪造xxf)发现更多的系统,因为很多网站根据这些来展示不同的内容。

0x02 更深层的操作

不太懂计算机的人,他能掌控一个网站攻击面是哪些?仅仅是网站链接以及网页里面的表单。而web安全人员直接拦截数据包,这样就能够操作更多的参数并且对参数的值也能完全操纵了。

不太关注app安全的web安全人员测试app的时候能够掌控的攻击同样比较少,比如一款app,他发送的数据的结构体是未知的,而且进行加密,加密也足够复杂,你没办法操纵数据包了,只能在app中点点进行测试,操作的地方极为有限。

但是我们对移动端熟悉的话,我们可以寻找功能的关键函数,进行hook,就很方便测试了。比如我们将自己的uid修改成别人的uid,这样进行测试越权。

当然甚至在内存确认uid存储的地方,然后进行修改也是可以的。

0x03 更野的权限

其实挖洞也是有起跑线的。

比如面对一个需要账号登陆的系统,别人有账号的一顿嘎嘎挖,而你注册了一下,发现注册条件比较高没办法注册,因为没有账号仅仅测试一些很少不需要账号权限的功能,简单测试一下就放弃了。

那他是怎么弄到账号的?比如最常规的就是搜集用户名爆破,或者就去github、搜素引擎进行搜索,实在不行就只去买了。

最后只能套关系,看能否借到账号,听闻一个人为了挖掘别人的学校漏洞,陪目标学校的学生玩英雄联盟,最后借到这个学校的vpn账号,进入内网一顿操作。这挖的是漏洞吗?不,是人情世故。

0x04 更飘的设计

在测试的时候,如果我们一直思考网站的设计,总是能够发现一些攻击面的。

比如我们看到这个路径admin/config_b.shtml,是不是会去设想还有admin/config_a.shtml、admin/config_c.shtml路径。

比如sql注入遇到root权限,并且可以写,但是不知道路径,发现数据库还有几个库,这些库代表其他网站在使用,而且极有可能是在同一台服务器上,于是把数据库名当成域名前缀,发现是存在这个网站,并且能够爆出绝对路径的,最终getshell。

比如我们遇到api,他总是会返回一些参数,我们是否把这些返回参数当成请求参数去请求试试看,是否会有不同的返回?

比如远古时代,有一些黑客遇到只能爆破字段的sql注入情况,总喜欢把这个网站的login表单的参数当成数据库字段名去爆破。

0x05 更懂的开发

在渗透测试中,遇到黑盒测试,如果你了解开发的如何开发网站的,对你的渗透绝对是有很大的帮助的。

比如遇到一个社区,可以进行发帖,可以查看,需要测试xss。初看一下,这个攻击面就比较少,发完帖子就点击打开一下帖子是否逃逸尖括号或者单双引号之类的。

但是在开发的逻辑不仅仅这些,比如这些帖子是会在后台展示方便管理员展示、检测到发敏感内容管理就会在触发页面展示敏感内容、检测到你灌水就会在灌水页面展示灌水内容。这时候你的帖子进入到这些逻辑的时候,这些地方恰好没有做xss处理,就能够触发xss。

比如测试sql注入的时候,有些人习惯加上xxf头,然后注入一些单双引号,就是猜测开发会使用xxf的作为用户ip,然后插入到数据库里面记录访问情况。

比如在url中注入``,后面对这些url log处理操作的时候,可能会被触发命令执行。

比如开发在处理get、post、head请求的逻辑都不太一样的,遇到一些api可以更换请求方法去请求看是否有新突破。同理,有些喜欢把json转成xml测试,xml的地方转成json去测试。

0x06 总结

这里从各个角度总结了扩展攻击面的方法,其中一些列举的手段代价是比较高的,但也是很难被发现原因(危机就是转机)。

3 Likes

写的不错

来学习一下