某传销诈骗网站代码审计

渗透技巧 7个月前 admin
136 0 0

前言

朋友给了一个某传销诈骗的网站,让我帮忙看看,记录一下,尽量还原一下渗透的思路

某传销诈骗网站代码审计

信息收集

根据后台页面,告诉你了是**cms,我第一反应就是代码审计(因为注册了新账号没有什么权限,做不了什么事情),然后baidu,google都搜不到这个源码,于是用凌风云

(https://www.lingfengyun.com/)

搜索看一下,没想到还真有找到了

某传销诈骗网站代码审计

把文件下载下来,然后放在phpstudy运行,一模一样,源码找对了

代码审计

因为这是一个类似于mvc的cms,所以代码审计之前要弄清楚路由,不然的话对后面的代码审计部分非常的煎熬,摸清楚路由的方法对于我来讲就是,用phpstormdebug模式一个个往下看。

首先、第一步就是用Seay源代码审计系统进行危险函数搜索

某传销诈骗网站代码审计

说实话,审的时候,我想直接getshell,但是文件上传都写的非常死,只允许图片或者xlsx上传,不允许其他后缀名的上传,其次也没有注入点,这条路我就放弃了,然后后面的话我就换了一种思路,从黑盒的方式对源码进行查看,首先,先对后台的登录按钮进行代码审计,源码如下

某传销诈骗网站代码审计

解释一下,$_GPC这个变量我们是可控的,然后如果$_GPC['password']等于数据库里面md5计算后的密码,那就是登录成功,否则登录失败,但是这里有个问题,那就是它判断的时候是用了==而不是===,也就是说这个存在弱类型,可以直接绕过,存在任意用户登录(后来才发现这是一套基于微擎cms二次开发的,所以这个漏洞在微擎cms是通用)。简单的说一下弱类型判断,就是让整数型和字符串进行布尔判断的时候,只取字符串中开头的整数部分,例子

<?php
var_dump("admin"==0); //true
var_dump("1admin"==1); //true
var_dump("admin1"==1//false
var_dump("admin1"==0//true
var_dump("0e123456"=="0e4456789"); //true
?> //上述代码可自行测试

然后它这个是依靠uid来判断用户,所以我们可以注册个用户,然后在登录,最后把cookie改一改就可以实现管理员登录了

某传销诈骗网站代码审计

某传销诈骗网站代码审计

某传销诈骗网站代码审计

某传销诈骗网站代码审计

getshell

因为这套源码,文件上传后缀名控的死死的,然后我也反反复复看了这套源码不止2次了,后面就发现了终于有一个file_put_contents是可控的了

(文件路径:网站根目录addonsewei_shopv2corewebmembercard.php)

解释一下:$_GPC['card_logolocalpath']这个是可控的,所以$imgurl也是可控的,$img是获取$imgurl的页面,所以按道理来讲这个也是可控的,然后我们断点在105行那里,然后按照流程走一遍

大概请求是这个样子

某传销诈骗网站代码审计

尝试一下把card_logolocalpath变量改成http://127.0.0.1:81/1.php,发现能成功 读取远程1.php的内容,但是因为文件名是http://127.0.0.1:81/1.php,导致 file_put_contents写入失败

某传销诈骗网站代码审计

想了一会,就想到了一个办法,就是我们读取服务器本地的存在文件,然后在利用http的特性,在url后面添加#号,然后在利用../进行绕过,最终利用的办法就是,先在后台找个图片上传的功能,上传一句话木马的图片,复制上传后图片的路径,然后card_logolocalpath写成

images/2/2023/02/uRZ5mti22cfbp5fIpfF20C5fapFBaF.jpg#/../666.php

成功绕过并写入

某传销诈骗网站代码审计

某传销诈骗网站代码审计

某传销诈骗网站代码审计

最后

附上拿下目标的shell

某传销诈骗网站代码审计

原文链接

https://www.t00ls.com/articles-68475.html


原文始发于微信公众号(T00ls安全):某传销诈骗网站代码审计

版权声明:admin 发表于 2024年4月9日 下午3:01。
转载请注明:某传销诈骗网站代码审计 | CTF导航

相关文章