- A+
1. 什么是xss?
"XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用 的页面中" ------ 百度百科
如上是官方的解释,实际上xss我们可以简单的理解为html注入,就是把咱们可以控制的变量作为js代码去执行,我们在漏洞挖掘中验证漏洞危害的方法就是让目标弹窗,只要弹窗成功就可以深入利用,只需要通过弹窗就可以证明危害提交相应得平台,在学习本文之前大家应该学习一下关于javascript的基础但是没有关系,我们已经为你想到了,下面就是我们xss的几种姿势了
这里总结里几个比较好用的弹窗思路在实战中还是要根据目标去手工闭合标签尝试绕过,还可以通过其他标签进行弹窗完成漏洞证明
1. 存储型xss
首先假设我们这有个发文章的位置攻击者将恶意代码输入到文章的位置,并且发表,这是恶意代码会被储存进数据库这是用户访问数据库会返回存在恶意代码的文章,然后就会被触发这就是存储型xss但是往往我们的利用不是那么顺利的有时候需要进行绕过和其他姿势,比如咱们的内容会被包含在某些标签和引号内,这个时候我们就要把原有的引号或标签闭合,让我们恶意代码能成功的执行
比较容易出现存储型xss的位置有"反馈建议","收货地址""个人信息""发帖"等处
攻击者插入恶意代码加载外域js让用户浏览器提交或其他操作,如上传自己得cookie到攻击者得服务器
相对于储存型的xss来说反射型的危害小所以相应的rank也是比较低的
挖掘思路:见框就插,插完看标签,绕过目标的防御机制,构造payload
2.反射型xss
服务器未对用户请求参数做任何编码或转义处理,直接将参数作为响应的一部分输出到页面中。反射型XSS是一次性的,很容易实施钓鱼攻击,即诱使被攻击者点击某条恶意链接就可触发漏洞 ----------反射型xss定义
原理就是表单的构造这里举一个例子上上周收到一个朋友的二维码,他说昨天吃饭的照片在这里面,这肯定不是本人,然后我就开始去看他链接的跳转最后找到了xxx娱乐平台的一个链接http://马赛克/%00%00%00%00%00%00%00<scripT>alert(1)</scripT><这个就是一个反射型的xss
当我们在挖掘反射型xss的过程中应该寻找url中会转印到屏幕内的参数进行修改尝试闭合标签让我们的恶意代码成功执行
利用起来简单只需要加载外域得js文件然后让被攻击者运行从而获取用户敏感信息
所以总结反射型和存储型xss就是储存数据库与否的一个关系
3.实战
实战这里我们不推荐并且法律禁止大家对网站进行无授权测试,所以我个人建议本地搭建靶机环境,这里就不推荐哪一个靶机了,大家github翻一番会有很多得靶机
0x010靶机环境的安装
在安装靶机得时候啊,需要如下几个工具
1. Phpstudy 下载地址:http://phpstudy.php.cn/
2. 靶机的源代码
3. Hackbar----fifefox 的一个插件,在浏览器插件处安装即可
4. Firefox浏览器
准备好工具之后我们开始我们的靶机搭建之旅
安装好phpstudy之后我们打开主页面
我们直接单击启动之后,在浏览器上输入127.0.0.1或者localhost
这样就会出现phpinfo了我们单击"其他选项菜单"—>"网站根目录"
然后就会进入如下文件夹
我们将靶机源码复制过来之后根据我们的靶机做相应的配置就好了
打开靶机环境
我们就以反射型的挖掘思路为例子
这里我们看到一个输入框,我们可以输入一个1测试一下
这时我们发现url中的1被打印到了目标的页面上,这里我们就可以尝试让目标产生反射型xss了,首先我们看目标有没有对符号进行过滤,把特殊符号进行测试一次
这里我们不能光看界面上显示的东西,我们要去查看该页面的源代码
这里我们发现这4个特殊符号除了引号都没有被转义或者过滤
那么我们尝试能不能让我们的name这个参数的内容作为js代码去运行,我们可以尝试弹窗(xss_test)
我们这里可以先从最简单的payload测试如"<script>alert("xss_test")</script>"
但是没有成功弹窗,我们查看了一下源代码
Script标签成功了但是我们的alert("xss_test")变成了alert("xss_test")是斜杠阻止了我们的alert进行弹窗
我们尝试修改payload alert('xss_test')用单引号尝试一下
结果还是没有成功弹窗
单引号前面都被加了 那么我们在payload加入
比如alert(/xss_test/)这样尝试一下
成功的出现了弹窗
这里我们回到第一步我们尝试弹窗1
<script>alert(1)</script>
最简单的payload弹窗1成功了但是xss_test不成功
原因是弹窗字符必须要有引号引起来,所以就导致了xss_test不能成功弹窗,同样的,我们可以使用level更高得payload
下面咱们推荐几款
自动化工具推荐:xsstirke
个人很喜欢得一款工具,良心扫描器
Github搜索xsscrike就可以了
5. xsspy
直接在github搜索之后git即可。
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫