[渗透测试]XSS注入

看的是这个地方的视频:XSS注入权当入个门了,抓包工具也没装,手痒痒拿XSS闯关练了一下,感觉还是比SQL注入简单一点的。

  • 笔记的意义大概就是忘了的时候来查查。
  • 编码部分不懂也不会。。。

XSS注入

XSS跨站脚本分类

跨站脚本攻击,为了不和CSS缩写混淆,所以缩写为XSS,恶意攻击者往往在web页面里插入恶意的script代码,当用户浏览该页时,嵌入其中web里面的script代码会被执行,从而达到恶意攻击用户的目的。
简单模型:
用户登录->攻击者将准备的URL提交给客户->用户请求攻击者的URL->服务器对攻击者的Jvascript作出回应->攻击者的javascript在用户的浏览器中执行->用户的浏览器向攻击者发送会话令牌(cookie)->攻击者劫持用户会话

  • 反射型XSS:攻击具有一次性。反射型XSS攻击一般时通过电子邮件或者网站的形式向用户诱骗至恶意链接,当用户点击时服务器接受该用户的请求并进行处理,然后把带有XSS的代码发送给用户,用户浏览器解析执行代码触发XSS漏洞,例如

当用户访问url?uname=alert("hello");时,触发代码弹出对话框

反射型XSS

  • 存储型XSS:持久型XSS,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性。例如,攻击者在发帖的过程中嵌入XSS攻击代码,如果没有过滤或者过滤不严,这些帖子将被目标服务器存储在数据库中,当用户进行正常访问请求存储的数据时时,触发XSS代码。这种XSS非常危险,容易造成蠕虫,大量窃取cookie。
    与反射型XSS的即时响应相比,存储型XSS需要先把利用代码保存在比如数据库或者文件中,当web程序读取利用代码时再输出在页面上执行利用代码
  • DOM型XSS:DOM是一个与平台、变成语言无关的接口,它允许程序或脚本动态的更新文档的内容、结构及样式,处理后的结果能够成为显示页面的一部分。客户端的脚本可以通过DOM动态的检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM漏洞。(服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应式DOM对象会处理XSS代码,触发XSS漏洞)

XSS盗取cookie

cookie是web服务器保存在用户浏览器or客户端上的文件,包含了有关用户的信息。

  • 临时cookie:只在浏览器上保存一段规定的时间,一旦超过规定时间,该cookie就会被系统清除。
    作用:服务器利用cookie包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。
    反射XSS盗取cookie:
#location重定向
url?uname=

将链接发送到用户,用户点击即触发XSS漏洞,同时可以使用URL编码迷惑用户

XSS篡改网页链接


作用:可以篡改链接指向流量URL,刷流量,可以利用某些站点的重定向将上面的所有超链接都指向这个网站。
Beef进行恶意链接生产,以及利用hook.js执行其他命令

XSS盗取用户信息

原理:克隆网站登陆页面,利用存储XSS设置跳转代码,如果用户访问即跳转到克隆网站的登陆页面,用户输入登陆,账号和密码被存储。
setookit工具克隆网站
window.location进行重定向

没有过滤的XSS

探测XSS过程:

  • 伪造一个独一无二且不会被识别为恶意代码的字符串用来提交到页面
  • 使用浏览器审查工具进行代码审查,寻找构造的字符串是否在代码中出现
  • 构造XSS payload
    • 简单payload:
    • 闭合标签payload: "

属性中的XSS

配置chrome关闭XSS-Auditor,配置Chrome --args --disable-xss-auditor
XSS闭合引入事件:"onmouseover=alert(document.domain)>

隐藏参数中的XSS

HTML中svg介绍
svg意为可缩放矢量图形,使用XML格式定义图像,SVG文件可通过以下标签嵌入HTML文档:或者