XSS学习笔记

18 篇文章 0 订阅

XSS : 跨站脚本攻击

将恶意的js代码进行注入
注入点的两个要求:
1.输入的东西可以在页面上显示.
2.一个可以自行控制的参数位置
GET,POST,COOKIE 如用户名输入框,留言板等

1.反射型XSS:

即输即用,插入一次而没有进入服务器的存储结构中
?wd后为传输搜索选项的内容,可以进行插入恶意代码
这样的payload较长,可能带有敏感字符如< script>标签等,
容易失败,所以可以利用网上一些缩短url工具进行欺骗

2.存储型XSS:

一劳永逸 向网页插入的代码会被网站添加到服务器的存储结构中
持久性的跨站脚本,更具威胁性
一般用来网站渗透、挂马、蠕虫病毒、钓鱼流量导流等
只要在HTML中加入< script>标签即可让浏览器执行我们需要的js脚本
Javascript脚本语言:一种直译式脚本语言
广泛用于客户端 用来给HTML网页增加动态功能
很容易被客户端修改,可以控制浏览器做各种动作例如弹窗、重定向、刷新等

XSS检测:

XSS攻击通常需要获取网站用户的登录信息,如登录账号密码或者登录凭证
通常渗透测试中我们将测试代码浓缩为:
< script>alert(1)< /script>构造网页弹窗
这个payload中包含了几乎所有XSS利用的前提条件
–可以插入< script>标签、包含js代码的函数alert,
如果浏览器弹窗,说明可能存在XSS注入

XSS构造

利用XSS漏洞,攻击者可以进行两种攻击:钓鱼和盗取Cookie
钓鱼步骤:
1.根据原始网页构造一个克隆页面
2.通过XSS将克隆页面导入网站后台
3.用户被骗后输入信息,如用户名密码
4.收集到信息后,我们将用户的用户名密码导入到钓鱼接受平台中
盗取Cookie利用原理和钓鱼相同,我们接受到用户cookie后就能够伪造身份登录后台了
留言板框的标签为< textarea>,为了屏蔽这个标签,我们使前后< textarea>闭合
如在留言板里输入< /textarea>< script …>< /script>< textarea>

XSS防御

HttpOnly属性:让我们的cookie只能被http控制而不能被js控制
XSS绕过
第一种思路:不同的标签
主要思想为
1.这个标签可以写入连接导致跳转或者包含其他页面,如< img>
2.这个标签中可以添加事件而执行js,例如< input>
< img src=“javascript:alert(‘xss’)”>可以使用js的伪协议去执行xss代码,
当然也可以在img中导入一个外网带有xss代码链接,但是也不是所有的web浏览器都支持伪协议
第二种思路:产生自己的事件
js本来就是一种动态脚本语言
如果我们的输入在input标签中,后者能够自己写入一个input标签,
就可以构建自己的事件如onclick(点击鼠标),onmouseover(鼠标移动),onkeydown(敲击键盘)等响应事件
可以利用的事件一般分为3类:
1.用户接口IO(鼠标,键盘)
2.逻辑(处理的结果)
3.变化(对文档的修改)

编码绕过、常用编码:

URL编码:通过%和ascii码编码但是要确认服务器会对我们的输入解码,否则起到反作用
HTML实体编码:命名实体:以&开头,分号结尾的,例如“<”编码为“&lt”
字符编码:十进制、十六进制ASCII码或unicode字符编码,样式为“&#数值”,
例如“<”可以编码为“<”和“<”
js编码:四种编码形式,例如“e”为"\145"或"\x65"或"\u0065"
css编码:用一个反斜线()后面跟1~6位的十六进制数字,例如e可以编码为“\65”或"65"或"00065"
理解XSS编码顺序:在什么位置应该被谁理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值