微信公众号文章更新于微信公众号:苏雅图的雨
前言本文从漏洞利用到对该客服系统进行渗透<a target="_blank" href= hidden></a>测试中遇到的问题做详细解析,并在文章结尾公布黑客针对该系统进行攻击的样本。文章目录0x01 三重唱之漏洞利用0x02 青出于蓝而胜于蓝0x03 渗透<a target="_blank" href= hidden></a>测试思路解析0x04 公布黑客攻击样本系统介绍>这套客服系统是基于ThinkPHP开发的,
并且经过了几个版本的演变。
1.小马PHP客服系统
这套系统应该是最早的,但是现在资产很少了。
2.迎客PHP客服系统
这个应该是某个小团队改改版权就用了的。
3.来客PHP客服系统
资产最多,成为主要攻击目标。
4.好客PHP客服系统
......
其实这些客服系统都大同小异,
但是漏洞有一些区别,有的有,有的没有。
源码获取:关注公众号发送“客服系统”。
三重唱之漏洞利用1XSS攻击 (联系客服页)
漏洞位置:/admin/event/chat
漏洞危害:获取在线客服权限
XSS_Payload:- <a target="_blank" href= hidden></a>测试
复制代码
收到管理员Cookie
利用插件替换Cookie
访问:/admin/index/chats.html
这个漏洞不是每套客服系统都有,有些会被过滤。有时候会过滤中文,可以经过编码再发包。还有,有时候能打到管理系统的Cookie,可以直接获得所有客服系统的管理权限,右上角位置返回系统即可。
直接发送Payload是没有效果的,需要改包发送。
2注入漏洞(Dump)
漏洞位置:/admin/event/getwaitnum
漏洞危害:读取数据库内容
可以参考珂师傅的文章,这里不再细说。
传送门:温故而知新,老系统挖老漏洞
3文件上传漏洞 (GetShell)
漏洞位置:/admin/event/uploadimg
校验类型:黑名单验证
绕过方法:shell.jpg.php
以下两种情况说明不存在上传漏洞。
还需要补充的是,当存在上传漏洞时,
假如目标使用的是Apache服务,
那么访问上传后的WebShell是显示403的。
青出于蓝而胜于蓝
事实上该客服系统在这几年里逐渐成为了灰黑产重灾区,主要是诈骗,而据我所知,领域可细分为贷款诈骗、杀猪盘诈骗、刷单诈骗、装备刷取诈骗,用于灰产的则是一些网赌平台、账号出售、游戏道具出售等。诈骗实施者多为境外组织,坐标属东南亚地区最多。
虽说“中国人不骗中国人”,但是都知道我们与东南亚国家的语言并不相通,因此……
笔者同时在长达三个月的时间里部署了多个蜜罐,
捕获到了多位黑客长期对该客服系统广撒网式的攻击样本,而这多位黑客的攻击手法却大同小异,大同小异的同时又有着天壤之别,于是笔者猜测其中不乏有几位脚本小子,为什么这么说?
你们是否听过名医扁鹊的一个小故事?
扁鹊年轻时游历于魏国,行医于魏文王王庭。
一日,魏文王召见扁鹊,问道:“先生,寡人听说你们家兄弟三人都精于医术,谁医术最好呢?”
扁鹊回答:“大哥飞氏最好,二哥中丘差些,我扁鹊是三人中最差的一个。”魏文王不解地说:“都说扁鹊你是名满天下的神医,你的两个兄弟并没有神医的名号,很多人都没有听说过他们,可你却说他们的医术在你之上,这是为什么呢?”
扁鹊解释道:“陛下有所不知。我的大哥治病,往往都在病发之前,病人自己还不觉得有病。此时,大哥就开出药方铲除了病根,而且药方很简单。因此,他的医术难以被人认可,没有名气,只是在我们家中被推崇备至。
我的二哥治病,是在病初起之时,病人已自觉有小病。因此,乡里人都认为二哥只是治小病很灵。
我治病,都是在病情十分严重之时,病人痛苦万分,病人家属心急如焚。此时,他们看到我在经脉上穿刺,用针放血,或在患处敷以毒药以毒攻毒,或动大手术直指病灶,使重病人病情得到缓解或治愈。因此,我名闻天下。”SHORT STORY这个故事说明了什么道理?不言而喻。
同样的,对于这套系统进行攻击的多位黑客其实是实力悬殊的,因为倘若有四位黑客,其中只有一位黑客能够利用漏洞获取整个网站的控制权限,而其他三位黑客只能够获取普通的管理权限。也就是常说的一个能够Getshell,另外一个只能打XSS。
即便能获取整个网站的控制权限,再读取数据库的配置文件,但依然不能改变脚本小子的命运,因为首先他会接连的面临三大问题:
1.如何成功连接到数据库。
一般情况下,数据库是无法外连的。
2.如何进入客服管理后台。
管理员的MD5值无法解密。
3.如何修改加密的MD5值。
非简单的MD5加密。
这三大问题又再次重现了“扁鹊的故事”,因为即便能够成功连接数据库,获得数据库权限,但是估计脚本小子们也无法使用账号密码名正言顺的登录管理后台,原因是后台的账号密码并非简单的MD5加密。
在这里我均给出解决思路和方法。
0x01 解决连接数据库的问题
首先这套系统多用宝塔进行搭建,因此存在888端口和8888端口,前者为PhpMyAdmin服务,后者为宝塔登录面板。
我猜测,这时候脚本小子假如想通过PhpMyAdmin获得数据库权限,他又会连续遇到三个小问题。
1.直接访问888端口显示403。
需要PhpMyAdmin的完整路径。
2.无法读取到PhpMyAdmin的路径。
不会绕过Open_basedir。
3.无法访问到PhpMyAdmin。
这是一个迷惑的问题。
以Linux系统为例,
网站的路径为/www/wwwroot/
PhpMyAdmin的路径为/www/server/phpmyadmin/
无法访问到PhpMyAdmin的原因:
没有使用真实IP+888端口去访问。
因此完整的访问方法应该是:
http://IP:888/phpmyadmin_3959eb4ebfa493a9/
比较简单的思路则是上传一个adminer.php文件。
0x02 解决无法进入管理后台的方法
按照上一步的思路登录PhpMyAdmin后,存着管理员账号和密码的数据表是wolive_admin,而Password是无法解密的,这里给出第一个思路:本地搭建同样的系统,替换Password值。
Username:admin
Password:c7122a1349c22cb3c009da3613d242ab
明文密码:123456
注意,而这里给出替换Password的值仅适用于用户名是admin的前提下,接下来我们还需要分析一下它是如何进行加密的。
0x03 分析加密的MD5值
代码位置:/admin/controller/Login.php
框框位置简单理解:用户名+hjkj+密码=MD5值
假设用户名为admin,密码为123456,
那MD5值应该是d8f7c2d2775869fb69b8757edcf6ae4f
经过<a target="_blank" href= hidden></a>测试,实际上并非如此。
研究后得出加密方式:
$pass = md5(md5($adminPass) . $adminUser);
先将明文经过MD5第一遍加密,
再将第一次得到的MD5值加上用户名做一次加密。
假设用户名为test1,密码为testpass。
1.加密明文:
2.第一次得到的MD5值为
179ad45c6ce2cb97cf1029e212046e81
再在MD5值的后面加上test1进行加密:
于是最终的Password值为
79c274670c1db637916f5f96b9be77e1
公布捕获到的黑客样本黑客使用的XSS_Payload:
黑客使用的匿名IP:
45.76.188.135 新加坡
103.186.85.210 香港
27.0.232.185 香港
124.234.207.74 吉林 长春
119.5.224.133 四川 雅安
101.99.90.157 马来西亚 吉隆坡
18.139.84.50 新加坡 亚马逊云
38.45.125.42 香港 Cogent
202.182.104.253 日本 东京
159.138.136.214 香港 华为云
14.210.2.2 广东 湛江
123.253.26.170 香港
152.32.226.56 香港 优刻云
152.32.240.127 香港 优刻云
152.32.240.153 香港 优刻云
152.32.189.234 香港 优刻云
103.149.27.156 香港 优刻云
8.210.52.141 香港 阿里云
118.193.40.28 香港 优刻云
118.193.34.44 香港 优刻云
118.193.40.66 香港 优刻云
118.193.35.125 香港 优刻云
23.248.163.140 香港 Zenlayer
207.46.13.50 美国 微软云
91.245.253.48 罗马尼亚
112.111.24.94 福建 联通
198.13.39.74 日本 东京
123.253.26.170 香港
139.162.28.219 新加坡 Linode
129.150.52.158 美国 芝加哥
152.32.239.146 香港 优刻云
152.32.174.180 香港 优刻云
152.32.226.200 香港 优刻云
118.193.34.184 香港 优刻云
51.195.216.255 英国 伦敦
103.212.99.98 香港
103.14.33.97 香港 Zenlayer
128.199.20.138 美国 加利福尼亚
黑客使用Resty对蜜罐中不同的独立客服进行遍历,并发送大量恶意的XSS_Payload:
黑客多次针对蜜罐进行目录扫描:
疑似黑客忘记使用匿名IP:
112.111.24.94 福建 联通
多位黑客中有不少的来自Fofa搜索引擎的,这让人值得深思。正如前文所说的,脚本小子有时候也很聪明,还知道有时候打XSS可能会遇到过滤中文的情况,于是都使用全英文去发送Payload,还能起到伪装外国人的作用,不失为一个好办法。
“出来混要有势力,要有背景,你哪个道上的?”
完
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |