当前位置: 首页 > news >正文

%3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击

背景

这个系列有很多题,但是其实考察的相近,类似的就不在多说,我们来看吧。主要分几个点来讲:

反射型

存储型

JSON

XM

头部字段相关

分类介绍

反射型

存储型

一般在博客留言板、评论、个人信息维护等地方容易存在,就是用户构造XSS的Payload保存在数据库中,一旦用户访问该页面,则中招。

a6e3fb28653bc6b378d9aa25bdabc72e.png

202f313c18b9d1d522f2678f1816b655.png

JSON型

没有什么太大的不同,注意构造一下Payload,闭合标签即可,Payload:"

8d1af6b53ff03566086774c9bcb36cf5.png

53b8d15b77e9abc60e4be88be9a76bef.png

XML型

在XML解析payload需要注意<>两个字符需要使用HTML实体编码。 例如,这样

<img src=1 οnerrοr="alert(document.cookie)">

8373f99b65663af2b96073feaa3e66d0.png

头部字段相关

其实就是值HTTP的很多头部字段都可以XSS,直接构造XSS的Payload的例如Cookie啊,自定义头部字段吧啊,Referer等等。观察一下头部字段那些数据会输出到前端页面上,或者对referer或者location等字段进行控制,跳转到一个有XSS的页面。

XSS防御函数、过滤、绕过

防御函数

//单纯过滤<>,对编码都没有检测,所以做一个url编码就绕过了。

function xss_check_1($data)

{

// Converts only "" to HTLM entities

$input = str_replace("

$input = str_replace(">", ">", $input);

// Failure is an option

// Bypasses double encoding attacks

//

// %3Cscript%3Ealert%280%29%3C%2Fscript%3E

// %253Cscript%253Ealert%25280%2529%253C%252Fscript%253E

$input = urldecode($input);

return $input;

}

//字符转成HTML实体,防御还可以,但是注意该函数的第二个参数选项ENT_QUOTES,编码单双引号,也不是不能绕过。

function xss_check_2($data)

{

// htmlentities - converts all applicable characters to HTML entities

return htmlentities($data, ENT_QUOTES);

}

//把&、、"、'五个符号转成HTML实体

function xss_check_3($data, $encoding = "UTF-8")

{

// htmlspecialchars - converts special characters to HTML entities

// '&' (ampersand) becomes '&'

// '"' (double quote) becomes '"' when ENT_NOQUOTES is not set

// "'" (single quote) becomes ''' (or ') only when ENT_QUOTES is set

// '

// '>' (greater than) becomes '>'

return htmlspecialchars($data, ENT_QUOTES, $encoding);

}

//中级难度的防御,addslashes,转义单双引号和反斜杠,但是不使用单双引号的,防不住的。

function xss_check_4($data)

{

// addslashes - returns a string with backslashes before characters that need to be quoted in database queries etc.

// These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte).

// Do NOT use this for XSS or HTML validations!!!

return addslashes($data);

}

绕过

//一般payload

//绕过过滤单双引号的

1

//伪协议

//绕过关键字检查,大小写变化和无意义(注释、空字符、空格、回车、tab)截断

link//规避关键字

//长度限制

//绕过尖括号检查,编码、多重编码

%3cscript%3ealert(1)%3c%2fscript%3e

//标签检查,一重去除标签

ipt>alert("XSS")ipt>

/*闭合标签

>

'> 或者 ">

' 或者 "

标签闭合

*/

//终极过滤

可以进行xss的标签

...

相关文章:

  • 主流64位配置
  • oracle当前日期加3天,将Oracle 当前日期加一天、一小时、一分钟
  • php object 增加属性,Object.defineProperties 添加一个/多个属性到对象;修改已有属性...
  • 美国人对于instructions
  • matlab避碰,基于非欧保形变换的船舶避碰模型的建立方法与流程
  • CISCO 相关技术大集合(收藏)_01
  • oracle查询浪费的空间,Oracle spatial结合WebGIS进行空间查询
  • oracle hint失效,HINT不起作用是为何?
  • CISCO 相关技术大集合(收藏)__02
  • php如何检测设备是手机,PHP检测终端设备是平板、手机还是电脑
  • ACDSee v8.0最完美汉化破解补丁发布,永不过期,还有绿色版
  • Linux创建自己命令,Linux命令别名:定义自己的命令
  • BT下载]为大家献上真正原版,绝无改动的工行正版免激活XP,OFFICE2003
  • 如何查看后被暂停的进程 linux,关于Linux 进程你要知道的事
  • 【热度·推荐】超强推荐,大家齐用VNN内网穿透版的电驴,加速下载快行动!
  • Android 架构优化~MVP 架构改造
  • Android单元测试 - 几个重要问题
  • Android系统模拟器绘制实现概述
  • Bootstrap JS插件Alert源码分析
  • JavaScript DOM 10 - 滚动
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • linux学习笔记
  • Mithril.js 入门介绍
  • mysql_config not found
  • MySQL-事务管理(基础)
  • Objective-C 中关联引用的概念
  • PV统计优化设计
  • Vue2 SSR 的优化之旅
  • 复杂数据处理
  • 如何解决微信端直接跳WAP端
  • 深度解析利用ES6进行Promise封装总结
  • 小程序测试方案初探
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • postgresql行列转换函数
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #pragma once
  • #WEB前端(HTML属性)
  • (MATLAB)第五章-矩阵运算
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (多级缓存)多级缓存
  • (二)windows配置JDK环境
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (论文阅读30/100)Convolutional Pose Machines
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • 、写入Shellcode到注册表上线
  • ./configure、make、make install 命令
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)