【XSS跨站】---代码及httponly绕过---day27
【XSS跨站】---代码及httponly绕过---day27
一、HttpOnly
1、什么是httponly
1、如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。XSS全称Cross SiteScript。
2、各个主流的脚本语言都支持httponly。
2、php中httponly的设置
在设置了httponly之后,就无法获取cookie了
虽然httponly可以阻止获取cookie的攻击,但是XSS漏洞还是存在的,可以用alert(1)来测试。
3、攻击思路
①我们的目标是进入后台
那么除了获取cookie之外,还可以直接账号密码登录,但是账号密码又分为两种情况,保存读取和没保存读取,也就是是否让浏览器记住密码了。
②保存读取:
-
攻击思路:读取保存的数据
-
平台模块:
这个type值,就在登录界面查看源代码,
③没保存读取:
- 攻击思路:表单劫持
- 前提:XSS跨站漏洞要产生在登录框那里
- 原理:管理员输入账号密码之后,一份发给服务器,另一份发给攻击者。
二、XSS-labs平台
x、下载地址
https://github.com/do0dl3/xss-labs
1、level-1
①界面
②测试
把url中的name的值更改,然后界面相应的显示就会更改。
那么说明这个name的地方能写js语句,存在跨站漏洞。
③攻击
2、level-2
①界面
②测试
<script>alert(1)</script>
测试keyword
没有弹窗
审查元素。
③源码分析
htmlspecialchars:
所以在上面我们的符号改变了
- 绕过思路:
审查页面元素可以看到:
此处还有一句有我们写的测试语句:
这个地方没有执行出来,是因为有双引号,那么我们就可以在测试时候,先闭合双引号,然后再闭合标签
payload:
"><script>alert(1)</script>
④攻击:
使用上面的payload,成功。
3、level-3
①界面:
②测试
还是,输入111之后,显示在前端页面。
测试使用第二关的方法,闭合。行不通
看起来也是尖括号贝转义了,被过滤。
③攻击思路
使用表单中的onclick属性,来执行js代码。这样就避免了尖括号的使用。
payload:
keyword=' onclick='alert(1)
4、level-4
①界面
②测试
使用3的方法
5、level-5
①界面:
②测试
使用4的方法,行不通。
源码分析:
③绕过思路:
使用html中的链接标签:
payload:
"> <a href=javascript:alert(1)>
相当于是添加了一个超链接标签。
6、level-6
①界面:
②测试:
用level-5的方法:行不通,发现吧href给过滤了。
源码分析:
没有加正则表达式,可以大小写绕过。
③绕过方法:
大小写绕过payload:
"> <a Href=JavasCript:alert(1)>
7、level-7
①界面:
②源码分析:
测试使用6的方法:
发现行不通:
截断了
但是我们知道源码中这个检测,只检测了一次,没有循环的去替换检测。所以我们可以多弄几次。
③绕过:
payload:
"> <a HHREFref=JavasCscriptript:alert(1)>
8、level-8
①界面:
②测试:
发现有下划线截断了。
源码分析:
测试发现大小写和重复写都不管用。
③绕过:
思路:采用编码绕过
选择这个模式
payload:
javascript:alert(1)
9、level-9
①界面:
②测试:
测试使用level-8的方法:
行不通。
③源码分析:
检测的是有没有http://
④绕过:
javascript:alert(1)//http://
采取上面的方式来绕过,第一个//用来注释掉后面的http
绕过成功。
10、level-10
①界面:
②源码分析:
③payload
keyword=well%20done!&t_sort="type="text" onclick="alert(1)"
其中type="text",是让这个数据框显示出来,这样的话才能够利用,否则hidden的话就隐藏起来了。
11、level-11
①界面:
② 源码分析:
发现这个$str33的值是从Referer里来的,抓包添加Referer头就行了。payload和10题中一样。
三、迪哥生动讲解---同源策略防止跨站攻击
1、跨站攻击
来源就是通过http请求头中的,Referer头来决定的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?