代码审计第四节-XSS基础知识

  • A+
所属分类:代码审计

代码审计第四节主要是讲解XSS的一些基础知识。跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意javaScript代码,当用户浏览该页之时,嵌入其中Web里面的javaScript代码会被执行,从而达到恶意攻击用户的特殊目的。目前xss可分为3类,存储型、反射型、还有Dom型。相对来说反射型的漏洞会多一些,但是存储型也会很多,危害不用多说,大部分xss漏洞都是用来盗取cookie,进行后台登陆,造成企业非常大的危害。

对于xss,wooyun上面也是特别多实例来介绍xss。

http://www.wooyun.org/whitehats/%E5%BF%83%E4%BC%A4%E7%9A%84%E7%98%A6%E5%AD%90/type/1/page/1

代码审计第四节-XSS基础知识

你可以参考大牛文章进行学习,来进行挖掘。其实xss危害也是非常大的,我在wooyun上面进行搜索如下:

代码审计第四节-XSS基础知识

所以为了互联网安全,我们开始学习xss基础吧。

首先写点简单代码,来给大家认识一下,什么叫xss弹框。前提是你有一个环境,我们采用wamp这个环境来运行一下代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XSS</title>
</head>
<body>
 
<form action="" method="get">
<input type="text" name="xss">
<input type="submit">
</form>
 
 
<hr>
 
<?php $xss = $_GET['xss']; echo '你输入的字符为 '.$xss; ?>
</body>
</html>

代码审计第四节-XSS基础知识

这个是显示的结果。那么我们在看看源代码有什么变化没有。

代码审计第四节-XSS基础知识

我们输入的123是不是原样显示在源代码里面了。如果在cms源代码里面会怎么样呢,没有经过任何过滤,会发生什么呢?为了证明我们猜想,我们输入<script>alert(1)</script>

代码审计第四节-XSS基础知识

代码审计第四节-XSS基础知识

我们想要的框框出来了。其实我们的代码就原样显示在源代码中了。

代码审计第四节-XSS基础知识

恶意破坏者或者是白帽子主要是来进行获取管理员的cookie,那么我们来进行尝试一下看看能不能获取到管理员cookie呢?

代码审计第四节-XSS基础知识

这是我们一个xss登陆平台。

代码审计第四节-XSS基础知识

这个是需要插入到有缺陷的地方,来查看结果。

代码审计第四节-XSS基础知识

这是我们获取到cookie,那么利用cookie就可以进行后台登陆了。这是没有过滤的情况下,那么还有下面的情况:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XSS利用输出的环境来构造代码</title>
</head>
<body>
<center>
 
<h6>把我们输入的字符串 输出到input里的value属性里</h6>
 
 
<form action="" method="get">
 
<h6>请输入你想显现的字符串</h6>
 
<input type="text" name="xss_input_value" value="输入">
<input type="submit">
</form>
 
 
<hr>
 
<?php
$xss = $_GET['xss_input_value'];
if(isset($xss))
{
echo '<input type="text" value="'.$xss.'">';
}
else
{
echo '<input type="type" value="输出">';
}
?>
</center>
</body>
</html>

这次如果你直接输入是不能弹框的,你所有的内容都输入在value这个标签里面,所以不会造成弹框。那么如果我们把value进行闭框(闭合),会怎么样呢? 那么聪明的你肯定猜到了,这样是可以弹框的。那么除了这样的方式还有没有别的方式来进行弹框了,当然有了呢,我们还可以采取事件,时间都有哪些呢,onclick单击事件,onload页面加载事件Onmousemove鼠标移动就触发等。有时候有一些平台会把我们的语句过滤,会怎么办呢,一个是来进行查看源代码,一点一点绕过过滤,另外一种就是直接找一些语句,一句一句来进行测试,说不准哪一句就成功了。

1
2
3
4
5
6
7
<img scr=1 onerror=alert('xss')>当找不到图片名为1的文件时,执行alert('xss')
 
<a href=javascrip:alert('xss')>s</a> 点击s时运行alert('xss')
 
<iframe src=javascript:alert('xss');height=0 width=0 /><iframe>利用iframe的scr来弹窗
 
<img src="1" onerror=eval("x61x6cx65x72x74x28x27x78x73x73x27x29")></img>过滤了alert来执行弹窗

这节基础讲完以后,下一结就给大家讲解代码实例挖掘,会给大家介绍工具挖掘,还有手工挖掘。第五讲主要是介绍一下DVWA高中低三种xss漏洞,然后会简单说一下bwapp相关xss漏洞,最后给大家进行挖掘CMS具体xss漏洞。

谢谢大家,每次文章最后都会在本人博客发表

www.sec-redclub.com

本文作者:whitecell-club.org  redBu11

文章欢迎转载,但请务必保留作者与出处!

代码审计第四节-XSS基础知识


本文始发于微信公众号(WhiteCellClub):代码审计第四节-XSS基础知识

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: