Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
mst-sec-lecture-notes
提交
bba1cc1f
M
mst-sec-lecture-notes
项目概览
OpenDocCN
/
mst-sec-lecture-notes
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mst-sec-lecture-notes
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bba1cc1f
编写于
2月 26, 2017
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
xssv2
上级
03663cc4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
8 deletion
+37
-8
漏洞篇 XSS.md
漏洞篇 XSS.md
+37
-8
未找到文件。
漏洞篇 XSS.md
浏览文件 @
bba1cc1f
...
...
@@ -6,22 +6,44 @@
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS 。恶意攻击者往 Web 页面里插入恶意 JavaScript 代码,当用户浏览器该页之时,嵌入 Web 页面里的代码会被执行,从而达到恶意攻击用户的目的。
![](
http://upload-images.jianshu.io/upload_images/118142-d91de274c3a530ee.jpg
)
## Payload
Payload 的中文含义是有效载荷,在 XSS 中指代攻击代码或攻击语句。
常见的 Payload 有:
+
正常弹窗
+
`<script>alert(1)</script>`
+
`<img src=0 onerror=alert(1)>`
+
弹出网站 Cookie
+
`<script>alert(document.cookie)</script>`
+
`<img src=0 onerror=alert(document.cookie)>`
## 分类
总共有三种
+
反射型:经过后端,不经过数据库
+
反射型:
Payload
经过后端,不经过数据库
+
存储型:经过后端,经过数据库
+
存储型:
Payload
经过后端,经过数据库
+
DOM:不经过后端
+
DOM:
Payload
不经过后端
## 原理:反射型
非持久化,需要欺骗用户点击链接才能触发 XSS 代码(数据库中没有这样的页面和内容)。Payload 一般存在于 URL 或者 HTTP 正文中,需要构造页面,或者构造 URL。
将这段代码保存为
`xss.php`
。
```
php
\\XSS反射演示
<?php
header
(
'X-XSS-Protection: 0'
);
?>
<p>
反射型 XSS 演示
</p>
<form
action=
""
method=
"get"
>
<input
type=
"text"
name=
"xss"
/>
<input
type=
"submit"
value=
"test"
/>
...
...
@@ -29,7 +51,7 @@
<?php
$xss
=
@
$_GET
[
'xss'
];
if
(
$xss
!==
null
){
echo
$xss
;
echo
$xss
;
}
```
...
...
@@ -51,14 +73,21 @@ if($xss!==null){
我们可以自定义弹窗中的内容来利用 XSS,比如改成
`alert(document.cookie)`
。
这个例子中 URL 为
`http://localhost/xss.php?xss=%3Cscript%3Ealert%281%29%3C%2Fscript%3E`
,这个 URL 容易引起怀疑,可以使用短网址工具缩短后发送给受害者。
从上面的例子中,我们可以看出,反射型 XSS 的数据流向是:浏览器 -> 后端 -> 浏览器。
## 原理:存储型
持久化,代码储存在数据库中。如在个人信息或发表文章等地方,假如代码,如果没有过滤或过滤不严,那么这些代码将储存到数据库中,用户访问该页面的时候出发代码执行。这种 XSS 比较危险,容易造成蠕虫,盗窃 Cookie 等。
这里我们把
`xss.php`
内容改为(同时数据库中需要配置相应的表):
```
php
\\存储XSS演示
<?php
header
(
'X-XSS-Protection: 0'
);
?>
<p>
存储型 XSS 演示
</p>
<form
action=
""
method=
"post"
>
<input
type=
"text"
name=
"xss"
/>
<input
type=
"submit"
value=
"test"
/>
...
...
@@ -84,7 +113,7 @@ mysql_select_db("xss");
$sql
=
"select payload from test where id=1"
;
$result
=
mysql_query
(
$sql
);
while
(
$row
=
mysql_fetch_array
(
$result
)){
echo
$row
[
'payload'
];
echo
$row
[
'payload'
];
}
```
...
...
@@ -112,7 +141,7 @@ while($row=mysql_fetch_array($result)){
我们可能需要通过 XSS 来获得用户 Cookie 或其他有用信息,利用平台负责接收并保存这些信息。另外,利用平台能够托管利用脚本,于是我们可以向页面只注入一个脚本链接,使长度极大缩短。
米斯特安全团队为大家准备了一个 XSS 利用平台,位于
`xss.hi-ourlife.com`
。这个平台用的是 xsser.me,我们也能够自己
下载和搭建。
这里的 XSS 利用平台使用 xsser.me,大家可以自行
下载和搭建。
+
下载:http://download.csdn.net/detail/gzliu_hit/5606811
+
搭建:http://blog.csdn.net/god_7z1/article/details/47234989
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录