Sine安全-网络安全背后的巨人,提供服务器安全_服务器维护_网站安全解决方案

对网站APP api接口安全的渗透测试过程与分析

某一客户的网站,以及APP系统数据被篡改,金额被提现,导致损失惨重,漏洞无从下手,经过朋
 
友介绍找到我们SINE安全公司,我们随即对客户的网站服务器情况进行大体了解.建议客户做
 
渗透测试服务.模拟攻击者的手法对网站存在的数据篡改漏洞进行检测与挖掘,就此渗透测试
 
服务的过程进行记录与分享.
 
 
首先客户网站和APP的开发语言都是使用的PHP架构开发,后端使用的thinkphp开源系统,对会
 
员进行管理以及资料的统计,包括充值,提现,下单功能.服务器使用是linux系统.共有3个接
 
口,分别是WEB前端,接口,后台,都采用的是action的方法来调用,并初始化数据.我们看下代
 
码:
 
不同入口传入过来的值,并进一步的操作都不一样,我们SINE安全技术在get,post,cookies的
 
请求方式中,发现一个规律,在查看代码中发现都是使用的get()的方式来对传入过来的值进
 
行安全效验与拦截.对一些特殊符号包括<> script都进行了安全转义,不会直接输入到后端
 
中去.基本上的一些漏洞,XSS,SQL注入漏洞是不会很容易的找到.我们继续对代码进行分析与
 
渗透测试,对漏洞多次的测试,终于找到一处存在SQL注入漏洞的代码,存在于网站的会员头像
 
上传功能.
 
 
我们抓取上传的数据包,并进行修改,将恶意的SQL注入代码写入到数据包中,将头像的图片内
 
容进行修改提交过去,发现服务器返回错误,原因是对图片的内容进行了解析操作,并将上传
 
的路径地址写入到了数据库,而这个写入数据库的图片路径地址,并没有做详细的变量安全过
 
滤,导致SQL注入的发生,由此可见,攻击者可以查询数据库里的管理员账号密码,并登陆到系
 
统后台进行提权.平台的后台目录地址很容易遭到破解,后台名字写的竟然是houtai2019,很
 
容易让攻击者猜解到,使用SQL注入漏洞获取到的管理员账号密码.登陆后台,上传webshell,
 
查到数据库的账户密码,进行连接,修改数据库.
 
在对后台的渗透测试发现,后台也存在同样的任意文件上传漏洞,upload值并没有对文件的格
 
式,做安全效验与过滤,导致可以构造恶意的图片代码,将save格式改为php,提交POST数据包
 
过去,直接在网站的目录下生成.php文件.对此我们SINE安全将渗透测试过程中发现的漏洞都
 
进行了修复.
 
可能有些人会问了,那该如何修复渗透测试中发现的网站漏洞?
 
首先对SQL注入漏洞,我们SINE安全建议大家对图片的路径地址写入到数据库这里,进行安全
 
过滤,对于一些特殊字符,SQL注入攻击代码像select,等数据库查询的字符进行限制,有程序
 
员的话,可以对路径进行预编译,动态生成文件名,对ID等值只允许输入数字等的安全部署,如
 
果对程序代码不是太懂的话,也可以找专业的网站安全公司来解决,国内像SINESAFE,启明星
 
辰,绿盟都是比较专业的,剩下的就是任意文件上传功能的漏洞修复,修复办法是对上传的文
 
件名,以及文件格式做白名单限制,只允许上传jpg.png,gif,等图片文件,对上传的目录做安
 
全设置,不允许PHP等脚本文件的执行,至此客户网站数据被篡改的原因找到,经过渗透测试才
 
发现漏洞的根源,不模拟攻击者的手段.是永远不会找到问题的原因的.也希望借此分享,能帮
 
助到更多遇到网站被攻击情况的客户.
分享: