赞
踩
点击上方蓝字关注!
注:本篇文章为个人学习笔记仅供学习交流。概述
跨站脚本攻击,通常称为XSS,是一种通过代码注入的网站应用程序安全漏洞。攻击者可以通过向网页中注入恶意代码,导致用户浏览器在加载网页,渲染HTML时就会执行恶意代码。(本篇示例在pikachu漏洞练习平台演示,搭建教程见下篇。)常见XSS漏洞
1.反射型XSS 攻击者输入xss代码,提交给服务器,服务器解析后,在响应中返回输入的xss代码,最终由浏览器执行,具体见下面示例。 反射型xss(get) 先输入1,查看一下URL的变化,由于输入框限制输入长度,所以在URL框输入xss代码。 将1改为如下代码,回车后就出现了弹窗。<script>alert('黑客帮')script>
反射型xss(post)
登入框插入不了xss,所以先登录账号密码admin/1234546然后直接在输入框输入同上的xss就行了。
2.存储型XSS
存储型xss提交的xss代码会存在服务端,,下次无论是自己还是别人请求页面时会自动执行xss代码,存储型xss的典型应用有留言板,在线聊天室,邮件服务等。
还是插入相同的代码,点击submit即可将代码插入服务端,下次刷新也会出现弹窗。
3.DOM XSSDOM xss的代码不需要服务端解析响应的直接参与,触发xss的是浏览器端的DOM解析器。同样先测试一下代码,并打开源代码查看。很明显是无法执行xss的。
换一种方式,闭合引号,用onclick,见下方代码。然后点击click me!,在源代码可以看到xss代码,然后点击what do you see?即可看到弹窗。
' onclick="alert('黑客帮')">
其他类型XSS通关
xss之盲打
所谓盲打,顾名思义就是有输入框就输入xss的代码。
登录后台,即可看到弹窗。http://127.0.0.1/pikachu-master/vul/xss/xssblind/admin.php
xss之过滤
大小写过滤
<ScriPT>alert('黑客帮')ScriPT>
xss之htmlspecialchars
htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数
预定义的字符是
& 成为 &
" 成为 "
' 成为 '
< 成为 <
> 成为 >
可用引号类型
ENT_COMPAT:默认,仅编码双引号
ENT_QUOTES:编码双引号和单引号
ENT_NOQUOTES:不编码任何引号
所以,我们先测试一下,输入' " <>666后,查看源代码可知,单引号没被编码,说明后端用的默认的htmlsspecialchars函数做处理。
所以,我们用如下代码即可。(点击蓝色字体即可弹出)
' onclick='alert(/hello/)'
xss之href输出
同样,我们可以输入一写字符进行测试,输入aa'"<>然后查看页面源代码,按Ctrl+F,搜索aa,可以发现这次的输出是在href中,但是这次代码将双引号进行了过滤,输出在a标签里的href属性,可以使用js协议来执行js。
我们输入如下代码,然后点击蓝色字体。
javascript:alert(/黑客帮/)
xss之js输出
先输入hello测试一下,查看发现,他将我们输入的字符存到了js代码里面然后进行判断,我们可以根据代码写一个闭合。如下:
'script><script>alert(/黑客帮/)script>
- End -
往期推荐CTF自学笔记(二)SQL注入攻击[一]
CTF自学笔记(二)SQL注入攻击[二]
CTF自学笔记(二)SQL注入攻击[三]
觉得不错,请点个在看
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。