[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了肖老师(Seak)的分享,介绍恶意代码与APT攻击中的武器,包括A2PT的攻击武器、普通APT组织的自研恶意代码、商用恶意代码、无恶意代码作业、开源和免费工具等。这些天分享了很多系统安全和软件安全的知识,接下来让我们回归网络安全,做做XSS跨站脚本攻击案例。这些题目来自Fox好友,在此感谢他。主要内容包括XSS原理、不同类型的XSS、XSS靶场9道题目、如何防御XSS。基础性文章,希望对您有所帮助~

作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

文章目录

  • 一.XSS原理
  • 二.不同类型的XSS
    • 1.反射型
    • 2.存储型
    • 3.DOM型
  • 三.XSS案例:第1关
  • 四.XSS案例:第2关
  • 五.XSS案例:第3关
  • 六.XSS案例:第4关
  • 七.XSS案例:第5关
  • 八.XSS案例:第6关
  • 九.XSS案例:第7关
  • 十.XSS案例:第8关
  • 十一.XSS案例:第9关
  • 十二.如何防御XSS
    • 1.输入过滤
    • 2.输出编码
    • 3.标签黑白名单过滤
    • 4.代码实体转义
    • 5.httponly防止cookie被盗取
  • 十三.总结

PS:本文参考了Fox好友视频、安全网站和参考文献中的文章(详见参考文献),并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。

作者的github资源:
软件安全:https://github.com/eastmountyxz/Software-Security-Course
其他工具:https://github.com/eastmountyxz/NetworkSecuritySelf-study
XSS案例:https://github.com/eastmountyxz/XSS-Experiment


声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提高班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制作(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客常用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)
[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell
[网络安全自学篇] 五十九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及shell深度提权
[网络安全自学篇] 六十.Cracer第八期——(2)五万字总结Linux基础知识和常用渗透命令
[网络安全自学篇] 六十一.PE文件逆向之数字签名详细解析及Signcode、PEView、010Editor、Asn1View等工具用法(二)
[网络安全自学篇] 六十二.PE文件逆向之PE文件解析、PE编辑工具使用和PE结构修改(三)
[网络安全自学篇] 六十三.hack the box渗透之OpenAdmin题目及蚁剑管理员提权(四)
[网络安全自学篇] 六十四.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现及详解
[网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)
[网络安全自学篇] 六十六.Vulnhub靶机渗透之DC-1提权和Drupal漏洞利用(二)
[网络安全自学篇] 六十七.WannaCry勒索病毒复现及分析(一)Python利用永恒之蓝及Win7勒索加密
[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析
[网络安全自学篇] 六十九.宏病毒之入门基础、防御措施、自发邮件及APT28样本分析
[网络安全自学篇] 七十.WannaCry勒索病毒复现及分析(三)蠕虫传播机制分析及IDA和OD逆向
[网络安全自学篇] 七十一.深信服分享之外部威胁防护和勒索病毒对抗
[网络安全自学篇] 七十二.逆向分析之OllyDbg动态调试工具(一)基础入门及TraceMe案例分析
[网络安全自学篇] 七十三.WannaCry勒索病毒复现及分析(四)蠕虫传播机制全网源码详细解读
[网络安全自学篇] 七十四.APT攻击检测溯源与常见APT组织的攻击案例
[网络安全自学篇] 七十五.Vulnhub靶机渗透之bulldog信息收集和nc反弹shell(三)
[网络安全自学篇] 七十六.逆向分析之OllyDbg动态调试工具(二)INT3断点、反调试、硬件断点与内存断点
[网络安全自学篇] 七十七.恶意代码与APT攻击中的武器(强推Seak老师)


前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差异备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包



一.XSS原理

推荐前文:
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
FOX好友:https://www.bilibili.com/video/BV157411L789
XSS(跨站脚本攻击)详解 - CSDN谢公子大佬
《XSS跨站脚本攻击剖析与防御》 邱永华老师

跨站脚本攻击(Cross-site scripting,XSS) 是指恶意攻击者往Web页面里插入恶意代码,当用户浏览该网页时,嵌入Web中的恶意代码就会被执行,从而达到恶意攻击用户的目的。其英文名称缩写为CSS,为了与层叠样式表(Cascading Style Sheets)区分,所以才叫XSS。

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、 Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第1张图片


漏洞成因
XSS归根结底是因为程序中没有过滤用户输入的内容,假如用户输入的内容中含有特殊字符,如< >,这样浏览器会误以为是HTML标签中去执行,从而产生XSS漏洞。如下图所示,在URL中将搜索关键字设置为JS代码,执行了alert()函数。该图中,上面有一个URL,下面是一个页面返回的HTML代码,我们可以看到白色部分HTML是我们事先定义好的,黑色部分参数是用户想搜索的关键词。当我们搜索了test+Div最后等于123,后台反馈页面的搜索引擎会告诉用户搜索了什么关键词,结果如何等等。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第2张图片

这个地方如果没有做好转移,可能会造成XSS跨站,我们可以看到蓝色部分是我们事先定义好的结构,被攻击者利用之后它先把这个DIV结束了,最后加上一个script标签,它也有可能不跟你谈标签,直接发送到它的服务器上。参数未经过安全过滤,然后恶意脚本被放到网页中执行,用户浏览的时候就会执行了这个脚本。该漏洞存在的主要原因为:

  • 参数输入未经过安全过滤
  • 恶意脚本被输出到网页
  • 用户的浏览器执行了恶意脚本

XSS主要危害

  • 网络钓鱼,包括盗取各类用户账号
  • 窃取用户Cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作
  • 劫持用户浏览器会话,从而执行任意 操作,例如进行非法转账、强制发表日志、发送电子邮件等
  • 强制弹出广告页面、恶意刷流量等
  • 网站挂马,进行恶意操作,例如任意篡改页面信息、非法获取网站信息、删除文件等
  • 进行大量的客户端攻击,例如DDOS攻击、传播跨站脚本蠕虫等
  • 获取用户端信息 ,例如用户的浏览记录、真实IP地址、开放的端口等
  • 结合其他漏洞,如CSRF漏洞,实施进一步作恶

在这里插入图片描述



二.不同类型的XSS

XSS分为三种类型:反射型、存储型以及DOM型。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第3张图片


1.反射型

反射型XSS又称为非持久型、参数型跨站脚本。这种类型的跨站脚本是最常见,也是使用最广泛的一种,主要用于恶意脚本附加到URL地址的参数中。它需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面、输入框、URL参数处。反射型XSS大多数是用来盗取用户的Cookie信息。

  • 特点:非持久性

其攻击流程如下图所示:

在这里插入图片描述

示例:这就是最基本的反射型的XSS漏洞,其代码如前面所述。

  • 漏洞数据流向是: 前端–>后端–>前端
//前端页面 index.html
<html>
	<head><title>XSS测试1title>head>
	<body>
		<form action='xss.php' method="get">
		请输入用户名:<br>
		<input type="text" name="name" value="" />
		<input type="submit" name="提交" />
		form>
	body>
html>

//后端页面 xss.php

当用户提交数据,输入 < script>alert(‘hack’)< /script> 代码会提交给后台,并弹出hack页面,这就表示我们的恶意语句被页面执行了。

在这里插入图片描述

在这里插入图片描述



2.存储型

存储型XSS又称为持久型跨站脚本,比反射型XSS更具威胁性,并且可能影响到Web服务器自身安全。它的代码是存储在服务器中的,如在个人信息或发表文章等地方插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。存储型XSS一般出现在、评论、博客日志等于用户交互处,这种XSS比较危险,容易造成蠕虫、盗窃cookie等。

  • 特点:持久性

其攻击流程如下图所示:

在这里插入图片描述

在存储型XSS中,可以看到这个URL上面并没有代码,但是依然弹出了一个“1”。它是发现个人资料页的时候有一个XSS漏洞,在个性签名的位置填入了一个XSS标签,弹出了一个“1”,把这个地址发给别人,别人看到这个地址并没有什么代码以为这个页面是安全的,结果一打开就插入了这个XSS代码。

存储型XSS的攻击危害比较大,因为它的页面当中是看不到这个Script的代码,别人防不胜防。只要管理员没有发现,下一个用户或者下一个用户一直接发它,而反射型需要用户主动点击的。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第4张图片


示例:假设现在存在一个 index2.html 代码,用户提交ID和用户名并存储至数据库中。

<html>
	<head><title>XSS测试2title>head>
	<body>
		欢迎大家阅读CSDN Eastmount的博客,一起进步,一起加油喔!<br />
		<form action='xss2.php' method="post">
		请输入用户名:<br>
		ID:<input type="text" name="id" value="" /> <br />
		Name:<input type="text" name="name" value="" /> <br />
		<input type="submit" name="提交" />
		form>
	body>
html>

xss2.php代码如下所示:


	//获取提交的表单值
	$id=$_POST["id"];
	$name=$_POST["name"];
	echo $id,'
'
; echo $name,'
'
; //连接数据库 //因为PHP版本是7.3的,因此用mysqli_connect()而不是用mysql_connect() $con = mysqli_connect("localhost","root","123456", "xssdb"); if (!$con) { die('Could not connect database: ' . mysqli_error()); } //插入数据表 $sql = "insert into xss (id,name) values ('{$id}','{$name}');"; echo $sql; $result

此时另一个页面 select.php 负责提供给其他用户访问,则可以看到我们的信息。


	$id = $_GET['id'];

	//链接数据库
	$con = mysqli_connect("localhost","root","123456", "xssdb");
	
	//查询数据
	$sql = "select * from xss where id='{$id}';";
	$result = mysqli_query($con, $sql);
	
	//$data = mysqli_fetch_all($result); // 从结果集中获取所有数据
	//print_r($data);
	
	while($row = mysqli_fetch_assoc($result)) {
		echo $row['name'];
	}
?>

当我们输入正确的值,如下图所示:
id:1
name:yangxiuzhang

在这里插入图片描述


在这里插入图片描述

此时数据库中可以看到我们插入的值。

在这里插入图片描述

通过本地网址(localhost:8088/xss/select.php?id=1)我们能获取id为1对应的name值。

在这里插入图片描述

当我们输入JS代码时,该程序又将如何运行呢?接着我们插入如下数据:
id:2
name:< script>alert(‘hack’)< /script>

注意,这里的hack的单引号要进行转义,因为sql语句中的$name是单引号的,所以这里不转义的话就会闭合sql语句中的单引号,不然注入不进去。

在这里插入图片描述

原理:
用户提交数据到后端,后端存储至数据库中,然后当其他用户访问查询页面时,后端调出数据库中的数据,显示给另一个用户,此时的XSS代码就被执行了。

在这里插入图片描述

此时数据库插入的内容如下所示,可以看到JS代码已经成功插入我们的后台。

在这里插入图片描述

最后,我们调用 select.php (localhost:8088/xss/select.php?id=2)页面,可以看到成功执行了该脚本文件。

  • 存储型XSS的数据流向为:前端–>后端–>数据库–>后端–>前端

在这里插入图片描述



3.DOM型

首先,什么是DOM呢?
DOM是指文档对象模型(Document Object Model),是一个平台中立和语言中立的接口,也是处理可扩展标记语言的标准编程接口,有的程序和脚本可以动态访问和修改文档的内容、结构和样式。在Web开发领域的技术浪潮中,DOM是开发者能用来提升用户体验的最重要的技术之一,而且几乎所有的现在浏览器都支持DOM。

其次,什么是DOM-XSS呢?
DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,不经过后端,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。

  • 特点:DOM-XSS不与后台交互

DOM型的XSS是一些有安全意识的开发者弄出来的,比如说接受参数会做一些过滤,把一些字符转义一下,但是转义之后依然会存在着XSS的情况。常见可能触发DOM-XSS的属性包括:document.referer、window.name、location、innerHTML、documen.write等。

下面Script通过ID获得的这个值,复制到了这个DIV上,经过DOM操作之后,之前转义的字符就变为它的标签,所以经过DOM操作的XSS我们称之为DOM-XSS。它有可能通过URL传播,也有可能通过服务器传播。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第5张图片

最后,DOM型跨站脚本的攻击是如何实现呢?
下面简单讲解一个DOM-XSS代码,假设前端是一个index3.html页面。

<html>
	<head><title>DOM-XSS测试3title>head>
	<body>
		欢迎大家阅读CSDN Eastmount的博客,一起进步,一起加油喔!<br />
		<form action='xss3.php' method="post">
		请输入用户名:<br>
		<input type="text" name="name" value="" style="width:400px" /> <br />
		<input type="submit" name="提交" />
		form>
	body>
html>

接着设置后台页面,xss3.php用于获取提交的值并显示其在页面中。注意,代码是获取username中的值,然后显示在print内,这也是导致XSS的原因。


	//获取提交的表单值
	$name=$_POST["name"];
?>	
<input id="username" type="text" value="$name; ?>"/>

<div id="print">
	<!-- 显示获取的内容 -->
</div>
<script type="text/javascript">
  //获取username值并输出在print内,这里是导致xss的主要原因
  var text = document.getElementById("username");
  var print = document.getElementById("print");
  print.innerHTML=text.value;  
</script>

此时,当我们输入正常的参数,它显示的结果如下图所示,是正常显示的。

在这里插入图片描述
在这里插入图片描述

而当我们输入恶意代码的时候,比如提交 给后台,它会执行我们的JS代码,弹出hack的窗体。从而证明了DOM-XXSS是存在的。

  • DOM型跨站脚本漏洞的数据流向是:前端->浏览器

在这里插入图片描述

在这里插入图片描述



三.XSS案例:第1关

首先,看下弹窗机制。

  • 利用基本的script标签来弹窗
    < script>alert(‘xss’)
  • 利用iframe标签的src属性来弹窗
    < iframe src=javascript:alert(‘xss’)>
  • 利用标签的href属性来弹窗
    < a href=javascript:alert(‘xss’)>Eastmount
    此时超链接javascript:alert(‘xss’)效果和浏览器直接打开这个地址是一样的,这里还可以使用javascript:alert(document.cookie)来弹出当前会话的cookie。
  • 利用标签来弹窗
    < img scr=1 οnerrοr=alert(‘xss’)>
    借用img标签的onerror事件,img标签支持onerror事件,在装载文档或图像的过程中如果发生了错误,就会触发onerror事件。可以使用一张提示错误的图片代替显示不了的图片。
    < img src=“http://www.baidu.com/img/logo.gif” οnclick=alert(‘xss’)>
    当src后面的值正确时,可以用onclick事件来触发弹窗。这里不论src后面的值是否正确,只要点击鼠标,就会触发弹窗事件。

接着用WAMP()搭建环境,大家也可以用PHPSTUDY或服务器。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第6张图片

九道题目对应的位置如下,htdocs/xss路径下。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第7张图片


XSS靶场第一关源码

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>FOX-XSS闯关-第一关</title>
</head>
<body>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body,td,th {
	color: #F00;
}
</style>

<hr>

<h1>FOX-XSS闯关-第一关</h1><hr>
<h3>提示:以get传递name参数名,如xxs1.php?name=fox<br>
任务要求:绕过过滤,成功执行js脚本即成功<br>
靶场说明:通过xss绕过技术执行恶意脚本<br>
<a href="https://wpa.qq.com/msgrd?v=1&uin=79335929&site=houdao.com&menu=yes">联系作者</a>
</strong>
Hello

	header("Content-Type:text/html; charset=utf-8");
	if(isset($_GET)&&!empty($_GET)) {
		$name = $_GET["name"];
		echo $name;
	}
?>
</body>
</html>

运行结果如下图所示:

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第8张图片


当我们输入“fox”值是弹出对应的结构,如下图所示:

  • http://localhost/xss/xss1.php?name=fox

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第9张图片


分析源码

  • 无过滤,直接用常规的进行绕过
  • < script>alert(‘Eastmount’)
    注意:作者增加了多余的空格,否则Markdown无法显示上述脚本代码。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第10张图片

运行结果如下图所示,直接弹窗,这也是最简单的情况。

[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)_第11张图片



四.XSS案例:第2关

XSS靶场第二关源码

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>FOX-XSS闯关-第二关</title>
</head>
<body>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body,td,th {
	color: #F00;
}
</style>

<hr>
<h1>FOX-XSS闯关-第二关</h1><hr>
<h3>提示:以get传递name参数名,如xxs2.php?name=fox<br>
任务要求:<br>
绕过过滤,成功执行js脚本即成功<br>
靶场说明:通过xss绕过技术执行恶意脚本<br>
<a href="https://wpa.qq.com/msgrd?v=1&uin=79335929&site=houdao.com&menu=yes">联系作者</a>
</strong>
Hello

	header("Content-Type:text/html; charset=utf-8");
	if(isset($_GET)&&!empty($_GET)) {
		$name = $_GET["name"];
		$name = preg_replace("/
                    
                    

你可能感兴趣的:(网络安全,Web安全,渗透&攻防)