事件介绍:
上周六下午正在看《复仇者联盟4》刚好看绿巨人摔摩托车,突然接到客户电话说他们论坛好像被黑了,在论坛页面点击点评、回复等一系列按钮时会随机被劫持到非法网站。感觉事态比较严重赶紧洗把脸开始干活。
如上图:点击几处后被随机劫持
劫持分析:
现状描述:
1、在页面点击按钮后,几乎没有任何等待就跳转到非法网站。
2、tid 参数大于 3 万(int类型)时,才会接触跳转。
3、tid 参数小于 3 万时,尝试修改其他任何参数,均不会跳转。
4、以查看源代码的形式访问网站,直接跳转到目标网站。
推测分析:
1、点击页面后,直接跳转到非法网站(之前遇到需要加载等待几秒钟),实现这类劫持很可能在 nginx 上做劫持。
2、nginx 上获取 tid 参数,在去判断参数的大小,又不劫持网站收录,没有重定向到目标网站,在nginx实现这个功能太鸡肋了。
3、如果在应用程序本身实现这个功能,代码执行的优先肯定会很高,基于这个考虑我优先排查入口文件是否存在恶意代码。
验证思路:
1、查看 index.php 入口文件。
# 查看文件 vim index.php # 查看结果: 正常
2、通过关键词查找当前项目下所有PHP文件是否存有目标网站域名。
# 搜索命令 # 目标网站: https://www.bodan.tv/ # 仅搜索 php 文件,通过跳转的速度、源代码查看判断不会是在 js 里面做跳转 # 论坛好多年了,资料非常大不指定文件类型,扫描时间会非常久 grep -r 'bodan.tv' ./ --include=*.php # 搜索结果: 无
3、查询当前项目所有使用 base64 加密函数的代码片段。
# 搜索命令 # 推测黑客可能加密PHP代码,黑客经常这么干 grep -r 'base64' ./ --include=*.php # 搜索解密结果: 无
4、反问自己如果我是黑客,如果实现这种方法,如何做反溯源?
# 1、加密php代码 # 2、引入非 PHP 文件, 执行 PHP 代码 # 3、引入非当前项目目录、非 PHP 文件执行 PHP 代码 # 4 ....... # 经过多次验证最终发现,在 config/config_global.php 文件中引入了非法文
恶意代码:
PHP 实现逻辑比较简单不做具体分析。
入侵途径:
为了保护客户隐私,以及减少危害进一步扩大不在赘述(也偏离了本次文章的主题)。
溯源总结:
这种引入非项目目录非PHP文件的恶意代码,是很难通过扫描或者安全软件检测到,在这种基础上在做加密,静态扫描几乎无能为力,除非动态检测。一般动态检测只打包项目文件所以这种思路就容易逃脱检测。
来源:freebuf.com 2021-06-09 15:27:06 by: 6265113
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册