设为首页 收藏本站
查看: 1052|回复: 0

[经验分享] 一次与sql注入 & webshell 的美丽“邂逅”

[复制链接]

尚未签到

发表于 2018-10-13 06:12:56 | 显示全部楼层 |阅读模式
引言
   一波未平,一波又起。金融公司的业务实在是太引人耳目,何况我们公司的业处正处于风口之上(区块链金融),并且每天有大量现金交易,所以不知道有多少躲在暗处一直在盯着你的系统,让你防不胜防,并且想方设法的找到突破点,以达到的目的来获取非法利益。

  俗话说:“道高一尺,魔高一丈”。系统和代码也可以这么理解,防的在好,总有漏洞。系统和代码也没有绝对的安全。该来的总会来......


sql注入与“她”相遇
  某一天,天气晴朗,心情舒畅。“她”来了,打破了笔者的美好时光。下午2点多钟,笔者和朋友在苏州街的天使汇二楼极客咖啡参加某个云厂商的Kubernetes一场技术沙龙,正听得兴致勃勃的时候,笔者的公司群里有个php开发突然帖出一张图:
DSC0000.jpg

   这个时候,群里翻腾了。没错,被SQL注入了,数据库的表被注入了字段,并且经检查后,发现这个库中的大部分表都被注入了这个字段。我的电脑没带在身边,真是着急,马上跟总监说明问题严重性。由于我电脑不在身边, 只能把数据库账号授权(读写权限)给那个php开发,让他检查所有的表,把被注入的字段删除掉。并查看数据和其它表有没有被修改。好在发现急时,数据和业务都没有被丢失和损坏。
   这里我要说明一下,我们的业务都在阿里云,项目是以php为主,并且开通了waf防火墙,只是waf上的防护措施比较宽松。笔者在安全方面的经验也比较欠缺,好在开通了阿里云的WAF,让笔者在排查和防护上也变得轻松和快捷。
   此时,我已经在回家的路上,回到家中迅速打开电脑。

调整waf策略
  由于笔者也是刚接手工作,阿里云上的很多策略还没得到及时调整。所以才这么容易被攻进来。即然被注入了,肯定要把源给揪出来。我也在次把所有的表都检查一遍,确认没问题后,在去调整waf策略,进入阿里云。
  1、进入相关域名的防护配置,我们先来看下调整前的策略,如下图:
DSC0001.jpg

DSC0002.jpg

  从上图可以看出,“Web应用防护”策略是宽松模式,其主要作用就是防护SQL注入、XSS跨站等常见Web应用,宽松模式下对业务的误报程度最低,但也容易漏过***。“恶意IP惩罚”也没启用。这么宽松的防护措施风险比较大。赶紧先调整吧。
  2、调整后的策略(如有多个域名,都调整过来),如下图:
DSC0003.jpg

  防护策略调整过了,还需要把问题根源找到啊,这才是最重要的!!!

查找可疑文件
  此时,php的项目源码分布在好几台服务器上,如果靠传统方式去排查,挨个检查这些服务器的目录,各种能用的命令都用上了,是不是也挺费劲费时的,还不知道要查到啥时候。这个时候,阿里有项服务起到关键的作用了:“态势感知”,这个需要升级为企业版本(费用不高,我们公司开通了一年,费用6000多块)。这就是用阿里的好处(不是打广告),确实让你省心。
  1、进入“态势感知”查看一下,就立马发现了一堆异常行为,遍布在好几台服务器上如下图:
DSC0004.jpg

  2、点几个异常行为进入看看,我就打开其中两个行为看一下,其它的行为也都差不多,如下图:
DSC0005.jpg

DSC0006.jpg

  从命令行参数中可以看出相关目录有/Mode/Lite/ ,并且给出的解决方案是及时排查可疑目录下的信息并及时清除。笔者顺着给出的提示在服务器上进行 find 相关目录,查找出目录所在路径,如下图:
DSC0007.jpg

  顺藤摸瓜吧,列一下这个目录的文件:
DSC0008.jpg

  从上图发现了有两个异常的php文件,目录属主也和其它文件不一样,笔者打开代码仓库也进入相同的目录进行比对,代码仓库中确实没有这两个文件。为了确认清楚,把这两个文件down下来发给开发。开发说项目中没有这两个文件。把它down下来打开文件看看:
  Content.class.php文件内容:
  

  
}
  

  这代码不就是被注入的表里的字段吗,上面这段代码大概意思为:把post请求的两个参数,一个用base64解密,一个用hex2bin转成16进制,然后拼接在一起,应该是把操作数据库的语句加密传过来,然后解密,这样就不会被拦截掉。如果哪位博友认为解释的有误,一定要提出来。
  Lite.class.php文件内容:
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620862-1-1.html 上篇帖子: SQL语言的CASE语句备忘 下篇帖子: SQL SERVER 2008 R2 安装在WINDOWS SERVER 2008 R2及错误分析解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表