引言
一波未平,一波又起。金融公司的业务实在是太引人耳目,何况我们公司的业处正处于风口之上(区块链金融),并且每天有大量现金交易,所以不知道有多少躲在暗处一直在盯着你的系统,让你防不胜防,并且想方设法的找到突破点,以达到的目的来获取非法利益。
俗话说:“道高一尺,魔高一丈”。系统和代码也可以这么理解,防的在好,总有漏洞。系统和代码也没有绝对的安全。该来的总会来......
sql注入与“她”相遇
某一天,天气晴朗,心情舒畅。“她”来了,打破了笔者的美好时光。下午2点多钟,笔者和朋友在苏州街的天使汇二楼极客咖啡参加某个云厂商的Kubernetes一场技术沙龙,正听得兴致勃勃的时候,笔者的公司群里有个php开发突然帖出一张图:
这个时候,群里翻腾了。没错,被SQL注入了,数据库的表被注入了字段,并且经检查后,发现这个库中的大部分表都被注入了这个字段。我的电脑没带在身边,真是着急,马上跟总监说明问题严重性。由于我电脑不在身边, 只能把数据库账号授权(读写权限)给那个php开发,让他检查所有的表,把被注入的字段删除掉。并查看数据和其它表有没有被修改。好在发现急时,数据和业务都没有被丢失和损坏。
这里我要说明一下,我们的业务都在阿里云,项目是以php为主,并且开通了waf防火墙,只是waf上的防护措施比较宽松。笔者在安全方面的经验也比较欠缺,好在开通了阿里云的WAF,让笔者在排查和防护上也变得轻松和快捷。
此时,我已经在回家的路上,回到家中迅速打开电脑。
调整waf策略
由于笔者也是刚接手工作,阿里云上的很多策略还没得到及时调整。所以才这么容易被攻进来。即然被注入了,肯定要把源给揪出来。我也在次把所有的表都检查一遍,确认没问题后,在去调整waf策略,进入阿里云。
1、进入相关域名的防护配置,我们先来看下调整前的策略,如下图:
从上图可以看出,“Web应用防护”策略是宽松模式,其主要作用就是防护SQL注入、XSS跨站等常见Web应用,宽松模式下对业务的误报程度最低,但也容易漏过***。“恶意IP惩罚”也没启用。这么宽松的防护措施风险比较大。赶紧先调整吧。
2、调整后的策略(如有多个域名,都调整过来),如下图:
防护策略调整过了,还需要把问题根源找到啊,这才是最重要的!!!
查找可疑文件
此时,php的项目源码分布在好几台服务器上,如果靠传统方式去排查,挨个检查这些服务器的目录,各种能用的命令都用上了,是不是也挺费劲费时的,还不知道要查到啥时候。这个时候,阿里有项服务起到关键的作用了:“态势感知”,这个需要升级为企业版本(费用不高,我们公司开通了一年,费用6000多块)。这就是用阿里的好处(不是打广告),确实让你省心。
1、进入“态势感知”查看一下,就立马发现了一堆异常行为,遍布在好几台服务器上如下图:
2、点几个异常行为进入看看,我就打开其中两个行为看一下,其它的行为也都差不多,如下图:
从命令行参数中可以看出相关目录有/Mode/Lite/ ,并且给出的解决方案是及时排查可疑目录下的信息并及时清除。笔者顺着给出的提示在服务器上进行 find 相关目录,查找出目录所在路径,如下图:
顺藤摸瓜吧,列一下这个目录的文件:
从上图发现了有两个异常的php文件,目录属主也和其它文件不一样,笔者打开代码仓库也进入相同的目录进行比对,代码仓库中确实没有这两个文件。为了确认清楚,把这两个文件down下来发给开发。开发说项目中没有这两个文件。把它down下来打开文件看看:
Content.class.php文件内容:
<"htmlcode"><"text-align: center">还有一个,如下图:
和代码仓库、开发的对比,可以确定这两个也是***传进来的可疑文件,我有一个习惯,删除文件之前喜欢备份到本地。备份好这些可疑文件到本地之,都彻底清除掉。
虽然都清除掉了,waf防火墙也调整了,但是也没有绝对的安全,还需要把php这些危险的函数禁用掉,比如禁用phpinfo、exec()、system()等:
phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。 危险等级:高 system() 功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。 危险等级:高 chroot() 功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式 PHP 时才能工作,且该函数不适用于 Windows 系统。 危险等级:高 scandir() 功能描述:列出指定路径中的文件和目录。 危险等级:中 chgrp() 功能描述:改变文件或目录所属的用户组。 危险等级:高 chown() 功能描述:改变文件或目录的所有者。 危险等级:高 shell_exec() 功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。 危险等级:高 proc_open() 功能描述:执行一个命令并打开文件指针用于读取以及写入。 危险等级:高 proc_get_status() 功能描述:获取使用 proc_open() 所打开进程的信息。 危险等级:高 ini_alter() 功能描述:是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。 具体参见 ini_set()。 危险等级:高 ini_set() 功能描述:可用于修改、设置 PHP 环境配置参数。 危险等级:高 ini_restore() 功能描述:可用于恢复 PHP 环境配置参数到其初始值。 危险等级:高 dl() 功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。 危险等级:高 pfsockopen() 功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。 危险等级:高 symlink() 功能描述:在 UNIX 系统中建立一个符号链接。 危险等级:高 popen() 功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。 危险等级:高 putenv() 功能描述:用于在 PHP 运行时改变系统字符集环境。在低于 5.2.6 版本的 PHP 中,可利用该函数 修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。 危险等级:高 禁用方法如下: 打开/etc/php.ini文件,查找到 disable_functions ,添加需禁用的函数名,如下: phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen趁着这次事件,把其它服务器也一并排查一下吧,需要点耐心慢慢排查,***把这些可疑文件伪装的非常好,绕过了waf墙,人的肉眼不仔细看它都看不出来,所以还是要自己细心一点干活。
需要声明一下:每个人的做事方式都不一样,本文只是把笔者遇到的事件分享给大家,仅作为交流和学习。
名词解释
sql注入:
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式***.
webshell:
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。在了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为***者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。安全防范小结
归纳一下,主要有以下几点:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS***等。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]