php格式 实战|一次真实渗透测试中的代码审计
一次真实渗透测试中的代码审计getshell
信息搜集:用dirsearch进行扫描查看目录:
发现有git源码泄露,还有一些敏感目录
用nmap对端口进行探测
发现开放ssh 22 端口,ftp 21 端口等
前言 一次真实渗透测试中的代码审计getshell 信息搜集:用dirsearch进行扫描查看目录: 发现有git源码泄露,还有一些敏感目录 用nmap对端口进行探测 发现开放ssh 22 端口,ftp 21 端口等端口 浏览网站前台发现两个登陆点 登陆点A: 登陆点B: 登陆点A是扫描目录中的/.login,登陆处没有验证码,可以尝试爆破 登陆点B在子域中php格式,对账号密码都有一定的格式要求 寻找注入点 挂上BurpSuite,浏览网站,找参数提交的点 算上之前的登陆一共找到了4个参数提交点 漏洞测试:各种尝试: 网站存在.git 源码泄露 把网站的源码拖下来 大概的看了一下,应该是一个thinkphp框架改的,然后有一些数据库的信息,但是没什么用。 尝试以利用数据库的信息对登陆点B进行登录,失败。再对ssh和登录点A进行爆破,失败。继续下一个点。 分别对4个点进行SQL注入测试,其中只有1个点发生报错: 应该是thinkphp的框架错误,出现了网站的绝对路径。对网站的所有可能存在漏洞进行了探测,均无结果,只能回去老老实实的审代码。 代码审计: 先看application,根据代码中的路由规则访问系统,发现基本都失效了,应该是旧系统源码。硬着头皮看,看看能不能找到数据库的连接密码,从phpmyadmin来getshell。打开application就发现了一个config文件夹: 有config.php和database.php,但是都没有数据库的连接密码,无法从phpmyadmin进入数据库。然后就是一顿代码审计,并没有发现什么有用的信息。 再看看assert,里面有一个编辑器ckeditor: 进入该目录发现了还有一个kcfinder,这个可以在web端进行访问: 发现可以上传.htaccess,但是我们上传上去的文件还是不被解析,很奇怪,猜测应该外层还有一个.htaccess文件,使得我们的.htaccess未生效。在本地进行一下测试: 果然在外层存在一个.htaccess,这个地方的上传应该没办法了。 继续代码审计,找到了一个imageuploader: 尝试访问: 这次先开代码在进行测试,免得无用功。在pluginconfig.php发现了一些很有意思的东西。这个点并没有连接数据库,账号秘密直接写到文件中的: 获得了账号密码进行登录,再次发现上传点: 很可惜的是这里的上传点是白名单,无法通过上传进行getshell。 继续去代码审计,还是pluginconfig.php,发现了一个fwrite函数,并且这个地方并没有什么过滤,可以写入东西到pluginconfig.php文件中(后面才发现这个网上好像有这个洞 ,大意了) 参数$newpath可控,但是被"''"所包裹,如果尝试闭合会被转义, 这个地方可以通过花括号来绕过,构造payload:newpath=${${eval($_POST[123])}} OK,没有问题,现在在网站上进行写入 写入成功,先在尝试蚁剑进行连接 连接成功,点到为止。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |