从插件入手:挖掘WordPress站点的“后入式BUG”

安全 应用安全
越是扫不出的地方,越有可能发现有趣的点。而最容易出现非官方,有bug的地方就是插件、自定义插件、第三方功能了。

前言

当任务目标是一个wordpress站点的时候,是否让你感到过头大?wpscan扫了半天,却没有任何有利用价值的bug,这时候就拍拍屁股走人了?

[[251259]]

遇WordPress头大?让我们从插件入手!

流行框架一般不会有什么太大的漏洞,顶多根据少有的特性接口找到一些可以利用的数据,比如用户的基础信息:ID、名称、邮箱等,为潜在的爆破登陆做轻微的贡献。

NO,这时候更应该深入,越是扫不出的地方,越有可能发现有趣的点。而最容易出现非官方,有bug的地方就是插件、自定义插件、第三方功能了。

因此,在面对大型框架时,我们的入手目标就是“一般工具扫不出、普遍站点不一定有,根据管理员目的后来添加的,但混入站点拥有一定权限和功能的”漏洞点。

也就是去寻找笔者所戏称的“后入式BUG”。

寻找plugins的蛛丝马迹

总有人说,拿到一个目标是标准化框架,让人看着就觉得没什么容易下手测试的地方。其实测试的地方是有的,大佬和小白们的方式却略有不同。

1. 工具扫描

使用工具扫描总是最轻松的,基础信息刺探、简单的资产挖掘,甚至某些心大未修复的捡漏、备份文件暴露,特殊路径挖掘等,都能靠扫描器就直接扫出来。但轻松是一方面,另一方面你应该也意识到了,使用工具拼的只是带宽和时间,你的任务入手时间,扫描持续时间,扫描完成程度,规则广泛程度,报告书写速度,都会影响“你与别人谁能拿到奖金”的结果。而初入安全行业,偷懒不进去不学习的人,都停步在了这里。

2. 手工审计

扫描捡漏之余,一般才是大牛们开始发力的真正比武场。SRC排名靠前的师傅,据我认识的就有几个已经自己写出自动化开始做项目了。你用“开源扫描器+手工复测+疯狂写报告”跟他们拼?还是歇歇吧哈哈,他们早直接用SRC的API提交了,从SCAN->TEST->POC->GETSHELL->REPORT一条龙服务。

从前我不相信这个世界有龙,直到我看到了大佬们自己写的“日站一条龙”框架……而大佬们在抢走了第一波饭菜的时候,顺手也拿起勺子开始喝汤了。

事实说话,举例说明

大型开源框架很多,能使用插件的也挺多的。比如WordPress的站点这网上一搜一大把,那我们就拿WordPress举例说明吧。

首先随便找个WordPress的网站,我们就到网上搜一个随便看看吧。

按f12挂个黑页,哦不,按f12看看站点目前引入的文件,和现在的流量情况,找找API交互的endpoint以及现在直接能体现出来的error有没有可以利用的地方。

可以看见,这个站点使用了诸多的插件,某些插接因为太小众,并没被WPScan扫出来,即便扫出来了,或许规则库里也没有统计到有可利用的漏洞,这时候我们就可以找找这几个插件的源码着手审计。而审计之前,我们也可以在权限允许的页面,顺手测试一下这些插件的功能,说不定就有直观的能黑盒测试出来的bug呢?

可以看到,这个站点的PM功能(私信功能)出现了许多奇怪的error,看类型是xhr,流量中跟随输入拼写一直在递增。貌似是查询用户的?不如直接找到这个API,尝试手工测试。

可以看到,单单是黑盒测试,就发现此处API存在一个SQL注入点。

手工复测找到完美闭合方式后,调整速率再使用sqlmap确定一下,可喜可贺,确实找到一个注入点,类型Boolean & Time based。留好截图,组织一下语言,把前后发现、复测条件、payload全附上,一篇价值2k的高危漏洞报告就出炉啦!

这里在form里调用了javascript:autosuggest()来自动补全用户信息。

再看看补全用户信息怎么实现的,我们看看源码,果不其然,在这段代码中就存在一个教科书般的SQLinjection漏洞。

站点的开发在上线时使用了插件,却没经过严格审计,而选择了信任插件,实属失误。。

在刚刚的error信息中,隐约记得还看到了innerHtml()的调用,这可是容易出现xss的地方啊!当然,修复方式建议直接了,也就不用考虑这个XSS了。。

年久失修遇见双管齐下

就在写文章的时候,看到上传图片都是直接传到CDN的图床了,直觉告诉我这里可能出现问题,那是不是图床的第三方SDK也会有洞呢?我们来找找看。

站点使用的是upyun-editor的上传代码,其中有个类似于demo的文件引起了我的注意。

这里看到代码,说不定可以造成反射XSS,那么我们直接POST到站点看看。

恩。。看来是正常解析了。但是Chrome下测试,会被xss defense的内部检查器拦截下来。。这可咋整。。

检查发现站点的返回还与源码本地测试的略有不同,并且既然有两个输入框,可不可以用组合方式绕过Chrome自带的XSS防护呢?

我们在第一个输入框填<script>第2个编辑器的值=0;第二个填;alert(1);//测试一下?

打完收官~ 虽低危100元,挖到新姿势还有奖金,想想也足以。

总结

不管是做项目,还是企业内部测试,使用扫描器进行信息收集永远只是个开始,而主要精力应该放在加深对框架理解与功能测试跟进上。

框架是否有外来代码?是否使用三方插件?有没有其他子域?

没有挖不到的洞,只有不努力的黑客。

加油吧,各位少年~

责任编辑:赵宁宁 来源: Freebuf
相关推荐

2022-04-14 16:37:50

漏洞网络攻击插件

2022-02-22 10:40:27

漏洞网络攻击

2023-07-17 18:11:34

2013-09-05 13:49:18

WordPress速度

2013-05-03 10:00:07

Mozilla

2022-04-13 09:34:52

软件开发嵌入式软件

2017-12-07 09:01:40

2012-02-01 10:13:04

2010-01-28 16:58:32

学习C++感想

2009-06-26 11:15:08

JSF入手JSP

2013-06-07 17:13:58

2010-02-26 10:47:30

Linux Makef

2009-07-28 18:34:06

绿色机房节能刀片服务器

2014-08-06 10:44:31

WordPress插件

2022-07-19 16:40:56

漏洞网络攻击

2014-08-11 16:25:09

2009-11-02 13:50:53

WordPressCMS

2010-07-30 14:56:31

终端管理细枝末节

2009-01-18 09:32:00

无线故障无线信号无线网络

2009-01-20 14:06:00

点赞
收藏

51CTO技术栈公众号