APP下载

农村电商平台SQL注入问题研究

2018-01-13李镜湖杨建平

网络安全技术与应用 2018年1期
关键词:应用程序站点网络安全

◆李镜湖 杨建平 周 兵

(1.云南农业大学大数据学院 云南 650201;2.云南农业大学理学院 云南 650201;3.云南省高校农业遥感与精准农业工程研究中心 云南 650201)

0 引言

随着“互联网+”时代的来临以及政府扶持力度的不断加大,Web 服务的应用十分广泛,农村电子商务发展十分迅猛。然而,由于互联网具有开放性和交互性的特征,Web应用系统结构的复杂性,数据的海量性。及网络安全法和相关保障机制不健全,使电商网络不可避免的存在一些安全问题。近些年针对电商平台的网络攻击频度和复杂度在不断加剧,出现了网站数据和个人敏感信息被窃取的情况,这些网络安全问题严重制约了中国农村电子商务的发展。因此,基于网络安全视域,针对农村电商的现状,对制约农村电商发展的网络安全因素进行分析,并提出对应的网络安全策略以实现农村电商能够健康快速地发展。

目前农村电商平台以基于B/S模式架构的Web应用为主。由于 Web应用程序自身的缺陷、开发者网络安全意识的欠缺、程序员对于站点的网络安全防范措施做不到位以及相关技术维护人员的安全防护技能较为薄弱等原因,导致农村电商平台存在大量的安全隐患。本文就Web攻击中的SQL注入问题为对象,展开研究。针对SQL注入攻击,提出有效的农村电商平台网络安全防范策略,使得农村电商平台不受外来恶意攻击,用户的个人信息和财产安全受到保护不受威胁。

1 农村电商平台面临的主要安全威胁分析

1.1 Web应用倍受黑客青睐的原因分析

中国目前的农村电商平台以 Web应用为主。当今电商平台面临的主要安全威胁已由网络层转向应用层。主要表现在如下几个层面:采用B/S构架的Web应用程序不断增多,随之带来的安全漏洞也越来越多;随着互联网技术的迅猛发展,被黑客用来进行攻击的工具越来越多,且经济利益驱动性体现得非常明显;一般做开发的程序员未经过特殊的安全训练,缺乏相关的网页安全知识和技能;训练有素且有很好经验的开发者,虽能最大限度的规避一些常见的安全问题,但是由于 Web应用非常广泛,而其自身存在着不可避免的缺陷,导致容易受到外界的攻击。

1.2 Web应用攻击

(1)Web应用的主要攻击

当今 Web应用程序具有的优越性使其被各界广泛使用,但其存在漏洞且容易被攻破。主要的Web攻击有:SQL注入、XSS攻击和DDOS攻击。OWASP在2013年的十大关键Web应用安全漏洞报告中将SQL注入攻击排在首位,且SQL注入攻击是目前公认危害最大的Web应用攻击。原因是SQL注入漏洞可以被攻击者利用从而直接访问数据库,甚至能够进一步获取数据库所在服务器的管理员权限[8]。

(2)SQL注入攻击的原理及特点

SQL注入是一种数据库代码注入攻击手段。其原理是用户在客户端提交特殊的SQL代码,从而非法获取服务器信息。即:攻击者把恶意代码插入到 Web应用程序的输入参数中,通过提交的方式再传递到数据库服务器中去执行。最后根据返回的提示和结果,在获得所需的数据之后进一步发动攻击,对数据库进行未经授权的访问和直接检索,造成数据库信息泄露,实施窃取、伪造和篡改用户敏感信息,甚至获取服务器管理员权限,最终实现完全控制。如此一来,对于农村电商最大的威胁莫过于平台管理员权限被夺取。

SQL注入攻击的三个显著特点:低难度:SQL注入攻击不依赖于环境,且目前网上有诸多开放、便捷、易用的SQL自动化注入攻击工具;普遍性:SQL注入以利用SQL语句的灵活性实现攻击,因此只要和数据库存在交互的Web页面就极有可能存在SQL注入漏洞;高危害:遭到SQL注入攻击的后果,轻则被窃取敏感数据,重则丢失服务器的控制权。

2 农村电商平台网络安全渗透测试

2.1 渗透测试的简介

Web应用安全渗透测试技术是一种通过模拟恶意攻击者的技术和方法,挫败目标系统安全控制措施,取得访问控制权,利用渗透测试报告证明站点存在安全隐患的一种安全测试与评估方式。我们利用“渗透测试”技术,使用SQL自动化注入工具对某个授权的农村电商平台进行探测,并分析其网络安全状况。以实例化方式为进一步提出针对性的防范措施打下基础。在测试过程中的所有操作均以遵守网络安全法为前提,不对站点做任何的破坏。

2.2 渗透测试实例化

(1)渗透测试工具Sqlmap

Sqlmap是一款非常强大的开源SQL自动化注入工具,可以用来检测和利用 SQL注入漏洞,目前支持多种数据库类型,如MS Server、MySQL、oracle等。Sqlmap采用了四种SQL注入技术,其具有数据库提取、访问目标文件系统、获取操作权限时实行任意命令等广泛的功能。

(2) Sqlmap应用实例

对我们实验室取得授权的某个农村电商平台进行实例化测试,整个过程目的在于查找站点潜在的高危漏洞和安全威胁,同时也是对站点安全防护技术的验证。

具体步骤如下:

第一步:检查站点是否存在注入点。命令:sqlmap.py -u http∶//**.com/**.php?nid=63;

第二步:查看用户。sqlmap.py -u http∶//**.com/**.php?nid=63--users -v 0;

第三步:查看库。sqlmap.py -u http∶//**.com/**.php?nid=63--dbs -v 0;

图1所示,使用sqlmap通过命令来查看SQL注入的基本信息。

图1 sql注入查看基本信息

注入结果显示:

该站点存在SQL注入点;注入参数id为GET注入;

注入类型为:boolean—based blind;

Web应用程序技术:Apache 2.4.16 、PHP 5.6.27;

数据库类型:MySQL;

存在两个可用数据库:henecia、information_schema。

第四步∶爆出库下的表。sqlmap.py -u http∶//**.com/**.php?nid=63 --tables -D “**”。

图2所示,用命令查看数据库里所包含的表项。

图 2 爆出数据库henecia下的表

结果显示:

数据库“henecia”下有35个表,有管理员表、用户表等等。

第五步:爆出指定表的字段。 sqlmap.py -u http∶//**.com/**.php?nid=63 --columns -D “**” -T “**”。

图3所示,爆出的是指定表的字段,包括字段名和字段类型。

图 3 爆出表TM_ADMIN_MAEMBER的字段

结果显示:

表“TM_ADMIN_MEMBER”有7条字段,包括:注册账号、密码等。

第六步:爆出字段内容。 sqlmap.py -u http∶//**.com/**.php?nid=63 --dump -D "**" -T "**" -C"login_uid, login_pwd"。

图4所示,爆出的是指定字段的内容,也是我们希望得到的管理员账号和密码,是攻破站点的关键信息。

图 4 爆出字段内容

结果显示:

该条字段爆出了管理员账号和密码。

到此,拿到该测试电商网站的管理员账号和密码,即:SQL注入成功。

SQL注入对该网站已形成了极大的安全威胁。说明该电商平台防SQL注入的安全防护技术仍需升级,应采取更有效的防护措施,以保证电商平台的安全。

3 农村电商平台SQL注入攻击防范策略

3.1 代码防范策略

(1)使用参数化语句查询。参数化方法就是用户在与数据库链接并访问数据时,需要提交的数据不是直接赋值,而是使用参数(Parameter)来给值。如此一来,含有参数的内容将不会被数据库服务器视为SQL指令的一部分来处理,而参数是在数据库完成SQL指令的编译之后才被执行。所以即便是参数中含有攻击者构造的恶意指令,也不会被执行。

(2)输入信息的过滤和验证。在服务器端正式处理客户端提交的数据之前,须对提交信息进行充分的过滤,并对其合法性进行严格的验证。譬如,通过设置字段的“长度”属性来限制用户输入文本的长度,Web应用系统会根据先前设置好的长度而拒绝用户输入任何大于规定字符数的字段名,从而起到输入信息的过滤作用。检查用户输入信息的合法性,则是页面中输入特征为汉字的输入框,不允许输入数字或字母。

(3)加密并合理分配权限。在程序中对用户敏感信息采用MD5函数进行加密。由于MD5是不可逆算法,因此即便是经过MD5加密的信息被攻击者获取,在很大程度上也可以保证数据安全。合理分配数据库权限,为访问 Web应用程序数据库的使用者单独创建低权限账号,只提供单一的查询、修改或是删除等操作。开发者通过限定用户访问数据库的权限和控制其可执行的操作,可以实现最大限度的保护数据库且防止其不被非法用户进行访问和篡改。

3.2 入侵路径防范策略

(1)Web应用防火墙(WAF)。WAF是集Web防护、网页保护、负载均衡于一体的 Web整体安全防护设备,它可以在事前主动防御,智能分析应用程序的缺陷,并屏蔽恶意请求,防止页面篡改,阻止应用程序被攻击,进而全面保护Web应用程序。事中智能响应,快速定位攻击,阻止风险扩散。事后行为审计,深度挖掘访问行为、分析攻击数据、提升 Web应用价值。通过部署WAF可以有效地防止SQL注入攻击。

(2)屏蔽错误信息。Web应用程序在提供给用户使用的过程中,会因用户的非规范性操作而反馈一些错误提示信息。开发者在编写代码的过程中,需要根据报错信息来调试应用程序。SQL注入多是利用服务器端回显的错误信息来进行攻击,故关闭网站的错误回显功能,可以减少被攻击的可能性。

(3)Web服务器日志检查。管理员启用Web服务器的日志记录,将可以记录访问者的访问时间、路径、文件、IP地址和其他信息。发生SQL注入攻击则会出现短时间内大量访问某一页面文件的现象,日志文件会因此而急剧增加。所以,用户通过检查日志文件的内容和大小,可以判断站点是否发生过 SQL注入攻击。

4 结束语

农村电商网络安全防御是一个动态、与时俱进的过程,本文以SQL注入攻击问题为研究重点,提出了农村电商平台网络安全有效的防范策略,以完善农村电商平台在技术层上的不足。并力求在良好的政策环境下鼓励和支持开拓创新,大力培养农村电商人才,配合完善农村物流服务体系,为农村电子商务快速、稳健发展提供更有力的保障和支撑。基于此,今后工作的开展将以农村电商平台网络安全态势分析为核心。

[1]李鑫,张维纬,隋子畅,郑力新.新型SQL注入及其防御技术研究与分析[J].信息网络安全,2016.

[2]王丹,赵文兵,丁治明.Web应用常见注入式安全漏洞检测关键技术综述[J].北京工业大学学报,2016.

[3]朱振,徐和平.法律视域下农村电子商务发展现状及对策研究[J].湖南科技学院学报,2016.

[4]吴斌,刘循.SQL注入攻击及漏洞检测防范技术[J].网络安全技术与应用,2017.

[5]李海光.计算机网络安全技术与防范策略[J/OL].电子技术与软件工程,2017.

[6]王瑜,李卓,姚微娜.Web安全威胁与防御技术研究[J].长春理工大学学报(自然科学版),2017.

[7]OWASP 2013 top 10 risks[EB/OL].https://www.owasp.org/index.php/ Top_10_2013-Top_10,2015.

[8]李志星,张威.大中型企业 Web应用程序中SQL注入的检测与防御[J].河南电力技术,2017.

[9]王溢,李舟军,郭涛.防御代码注入式攻击的字面值污染方法[J].计算机研究与发展,2012.

[10]张驰,罗森林.基于端口和编号的漏洞代码匹配方法研究[J].信息网络安全,2014.

[11]隋亮.基于渗透测试的 SQL注入漏洞检测与防范[D].东华大学,2014.

猜你喜欢

应用程序站点网络安全
删除Win10中自带的应用程序
基于Web站点的SQL注入分析与防范
2017~2018年冬季西北地区某站点流感流行特征分析
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
首届欧洲自行车共享站点协商会召开
怕被人认出
我国拟制定网络安全法
关闭应用程序更新提醒