html5%3cimg%3e属性,Pikachu-XSS盲打、过滤、htmlspecialchars

本文详细介绍了XSS盲打的概念,即在未知后台是否过滤XSS的情况下,尝试在输入字段注入XSS代码。通过实例展示了如何模拟管理员触发这些代码,以及XSS过滤的一些常见绕过方法,如使用HTML编码、伪协议和字符集绕过。同时,文章还讨论了PHP的htmlspecialchars()函数在防止XSS攻击中的作用及其局限性,提醒开发者注意单引号过滤的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、XSS盲打

什么是xss盲打?

盲打只是一种惯称的说法,就是不知道后台不知道有没有xss存在的情况下,不顾一切的输入xss代码在留言啊,feedback啊之类的地方,尽可能多的尝试xss的语句与语句的存在方式,就叫盲打。

“xss盲打”是指在攻击者对数据提交后展现的后台未知的情况下,网站采用了攻击者插入了带真实攻击功能的xss攻击代码(通常是使用script标签引入远程的js)的数据。当未知后台在展现时没有对这些提交的数据进行过滤,那么后台管理人员在操作时就会触发xss来实现攻击者预定好的“真实攻击功能”。

通俗讲就是见到输入框就输入提前准备的xss代码, 通常是使用script标签引入远程的js代码,当有后台人员审核提交数据时候,点击了提交的数据,触发获取到有价值信息 。

实验:

b8648d786b58763ad717f8c0c41af95f.png

我们随便输入点东西:

cb701c49030b9a56e376f2110221648c.png

我们再输入弹窗试试看又什么现象:   我们发现并没有我们想要的弹窗,那是不是预示着我们就失败了。答案是否定的。。。。

59283064effe05d8c39845937e2e0658.png

我们前面也提到了,盲打是将指令输入到后台,在管理员不知情的情况下触碰执行,我们模拟管理员登陆后台,看看后台的界面是否会把我们输入的内容输出:

点击提示,模拟下后台登陆,输入账号admin 密码123456

672545f9540024f2727e881818d79128.png

我们看到后台中招了:

0ea18a5c0555a02fc76603a554492267.png

二、XSS之过滤

2b65ef29a5872cc0e4771c25889edd04.gif

6a087676c59fa8b19d76e6bb55a32902.gif

1 XSS过滤的绕过2

3 脚本标签4

5 如果script被过滤的话,可以使用伪协议的方法:6

7 48 a

49

50 通过HTML编码绕过过滤(也可以使用十进制r,十六进制Ĕ)51

52 使用HTML编码,在进一步处理属性值的时候,浏览器会对其进行HTML解码:53

54 a

55

56 如果存在两次URL解码57

58 可以通过构造:59

60 %253cimg%20οnerrοr=alert(1)%20src=a%253e61

62 第一次URL解码以后:63

64 %3cimg οnerrοr=alert(1) src=a%3e65

66 第二次URL解码以后:67

68 a

69

70 字符集绕过71

72 UTF-7,US-ASCII,UTF-16(这种方法只有在浏览器支持所用的字符集才可以,或者你可以控制HTTPContent-Type消息头)73

74 使用js转义75

76 Unicode转义可以用于表示js关键词中的字符77

78

79

80 通过eval命令来动态构建字符串81

82

83

84 替代eval的方法85

86 ``

XSS饶过方法借鉴

xss绕过-过滤-转换方法:(方法借鉴里面有详细举例)

1.直接f12修改前端的限制,例如长度。

2.大小写混合:

3.拼凑:ipt>alert(11)

4.注释符:ipt>alert(11)ript>

5、编码的方式,但是在使用时要注意是否会被输出点识别和翻译,不然绕过了也没有用。

演示实验:

20200407131645743978.png

大小写绕过

c117db6ff22f3b159a00f03ae79f311c.png

img标签

x

三、xss之htmlspecialchars()函数

htmlspecialchars函数

1 htmlspecialchars(string,flags,character-set,double_encode)2 //可用的引号类型:

3 ENT_COMPAT -仅编码双引号(默认)。4 ENT_QUOTES -编码双引号和单引号。5 ENT_NOQUOTES -不编码任何引号。6

7 ps:$test = htmlspecialchars($name, ENT_QUOTES);

次函数是把预定义字符转换为HTML实体:

&(和号)--&amp

"(单引号)--&quot

‘(单引号)--'

>(大于)--&gt

htmlspecialchars()函数默认只编码双引号,当开发者未对单引号过滤时,就会可能导致XSS的发生

开始我们的实验:

我们先看一下后台的源码:我么很容易发现没有过滤单引号,那么漏洞来了。。。

f9e48e365ea7617246d565ceeaae7efd.png

ed04c066dd62f81c707752cad6408d48.png

输入  lili‘"<>&    提交,查看网页源码ctrl+g搜lili

可以看到没有对单引号做处理(这里可能就是用的默认的htmlspecialchars来做的后端过滤)

a3c582a3bf5f640d7bb8a04757d50c82.png

输入‘ οnclick=‘alert(999)‘

1f24a6865a947efcf56c160b3d37be35.png

好了结束!

原文:https://www.cnblogs.com/li2019/p/12650537.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值