论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
安全
›
网络安全
›
xss-基于Pikachu的学习
xss-基于Pikachu的学习
鼠扑
金牌会员
|
2024-5-19 02:57:46
|
显示全部楼层
|
阅读模式
楼主
主题
926
|
帖子
926
|
积分
2778
XSS毛病-跨站脚本攻击
XSS的原理
跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写肴杂,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户欣赏该页面时,嵌入Web里面的Script代码会被执行,从而到达恶意攻击用户的目标。XSS攻击针对的是用户层面的攻击!
XSS的分类
反射型
:非持久化,且需要使用钓鱼等手段诱骗用户点击恶意链接才能触发恶意代码。一般反射型 XSS 会出现在搜索页面,且大多数是用来获取用户的 cookie 信息的。虽然影响范围最大的是存储型的 XSS,但是现在针对存储型 XSS 的防御非常完备,所以在利用上,反射型的利用率还是比存储型高些。
攻击流程:
1. 攻击者发送带有XSS恶意的脚本链接给客户(该链接是正常服务器存在注入点的链接,且带着我们注入的内容)
2. 客户点击了恶意链接并访问了正常服务器
3. 服务器将XSS与页面信息返回客户端
4. 客户端解析后请求恶意服务器
5. 攻击者读取用户信息
复制代码
存储型
:存储型的 XSS,最大的特点是可持久化,因为在过滤条件差的情况下,存储型的 XSS 的恶意代码会直接被生存在服务器端的数据库中。而这个恶意代码被服务器读出输出到用户端的Web页面时,恶意代码会执行,从而到达攻击的目标。可以说存储型 XSS 是影响范围最大的 XSS。通常出现在批评、文章发表等可由用户输入,并随着服务器读出的地方,容易造成蠕虫,盗窃cookie等严重影响。
攻击流程:
1. 攻击者在正常服务器中注入XSS代码,且被服务器储存在了数据库中
2. 用户在网站登录状态下,访问了恶意服务器,且浏览了存在恶意脚本的页面
3. 正常服务器将页面信息与XSS脚本一同返回
4. 客户端解析了页面信息与XSS脚本代码,这时脚本代码会被执行,甚至会向攻击者的恶意服务器主动发起请求
5. 此时,攻击者就可以从自己的恶意服务器中读取用户数据
复制代码
DOM型
:DOM 型的 XSS 注入与反射型原理类似,只不过 DOM 型的 XSS 注入不需要经事后端代码处理,而是在前端 JavaScript 调用 DOM 元素时大概产生的毛病,大概触发 DOM 型 XSS 的 JavaScript 代码:
document.referer 返回跳转或打开到当前页面的页面的URI
window.name 可设置或返回存放窗口的名称的一个字符串
location 可以设置窗口跳转或者返回当前窗口的地址
innerHTML 内嵌HTML代码
documen.write 页面内写入字符
复制代码
常见的html标签以及过滤
XSS过滤绕过总结 - 随风kali - 博客园 (cnblogs.com)
CTF-赛题
Pikachu Xss 反射型(GET)
本想直接输入弹窗代码,让他弹窗的,发现长度有了限制,然后就看看是不是前端有限制。同时抓包也发现自己所写的东西被直接嵌入在html的代码当中。
[/code][align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191326382-756884850.png[/img][/align]
[align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191325693-1443484285.png[/img][/align]
F12审查元素,发现简直是前端限制了输入的长度,我们可以举行更改为长度100,然后再插入代码
[align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191325098-314804954.png[/img][/align]
成功了,成功弹窗 1
[align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191324464-2140857394.png[/img][/align]
[size=4]Pikachu Xss 反射型(POST)[/size]
这一题就是先登录,登录可以参考暴力破解登录,登录后就是一个注入点,可以直接尝试注入
[code]
复制代码
然后就得到了这个admin用户的cookie值
Pikachu Xss 存储型
这一题打开就是一个留言框,由前置知识了解到,这些留言板可以看成存储型Xss注入的注入点,我们可以写下恶意代码,当其他用户访问这个留言板,我们的恶意代码会直打仗发。
接下来我插入代码:
[/code]接下来我们革新网站看看会发生怎么个事
[align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191321544-2116249967.png[/img][/align]
我们的cookie信息被触发了,这就是[b]存储型的Xss[/b]
[size=4]Pikachu Xss DOM型[/size]
首先让他弹窗一下吧,我先试试,发现不行,回显what do you see?
[code]
复制代码
DOM范例了解到主要是js代码,所以我们cirl + u 查看源码,搜索what do you see,快速定位
里面有一些提示,payload也是直接告诉我们了,所以我们需要去分析这一串代码
他是将我们输入的字符串,拼接在
a标签
前面,最后输出what do you see
我输入的payload是将a标签闭合,然后用img标签去触发xss
'><img src=1 onerror=alert("xss");>
复制代码
完整的回显如下:
<a target="_blank" href='https://www.cnblogs.com/'><img src=1 onerror=alert("xss");>'what do you see?</a>
复制代码
Pikachu Xss DOM型(xss-x)
首先输入代码:
[/code]回显是一个超链接
[align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191319872-1526358909.png[/img][/align]
点击emo语句之后,就出现了释怀语句
[align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191319445-1073243664.png[/img][/align]
因为是DOM型,我们就用这个释怀语句,去源代码处搜索一下,到底怎么个事儿。
果然发现了js代码,代码逻辑就是点击了emo语句后,他会执行我们输入的字符串和emo语句的拼接,这时候就是闭合语句,执行xss注入。
[align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240501191318969-1451528763.png[/img][/align]
我们注入的payload如下:
[code]' onclick="alert('hhhhhhhhh')">
复制代码
留意这里alert是由双引号包裹,而alert里面的内容则是单引号,这俩得不一样,我也不太清楚为什么
Pikachu Xss (过滤)
这道题试了试,被过滤了,然后参考html的标签,过滤的各种绕过
paylaod:
<details open ontoggle="alert('xss');">
<input onfocus="alert('xss');">
<img src=1 onerror=alert("xss");>
<svg onload=alert("xss");>
<select onfocus=alert('xss') autofocus>
<iframe onload=alert("xss");></iframe>
<video><source onerror="alert('xss')">
复制代码
Pikachu Xss (htmlspecialchars)
输入 payload尝试一下:
'><img src=1 onerror=alert("xss");>
复制代码
回显是一个超链接,那我们就打开源码举行查看,搜
记录
这个关键词
打开后就是看不懂的一堆代码,开始去搜
htmlspecialchars
这个函数方法
很符合这个标题,并且发现了
单引号
并没有过滤。所有就有了下面的payload
' onclick='alert(1)’
复制代码
但是接下来我又尝试了如下的:
' onclick='alert("xss")
复制代码
也是成功了,我也是有点晕,这个双引号怎么就可以用了,也是不太懂。
Pikachu Xss (href输出)
'><img src=1 onerror=alert("xss");>
复制代码
还是老套路代入,发现一个超链接,开始源代码搜索;
发现都被过滤掉了,这道题的提示如下:
这里增补一点儿java的伪协议的知识
java伪协议
"javascript:" 协议是一种能够在 URL 中嵌入 JavaScript 代码并运行的协议。当欣赏器遇到一个包含 "javascript:" 的 URL 时,它会将后面的代码提取出来并在当前页面环境中执行。这就意味着我们可以通过 URL 来调用 JavaScript 函数或者执行一些 JavaScript 代码块。
将javascript代码添加到客户端的方法是把它放置在伪协议阐明符javascript:后的URL中。这个特殊的协议范例声明了URL的主体是恣意的javascript代码,它由javascript的表明器运行。如果javascript:URL中的javascript代码含有多个语句,必须使用分号将这些语句分隔开。
接下来回到标题,让我们用
伪协议
的方式去尝试一下xss的注入
javascript:alert("xss")
复制代码
Pikachu Xss (js输出)
我输入了一个:
haha
复制代码
然后查看源代码,发现自己输入的被代入到js代码当中
我们的输入的内容被直接看成变量
我们可以将其闭合,然后注释掉后面,所以payload:
';alert('xss');//
复制代码
成功注入。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
鼠扑
金牌会员
这个人很懒什么都没写!
楼主热帖
Java 基于Apache POI实现Excel读写操作 ...
Dapr 知多少 | 分布式应用运行时 ...
XAF新手入门 - 类型子系统(Types Info ...
记录一次NoSuchMethodError问题的解决 ...
C#生成putty格式的ppk文件(支持passph ...
Python 封装SNMP调用接口
5.15日 搭建青龙面板教程——狗东跑跑 ...
springboot开启单元测试的方法分享 ...
子查询优化之 Semi-join 优化 | StoneD ...
kube-scheduler的调度上下文
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表