【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头来决定的。

浙公网安备 33010602011771号