Pikachu靶场:XSS之htmlspecialchars、href输出以及js输出

Pikachu靶场:XSS之htmlspecialchars、href输出以及js输出

实验环境以及工具

Firefox浏览器、Burp Suite、Pikachu靶场

实验原理

htmlspecialchars()函数把预定义的字符转换为HTML 实体。

预定义的字符是:
&(和号)成为&amp

”(双引号)成为&quot

'(单引号)成为&#039

‘’< ‘’(小于)成为&lt

‘’> ‘’(大于)成为 &gt

可用的引号类型︰
ENT_COMPAT -默认。仅编码双引号。
ENT_QUOTES -编码双引号和单引号。
ENT_NOQUOTES -不编码任何引号。

href是标签中的超链接,点击后会访问目标链接。

具体步骤

XSS之htmlspecialchars

1.找到注入点进行输入尝试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8aXk3vwG-1618650355002)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417161450771.png)]

在源码中进行查找

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-45HhBjTJ-1618650355004)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417161710417.png)]

发现输入的特殊字符被转化为了HTML实体编码,但是单引号没有被转换。

2.尝试绕过

利用单引号尝试构造payload

1'onclick='alert(123)'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5kR286U5-1618650355006)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417162231008.png)]

XSS之href

1.找到注入点进行输入尝试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqKSAyaE-1618650355007)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417163745061.png)]

进入原码查找

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mh0UMi6k-1618650355010)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417163833094.png)]

那么可以尝试用JavaScript协议来执行js语句。

2.进行注入

构造payload

javascript:alert(123)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUTT2Qsf-1618650355011)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417164248759.png)]

XSS之js输出

1.找到注入点进行输入尝试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5bdYdQ6C-1618650355012)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417164359134.png)]

在源代码中查看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4LzE4tm-1618650355012)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417164510143.png)]

发现一段js代码,输入的内容赋值给了一个变量$ms,那么可以尝试构造闭合实现我们输入的js代码。

2.尝试注入

构造payload

x'</script><script>alert('123')</script>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KTjy6bsS-1618650355013)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417164912678.png)]

总结

只用htmlspecialchars进行过滤,会留下单引号没有被转换。利用单引号依然可以做出相应的攻击。

在a标签的href中可以利用JavaScript协议执行js语句。在有输入接口,并且将输入内容直接赋值给变量的,可以构造闭合来执行恶意js代码。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值