某用户的主页和手机应用的数据遭非法修改,资金被转移,造成重大损失,安全漏洞难以定位,经熟人引荐联系了本SINE安全机构,立刻对客户的网络服务器状况进行了初步掌握,提议客户实施渗透检测项目,通过模仿黑客行为来检查和发现主页可能存在的资料篡改问题,并将此渗透检测项目的实施过程进行记录和公布。
客户网站和APP的开发均基于PHP架构,后端采用thinkphp开源系统,用于管理会员信息,统计相关数据,实现充值、提现和下单等操作。服务器运行在linux系统上。系统包含三个接口,分别是WEB前端、接口和后台,这些接口都使用action方法进行调用,并完成数据初始化。下面将查看相关代码
传入不同入口的数据,后续处理方式也各不相同,我们SINE安全技术在分析get,post,cookies请求时,发现一个共同点,代码审查显示它们都采用get()方法来验证并拦截传入值,对特殊字符包括引号都执行了转义处理,避免其直接传递到服务器端,因此常见的XSS,SQL注入风险难以轻易发现,我们持续研究代码并进行渗透实验,反复测试后,最终在网站会员头像上传模块中,识别出一个SQL注入缺陷

我们获取上传的数据包,加以改动,在里面植入了恶意SQL注入代码,并且更改了头像的图像数据后发送过去,结果服务器反馈了错误,原因是它对图像数据执行了分析,并把上传的路径信息存入了数据库,而存入数据库的图片路径信息,没有经过严格的变量安全检测,从而引发了SQL注入,从这里可以看出,攻击者能够查询数据库中的管理员账号密码,并且登录到系统后台实施提权操作。平台的后台目录地址很容易被攻破,后台的名字竟然是houtai2019,非常容易被攻击者推断出来,利用SQL注入漏洞获取到的管理员账号密码,登录后台,上传webshell,找到数据库的账号密码,进行连接,修改数据库。
对后台实施渗透检测时,发现后台同样存在任意文件上传问题,upload参数未对文件类型进行校验和过滤,致使可以构造恶意图片脚本,将文件后缀改成php,通过提交POST数据,直接在网站根目录下生成.php文件。针对此问题,我们SINE安全在渗透检测期间找到的所有漏洞均已修复。
可能有些人会问了,那该如何修复渗透测试中发现的网站漏洞?