Fork me on GitHub

集训第八天:XSS

杨涛学长今天给介绍了XSS。

基础知识(了解掌握)

HTML

一种超文本标记语言。其结构包括头部分(Head)和主体部分(Body),其中头部提供关于网页的信息,主体部分提供网页的具体内容。由HTML各类标签组成。

各类标签:

img:
插入图片

body:
文档的主体

iframe:
在网页显示网页

Javascript:

一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。

cookie与session:

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

WAF

Web应用防护系统(也称:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。国际上公认的一种说法是:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

Javascript弹框操作

Javascript函数内嵌实现形式:
相关函数:

alert():用于提示

confirm():用于和用户交互确认

prompt():弹框让用户输入信息

XSS

跨站脚本攻击(cross site script execution),一种出现在web应用程序中的计算机安全漏洞。由于web应用对用户的输入过滤不严而产生。恶意攻击者通过HTML注入篡改网页,插入恶意脚本,从而控制用户浏览器行为的一种攻击方式。

危害

1、网络钓鱼,包括盗取各类的用户账号

2、窃取用户cookie

3、强制弹出广告页面,刷流量

4、页面挂马

5、提升用户权限,进一步渗透网站

6、传播扩展脚本蠕虫

相比于SQL注入,SQL注入是对后端的恶意篡改,而XSS是对前端的恶意攻击。

反射型XSS

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

一般使用的已经构造好的恶意URL发送给受害者,诱使受害者点击触发,只执行一次。

杨涛学长的反射型XSS原理图

存储型XSS

比反射型跨站脚本更具威胁,并且可能影响到web服务器的自身安全。

攻击者事先将恶意JavaScript代码上传或存储到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。

绕过XSS限制

绕过magic_quotes_gpc(通过String.fromCharCode()函数)

HEX编码

改变大小写

关闭标签 (><script>slert('xss');</script>)(闭合前面的标签)

相关PHP函数

str_replace():以其他字符替换字符串中的一些字符(区分大小写)

addslashes():在预定义字符(’、”、\、NULL)之前添加反斜杠

stripslashes():删除由addslashes()函数添加的反斜杠

trim():移除字符串两侧的空白字符或其他预定义字符

htmlspecialchars():把预定义的字符转换为HTML实体(&(和号)成为&;”(双引号)成为”;’(单引号)成为 ‘;<(小于)成为<;>(大于)成为>)

htmlspecialchars_decode():把预定义的HTML实体转换为字符

mysql_real_escape_string():对字符串中的特殊符号(\x00、\n、\r、\、‘、“、\x1a)进行转义

strip_tags():剥去字符串中的 HTML、XML 以及 PHP 的标签,但允许使用标签

本站访客数: