网站的漏洞安全和防御

702 阅读11分钟

前言

网络的发展早已融入到我们的日常生活中,据不完全统计,全球互联网用户数量在不断攀升,预计到2024年将达到约50亿人。网络不仅改变了我们的通信方式,还在多个方面影响着我们的生活。

网络在快速发展的同时,网络安全的重要性也变的尤为凸显,数据泄露,社交工程,恶意软件,网络攻击,间谍活动,网络恐怖主义等等

说远了,在这里我借用我们公司大佬的分享会做一下总结。关于网站的漏洞安全和防御

引言

网站的信息安全是对网站的严重考验,客户会因为泄露信息而感到不安,商家会因为泄露信息丢失订单,损失财务,影响以后推广口碑。信息泄露对企业的危害是多方面的,‌包括经济损失、‌信誉损害、‌法律责任、‌竞争优势丧失、‌个人隐私侵犯等。 1722651858922.jpg

常见的攻击方式

WEB网页漏洞

常见的web网页漏洞很多是来自程序的bug,常见的方式有SQL注入,XSS攻击,CSRF攻击等方式。

社工欺骗

主要是通过域名反查信息,伪装成域名持有人来进行解析IP,最大的案例就是百度在2010年被域名欺骗解析到谷歌服务器上,导致百度打不开,谷歌服务器瘫痪,具体的过程

服务器漏洞

服务器漏洞主要是环境漏洞和数据库漏洞,灾难性比较大的是Struts漏洞,当时国家部级网站,JD,taobao无一幸免。还有ARP,IIS漏洞,服务器环境漏洞等。

弱口令漏洞

弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令就是我们可以简单的理解为能让别人随便就猜出的密码。

注入漏洞的方式

SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。

SQL注入攻击方式

  • 表单提交,主要是POST请求。
  • URL参数提交,主要为GET请求参数。
  • Cookie参数提交。
  • HTTP请求修改如Referer,User_Agent。

SQL注射漏洞的原理

sql注入就是通过把SQL语句插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 理解这张图就可以理解sql注入的原理,在mysql数据库中存在一个Information_schema数据库,这个数据库里面存在两张表。 一个是tables表,里面存有所有的表名和数据库名;另一个是columns表,里面存有所有的字段名,字段所属的表名,字段所属的库名。 第一步我们查找数据库名,第二步我们通过查找tables表里的数据库,可以确定表名, 第三步我们通过前两步得到的库名和表名就可以在columns这张表中得到字段名,最后一步我们通过前几步得到的数据库名、表名、字段名得到想要的数据。

SQL注入过程

  1. 测试注入:找注入点,判断是否可以注入。
  2. 判断注入:判断是数字型注入还是字符型注入(and 1=1;and 1=2)。
  3. 注入字符:如果是字符型注入,判断闭合符('"')"))。
  4. 联合查询:优先使用联合查询注入->报错查询->bool型查询->时间盲注->宽字节。
  5. 判断列数,判断错位,查询表段:判断列数,order by。对判断显错位,union,select,1,2,3,...,求库,求表,求字段,求数据。
  6. 进后台,拿权限,脱库:找后台,御剑扫描后台目录。上传一句话木马,菜刀,蚁剑联盟

XSS跨站脚本攻击类型

非持久性跨站(反射性XSS)

即反射型跨站脚本漏洞,是目前最普遍的跨站类型。跨站代码一般存在于链接中,请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码不存储到服务端(比如数据库中)。

持久型跨站(存储式XSS)

这是最危害最直接的跨站类型,跨站代码存储于服务端(比如数据库中)。常见情况是某用户在论坛发贴,如果论坛没有过滤用户输入的Javascript代码数据,就会导致其他浏览此贴的用户的浏览器会执行发贴人所嵌入的Javascript代码。

DOM跨站(DOM XSS)

是一种发生在客户端DOM(Document Object Model文档对象模型)中的跨站漏洞,很大原因是因为客户端脚本处理逻辑导致的安全问题。

XSS攻击

跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。 XSS攻击使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScript等。XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。

XSS跨站如何防御

检查Script,Iframe

与SQL注入防护的建议一样,假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。

增加验证

不仅要验证数据的类型,还要验证其格式、长度、范围和内容。

过滤数据端

不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。

检查输出数据

对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

CSRF攻击

在跨站请求伪造(CSRF)攻击里面,攻击者通过用户的浏览器来注入额外的网络请求,来破坏一个网站会话的完整性。 而浏览器的安全策略是允许当前页面发送到任何地址的请求,因此也就意味着当用户在浏览他/她无法控制的资源时,攻击者可以控制页面的内容来控制浏览器发送它精心构造的请求。CSRF-GET型与CSRF POST型攻击。

如何防御CSRF

验证字段

验证 HTTP Referer 字段,因为这个字段记录着http请求的来源地址。

增加Token认证

在请求地址中添加 token 并验证:用户在登录网站后,会产生一个token存在session之中。当服务器收到请求后,会把token从session中拿出来和请求中携带的token匹配。不匹配则被服务器认为是CSRF攻击。

HTTP增加属性并验证

在 HTTP 头中自定义属性并验证:这种方法也是用token并进行验证,通过 XMLHttpRequest 这个类,可以一次性给所有该类请求加上 csrftoken 这个 HTTP 头属性,并把token值放入其中。

验证 HTTP Referer 字段

根据 HTTP 协议,在 HTTP 头中有一个字段叫Referer,它记录了该 HTTP 请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站。

其他攻击方式

文件上传漏洞

文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。大多数的上传漏洞被利用后攻击者都会留下WebShell以方便后续进入系统。攻击者在受影响系统放置或者插入WebShell后,可通过该WebShell更轻松,更隐蔽的在服务中为所欲为。 WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)。

缓冲区溢出ARP冲击

在计算机内部,输入数据通常被存放在一个临时空间内,这个临时存放的空间就被称为缓冲区,缓冲区的长度事先已经被程序或者操作系统定义好了。向缓冲区内填充数据,如果数据的长度很长,超过了缓冲区本身的容量,那么数据就会溢出存储空间,而这些溢出的数据还会覆盖在合法的数据上。 操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。

使用含有已知漏洞的组件

这种安全漏洞普遍存在。基于组件开发的模式使得多数开发团队不了解其应用或API中使用的组件,更谈不上及时更新这些组件了。如Retire.js之类的扫描器可以帮助发现此类漏洞,但这类漏洞是否可以被利用还需花费额外的时间去研究。

代码执行漏洞

代码执行漏洞是通过代码执行来执行计算机语言代码。 php代码注入漏洞造成的主要原因是过滤不严格,造成恶意代码被执行。该漏洞主要是函数的参数过滤不严格所致,严重时可以直接写入webshell。

总结

以上,就是我对网站的漏洞安全和防御的总结。 说的不好,或者是哪里不对的,都可以指正,所谓“三人行,必有我师焉”。

互联网和Web技术广泛使用,使Web应用安全所面临的挑战日益严峻,Web系统时时刻刻都在遭受各种攻击的威胁,在这种情况下,需要制定一个完整的Web攻击防御解决方案,通过安全的Web应用程序、Web服务器软件、Web防攻击设备共同配合,确保整个网站的安全。任何一个简单的漏洞、疏忽都会造成整个网站受到攻击,造成巨大损失。此外 ,Web攻击防御是一个长期持续的工作,随着Web技术的发展和更新,Web攻击手段也不断发展,针对这些最新的安全威胁,需要及时调整Web安全防护策略,确保Web攻击防御的主动性,使Web网站在一个安全的环境中为企业和客户服务。

其他好看文章分享

Three.js 模型渲染,换肤系列

# 无插件实现一个好看的甘特图

欢迎留言!!!!!