什么是XSS(跨站脚本攻击)

SQL注入是服务端将用户输入的数据当成SQL代码去执行

XSS可以理解为服务端把用户输入的数据当成前端代码去执行

前端代码->主要是js代码

两个关键条件:

第一个是用户能够控制输入

第二个是原本程序要执行的代码,拼接了用户输入的数据

XSS主要拼接什么

SQL注入拼接的是操作数据库的SQL语句。

XSS拼接的是网页的HTML代码

一般而言我们是可以拼接出合适的HTML代码去执行恶意的JS语句

(总结:XSS就是拼接恶意的HTML)

XSS的作用

盗取Cookie(用的最频繁的)(cookie相当于身份证)

获取内网IP(攻击内网)

获取浏览器保存的明文密码

截取网页屏幕

网页上的键盘记录

分类

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

存储型xss(提交的数据成功的实现了xss,存入了数据库,别人访问这个页面会自动触发)(留言栏)(工单)(表单)

DOM型xss(比较复杂)

常用语句

(若成功弹窗,则js代码可以执行)

什么是dom型xss

DOM-based XSs漏洞是基于文档对象模型Document Object Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显后页面的一部分,DOM中有很多对象,其中一些是用户可以操纵的,如uRl,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM-based XSS漏洞。



dom就是一个树状的模型,你可以编写Javascript代码根据dom一层一层的节点,去遍历/获取/修改对应的节点,对象,值。

通过Js去对网页进行修改,变化执行

Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。

level 1(url传参)

查看源代码

使name等于

<script>alert(1)</script>

level 2(输入框注入)

输一个语句,发现不行

查看源代码

发现关键点

红色框上面部分被转义了,没有什么绕过方法,

嵌套一个反标签符号

"><script>alert()</script><"

level 3(事件注入)

输入上面的payload,发现被转义了

加入函数

在JavaScript中有一个函数onfocus(),用于输入框input,select,a标签获得焦点的事件



' onfocus=javascript:alert() '

再点击这个input框,使其获得焦点,触发onfocus事件

level 4(引号类型)

没有转义



切换payload为双引号即可

" onfocus=javascript:alert() "

level 5(a标签注入)

被强制转换了,且引号重复了



<a href="javascript:alert();">xx</a>



加个 "> 和 "< .

"><a href="javascript:alert();">xx</a><"

可以发现代码变成

xx"><"

发现页面多了个标签,此时既可以点击此标签

level 6(大小写绕过)



将href改成HREF

level 7(双拼写)

href没了



双拼绕过

" ><sscriptcript>alert()</sscriptcript>< "

level 8(Unicode编码)



利用href的隐藏属性自动Unicode解码,插入一段js伪协议

javascript:alert()-->

javascript:alert()

level 9(指定字符绕过)

链接不合法





level 10(属性修改)



看源码



level10.php?t_sort=" onfocus="javascript:alert()" type="

level 11(Referer)

被转义了



页面上没有任何可以输入输出的地方,不过通过“检查”来查看渲染结构以后发现有4个隐藏的输入框,t_ref会把我们数据包中的referer参数传入



htmlspecialchars():一个PHP函数,用于将特殊字符转换为HTML实体。这个函数通常用于防止跨站脚本(XSS)攻击。

$_SERVER['HTTP_REFERER'] :链接到当前页面的前一页面的 URL 地址。(referer,推荐人)

经测试,它不会过滤<和>

Referer:click me" type="button" onfocus="alert()



level 12(User-Agent)

f12



用burpsuip抓包,发现t_ua和User-Agent的内容一样



click it" type="button" onmouseover="alert()



level 13(Cookie)

猜用cookie



Cookie: user=" onfocus="javascript:alert()" type="text" "



弄成这样也行

xss学习及xss-lab解题记录的更多相关文章

  1. Web For Pentester 学习笔记 - XSS篇

    XSS学习还是比较抽象,主要最近授权测的某基金里OA的XSS真的实在是太多了,感觉都可以做一个大合集了,加上最近看到大佬的博客,所以这里我也写一个简单的小靶场手册,顺带着也帮助自己把所有XSS的方式给 ...

  2. Web安全学习笔记 XSS上

    Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...

  3. 【转载】XSS学习笔记

    XSS的分类 非持久型 非持久型XSS也称反射型XSS.具体原理就是当用户提交一段代码的时候,服务端会马上返回页面的执行结果.那么当攻击者让被攻击者提交一个伪装好的带有恶意代码的链接时,服务端也会立刻 ...

  4. 跨站脚本攻击xss学习

    0.认识跨站脚本 举一个跨站脚本的简单例子. 假设一个页面将用户输入的参数直接显示到页面之中.(比如有如下代码) 在实际的浏览器中,在param中提交的参数正常会展示到页面之中.比如输入下面的URL: ...

  5. 第四次:渗透练习,xss学习

    xss学习 一.学习目的 初步了解xss攻击,不包括(DOM类型) 二.附加说明 1.xss介绍 https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/ ...

  6. 2019-11-20:xss学习笔记

    xxe漏洞防御使用开发语言提供的禁用外部实体的方法phplibxml_disable_entity_loader(true); 卢兰奇对象模型,bom由于现代浏览器实现了js交互性方面的相同方法和属性 ...

  7. PostMessage xss学习和挖掘

    PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...

  8. XSS学习(二)

    尝试操作Cookie 创建一个cookie,需要提供cookie的名字,值,过期时间和相关路径等 <?php setcookie('user_id',123); ?> 它的作用是创建一个c ...

  9. XSS学习(一)

    XSS(一) XSS分类 1.反射型XSS 2.持久性XSS 3.DOM型XSS **** 反射型XSS 也称作非持久型,参数型跨站脚本 主要将Payload附加到URL地址参数中 例如: http: ...

  10. XSS学习小结

    一.什么是XSS? XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了. 这里我们主要注 ...

随机推荐

  1. 会话丢失-NGINX配置之underscores_in_headers

    1.描述问题NGINX代理某个web服务时,单机情况下也出现不停的要求认证的情况 初步分析去掉NGINX代理,直接访问服务,未出现上述情况: 进一步分析:查看经过NGINX的请求和直接访问服务请求区别 ...

  2. Qt编译数据库插件通用步骤说明

    近期特意花了点时间,在之前数据库集成应用这个组件的基础上再次迭代完善,历经九九八十一难,将Qt的各种数据库插件,十几个Qt版本,全部编译一遍,同时打通了插件形式直连数据库和ODBC数据源连接方式,做过 ...

  3. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v8.0版已发布

    关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持 UDP .TCP .WebSocket 三种协议,支持 iOS ...

  4. 即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术

    本文由融云技术团队分享,原题"互联网通信安全之端到端加密技术",内容有较多修订和改动. 1.引言 在上篇<IM聊天系统安全手段之通信连接层加密技术>中,分享了关于通信连 ...

  5. k8s集群部署mysql完整过程记录

    挂载MySQL数据卷 在k8s集群中挂载MySQL数据卷 需要安装一个NFS. 在主节点安装NFS yum install -y nfs-utils rpcbind 在主节点创建目录 mkdir -p ...

  6. 微服务实战系列(三)-springcloud、springboot及maven之间关系-copy

    1 . 问题描述 随着springboot.springcloud的不断迭代升级,开发效率不断提升,越来越多的开发团队加入到spring的大军中,今天用通俗的语言,介绍下什么是springboot,s ...

  7. MySQL架构体系-SQL查询执行全过程解析

    前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来 ...

  8. Golang-反射10

    http://c.biancheng.net/golang/reflect/ Go语言反射(reflection)简述 反射(reflection)是在 Java 出现后迅速流行起来的一种概念,通过反 ...

  9. nginx里面的路径定位关键词root、alias

    nginx里面的路径定位关键词root.alias是有区别的: 设置请求资源的目录root / alias root:设置请求的根目录 语法 root path; 默认值 root html; 位置 ...

  10. 使用坦克PWA访问助手为自己的局域网应用快速配置免费域名

    这篇教程描述如何使用坦克PWA访问助手.这篇文章简称坦克PWA访问助手为PWA助手.PWA结合了DNS服务器技术和HTTP服务器技术实现,因此它需要系统的53端口和80端口.所以,如果你的电脑有程序占 ...