记录一次对某CMS漏洞挖掘

admin 2022年5月12日00:56:34代码审计评论17 views2094字阅读6分58秒阅读模式

记录一次对某CMS漏洞挖掘

本文为看雪论坛优秀‍‍‍文章
看雪论坛作者ID:H3h3QAQ





前言


本文想记录一下学习过程,给正准备入手或刚刚入手的师傅们提供一点简单的学习资料,本文将全程脱敏,只记录审计过程。另外文明挖洞,不然就亲人两行泪了,接下来让我们开始挖掘之旅吧。




SQL注入漏洞


整个代码刚拿到手,我们应该思考一下哪里容易出现漏洞,出现什么漏洞。
 
一般来说CMS,肯定要涉及到数据存储,就会涉及到SQL注入,而在所有漏洞中SQL注入又是最简单的,我们又是白盒审计可以看到源码,相对于黑盒就要简单的一些。
 
所以对于这个CMS挖掘我首选SQL注入,再去找其他的漏洞。
 
先看一下项目结构。
记录一次对某CMS漏洞挖掘
 
结构很简单吼,也很直观(相比于TP等框架审计,这样的就很简单很适合新手入门),对于SQL漏洞,我们可以采用全局搜索的方法来搜索SQL语句关键词,例如:
select update delete

这样可以让我们直观的找到注入点,再进行payload构造,我们先从前台入手一下看看。
 
记录一次对某CMS漏洞挖掘
 
这里找到了一个很明显的注入点,可以看到id参数可控,而且没有进行任何过滤。
 
我们尝试一下看看能否注入。
 
记录一次对某CMS漏洞挖掘
 
可以看到这里成功延迟了5s,接下来用sqlmap验证一下(在SQL注入漏洞挖掘的时候,sqlmap可以帮助我们测试会省很多时间,有的时候不知道怎么能构造payload,可以尝试一下sqlmap)。
记录一次对某CMS漏洞挖掘
可以看到成功爆出来了当前用户名称 ,这个漏洞存在,前台SQL注入漏洞+1。
 
接下来可以利用这种方法尝试进一步挖掘其他的SQL注入漏洞,这里再后台注入找一个作为例子,也是可以尝试进行全局搜索SQL语句来确定注入点。
 
在后在某个地方,定位到了如下注入点:
记录一次对某CMS漏洞挖掘
如图,该处id变量依旧可控,并且没有做任何过滤,我们也尝试去构造一下注入。
 
payload如下:
id= 1 and (extractvalue(1,concat(0x5c,(select user()))))//报错注入 从目标xml种返回包含所查询值得字符串

记录一次对某CMS漏洞挖掘
可以看到,也成功爆出来了用户名,这里的后台注入也存在,后台注入+1,此时我们已经收获了两个SQL注入的漏洞,其他的SQL注入也是同样方式,这里就不过多赘述了。




文件上传漏洞


提到了后台,后台有一些进行文件上传的功能,这里如果没有进行很好的过滤和限制就会造成任意文件上传,坏人们会利用到这一点来上传webshell,从而达成破坏。
记录一次对某CMS漏洞挖掘

这里,我们写一个一句话木马,将其后缀改成php,然后抓个包看一下。
 
记录一次对某CMS漏洞挖掘
 
这里有很多参数,我们尝试直接把文件后缀改一下试试。
 
记录一次对某CMS漏洞挖掘

这里提示错误,表示不行,我们定位到文件上传的代码逻辑看一下。
 
记录一次对某CMS漏洞挖掘
 
这里他很奇怪,虽然这是一个老CMS了,但是利用这种方法判断文件类别的姿势我还是第一次看,逻辑就是获取到类别,然后case到相应的过滤中,再用后缀和白名单做比对,不在白名单中就报错,在就上传。
 
但是这里就有个大问题,如果我们抓包修改ftype参数(这里我们可控),改成一个不在switch函数中的值,就正好跳过了他的检测,直接上传,我们来试一下。
 
记录一次对某CMS漏洞挖掘
 
然后发包过去试试。
 
记录一次对某CMS漏洞挖掘

他就成功上传了......并且我们知道路径和文件名。
 
我们试一试能不能利用。
记录一次对某CMS漏洞挖掘
竟然可以利用QAQ,这个可太离谱了。




任意文件删除漏洞


笔者在继续寻找漏洞的时候,发现了这里有这么一段代码:
记录一次对某CMS漏洞挖掘
这里url可控,并且任何限制没有,可以造成任意文件删除,这里就不进行演示了。




总结


因为这是几年前的CMS,所以可能洞有很多,但是正适合新手入门,体会一下怎么审计出代码中的漏洞,在审计的过程中,首先你的目标要准确,因为是白盒,这样就能很直观的看到哪里出了问题,当然你在审计挖掘的时候,也要找准目标,自己心里要清楚哪里会出问题,直观面对着waf的时候就会很容易想到bypass的方法。
 
必要的时候可以使用动态调试,一步一步的查看变量的改变和流向,这样会更直观观察这个漏洞触发的过程,也容易修改自己的payload,从而成功挖掘出漏洞。
 
总结以下几点:

1、拿到源码,要先想一想那里会出现什么漏洞;

2、要熟悉这个CMS用的开发框架的整体运行机制,方便我们定位漏洞点;

3、多尝试,手动测不出来可以借助工具来辅助审计;

4、面对一个waf要从不同的角度看,以便于bypass。

 
总的来说,想要提高技术要多看文章,多动手复现,也要多尝试自己动手挖洞,从成功和失败中总结经验以便于下次审计。
 
最后,要做一个遵纪守法的安全研究员,文明挖洞,千万不要挑战法律。



记录一次对某CMS漏洞挖掘


看雪ID:H3h3QAQ

https://bbs.pediy.com/user-home-921448.htm

*本文由看雪论坛 H3h3QAQ 原创,转载请注明来自看雪社区


记录一次对某CMS漏洞挖掘


# 往期推荐

1.Android APP漏洞之战—验证码漏洞挖掘详解

2.CTF 中 glibc堆利用及 IO_FILE 总结

3.智能电表安全之通讯分析

4.CVE-2018-8120提权漏洞学习笔记

5.基于LLVM编译器的IDA自动结构体分析插件

6.2022 CTF babyarm 内核题目详细分析



记录一次对某CMS漏洞挖掘



记录一次对某CMS漏洞挖掘

球分享

记录一次对某CMS漏洞挖掘

球点赞

记录一次对某CMS漏洞挖掘

球在看



记录一次对某CMS漏洞挖掘

点击“阅读原文”,了解更多!

原文始发于微信公众号(看雪学苑):记录一次对某CMS漏洞挖掘

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月12日00:56:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  记录一次对某CMS漏洞挖掘 https://cn-sec.com/archives/999459.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: