代码审计第四节主要是讲解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危害也是非常大的,我在wooyun上面进行搜索如下:
所以为了互联网安全,我们开始学习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 > |
这个是显示的结果。那么我们在看看源代码有什么变化没有。
我们输入的123是不是原样显示在源代码里面了。如果在cms源代码里面会怎么样呢,没有经过任何过滤,会发生什么呢?为了证明我们猜想,我们输入<script>alert(1)</script>
我们想要的框框出来了。其实我们的代码就原样显示在源代码中了。
恶意破坏者或者是白帽子主要是来进行获取管理员的cookie,那么我们来进行尝试一下看看能不能获取到管理员cookie呢?
这是我们一个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
文章欢迎转载,但请务必保留作者与出处!
本文始发于微信公众号(WhiteCellClub):代码审计第四节-XSS基础知识
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论