这个cms还没有审计完,我之后会更新这个cms漏洞,之所以写这个文章,只是巩固一下知识,这个CMS,风哥在实战代码审计这节课里讲过
说实话,这个CMS很适合新手审计,建议大家可以审计一下
代码审计思路
我不建议任何漏洞,都白盒测试,这样只会浪费大家的时间,这有个思路大家可以看一下
黑盒测试
SQL注入, SSRF, XXE,CSRF,文件上传,逻辑漏洞(越权,任意用户登录,密码重置漏洞,验证码绕过,支付漏洞)
白盒测试
任意文件包含, 反序列, 变量覆盖,
接下来上图
通过审计发现,用来连接数据库的文件,里用的是双引号,风哥之前在课上讲过,PHP版本在5.5以上,使用双引号会产生【二次解析漏洞】,那么我们直接就往里面传入个探针看看兄弟么不要在意那么多细节写入成功后,我们在次访问这个页面,就可以发现成功返回了探针
注入和xss
我们先讲xss
打开注册页面,看到当前是user.php文件,开始审计这个文件有没有漏洞
但是有个问题就是,那么多代码,我们怎么知道那个是用啦接收用户提交数据的代码?这里有个小技巧,开启burp,抓包
我们可以看到,最下面有传参,复制这个传参,放到审计工具(如果没有工具的话,可以问风哥要)去搜索
找到了负责接收用户提交数据的代码了,有人会问了,这行代码里的【? : 】是什么
这是三目运算符,
【条件 ?条件成立执行这个代码 :条件不成立执行这个代码】
我们通过分析代码得知,开发并没有对我们提交的数据进行安全过滤,这样我们就可以为所欲为
反手就来个xss啊。。这
我写个反射型xss,它提示我邮箱不正确,但是我的burp没有抓到任何数据包
可以知道这个是前端验证
抓包,在邮箱处写入反射型xss
成功弹窗,其实这个可以从前台打到后台,危害可想而知
接下来就是注入,开发没有对我们提交的数据进行过滤,而是直接放到了数据库里面查询,那么我们直接就注入,还是一样,注册用户,提交数据,抓包,丢给sqlmap
这里就不放截图了,明明有漏洞,sqlmap却居然跑不出来
关于我为什么不手注,我想说
万能密码
一个页面存在注入,那么其他的页面也有可能存在注入
我在登录页面试试万能密码看看,这里输入【admin’ or 1=1 #】然后抓包,在单引号前面写入【%df】,让我们康康结果
可以看到,我已经成功进入了后台
前端任意文件包含漏洞
这个漏洞,出现在前端,攻击者只需要利用前端,就可以拿下服务器
通过搜索危险函数,发现了这行代码,将用户输入的数据拼接到这行代码,是将用户输入的数据拼接到include,这就很危险了,【估计老板年终奖发少了】
这两行代码的意思是
第一行代码的意思是
检测变量pay的值是和否为空,如果为空执行下面那行代码
第二个框款内的意思是
若果变量pay的值不为空,将用户输入的数据拼接到这行代码并且执行
回到网站,这个时候会有个问题,如果直接提交数据的话,网站会提示你没有选择支付方式,所以我们要在选择支付方式的时候抓包
抓到数据包后,我们要在框框内,写入
pay=谁便写
提示,想要看到我们输入的数据的话,我建议大家在user.php这个文件的750后面,写 echo 'include/payment/'.$_POST['pay']."/index.php";
这个会把我们输入的信息,输出出来
可以看到我输入123123123,页面返回了123123123,代表这里我们确实可以控制
但是怎么逃脱呢?是个问题,
这个时候我们就可以使用,英文句号来截断
win的话240个就可以实现截断了,但是有版本限制,PHP必须在5.3以下,所以各位如果要复现的话,一定要跟换版本,不然就会复现失败
因为是白盒,所以我就在根目录写个个1.TXT的文件,
还是按照之前的方法,写入,然后就可以发现,页面成功执行phpinfo()
之后我会更新其他的CMS漏洞,不过这段时间有点忙,加上学习,可能会慢一点
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-劲夫 | 35.00 | 0 | 2021-10-25 16:04:19 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.
Track-劲夫
发表于 2021-10-25
期待你把文章补全
评论列表
加载数据中...
aj545302905
发表于 2021-10-26
加油
评论列表
加载数据中...
牛头人
发表于 2021-11-8
真棒
评论列表
加载数据中...