xss原理(学习笔记)

什么是XSS?
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。注入攻击的本质就是把用户输入数据当作代码执行。

SQL注入拼接的是操作数据库的SQL语句,XSS拼接的是网页的HTML代码,我们可以拼接出合适的HTML代码去执行恶意的JS语句。

XSS能做什么?
盗取cookie
获取内网ip
获取浏览器保存的明文密码
截取网页屏幕
网页上的键盘记录 等等

XSS平台
http://xsspt.com
我们窃取cookie的时候需要用到比较复杂的代码,于是xss平台营运而生,大大方便了xss攻击,只需要引入一个平台外部链接就可以实现功能了。

在这里插入图片描述怎么检测是否存在XSS?
我们写入的代码要当作JS执行
触发JS的方法有3种

<script>alert(1)</script> //定义JS的标签
<a href=javascript:alert(1)>123</a> 
//伪协议,只有关联应用能用,比如:tencent://(关联qq)
<ing src='a'onerror=alert(1)/> //事件型,加载文档或图像发生错误时会执行alert(1)
常用的有onerror,onload(成功加载执行) oninput(有输入框,输入的时候触发)

当我们在一个输入框输入< script >alert(1)< /script >的时候,页面弹窗了,就证明存在xss。

xss分类:

反射型xss: 你提交的数据成功实现了xss,但是仅仅是对你这次访问产生了影响,是非持久型。

存储型xss: 存入了数据库,别人访问这个页面的时候就会自动触发。

dom型xss: 是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

反射型xss靶场
在这里插入图片描述随便输入一点数据,发现有3个输出点
在这里插入图片描述输入弹框语句看看
输入的语句没有弹框
在这里插入图片描述看一下为什么没弹框,F12检查一下元素
第一个输出点这里<>号发现被实体编码了,这里没办法触发
在这里插入图片描述看一下第二个输出点
发现<>号没有被过滤,但是在双引号内

在这里插入图片描述尝试把双引号闭合,发现“号被转义掉了
在这里插入图片描述
js有很高的容错性,尝试’闭合,因为在input标签里面,我们使用事件型οninput=alert(1) 输入东西的时候弹窗,使用//将后面的注释掉

成功拿到flag

在这里插入图片描述
在这里插入图片描述

发布了23 篇原创文章 · 获赞 0 · 访问量 326

猜你喜欢

转载自blog.csdn.net/weixin_45291045/article/details/105376676
今日推荐