手把手教你XSS漏洞常见类型挖掘方法

点击"仙网攻城狮”关注我们哦~

不当想研发的渗透人不是好运维

让我们每天进步一点点

简介

本篇文章将讲解XSS三大类中一些细小分类漏洞挖掘方法和漏洞形成原理说明,附源码分析。

将展示以下类型挖掘方法:

反射型XSS(GET)
反射型XSS(POST)
存储型XSS
DOM型XSS
XSS之盲打
XSS之过滤
XSS之htmlspeclalchars
XSS之href输出
XSS之js输出

XSS漏洞可以干什么可以查看以下文章:

黑客是如何获取你账号密码的

中文版Pikachu web靶机平台搭建指南,英语小白的福音

实战

反射型XSS(GET)

简述:反射型XSS可以通过制作特殊的URL来触发

1.页面上有一个查询框如下

2.使用<script> alert(123)</script>查看是否弹窗,在输入过程中发现前端限制了输入字符数,只能输入20个字符。

3.按键盘上F12打开 开发者模式 查看源码,修改前端限制,下图修改成200字符。

4.再次输入就可以输入了,点击submit后弹窗,说明有XXS漏洞

反射型XSS(POST)

1.登录页面,查看有一个输入框。

2.在输入框中输入<script> alert(123)</script >发现没有任何过滤,成功弹窗。

存储型XSS

简述:存储型XSS漏洞一但注入成功就会永久保存,进入页面后一直生效,只要没人删除

1.页面中有一个留言板功能,直接插入一个<script> alert(123)</script >

2.插入后保存在后台数据文件中,只要点击刷新页面就会一直触发XSS漏洞的弹窗

DOM型XSS

简述:文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式

造成DOM型XSS的原因是前端的输入被DOM给获取到了,通过DOM又在前端输出,跟反射型和存储型比起来,它是不经过后台交互的。

1.页面有一个输入框点击发现有一个连接。

2.初步观察,点击 click me! 后会出现 what do you see? 的链接按钮,其指向是 当前目录/you_input 审查元素时发现onclick后会执行函数 domxss() ,其作用是读取input的值并将其拼接到新创建的link节点中,源码如下:

3.我们只需要精心构造payload,闭合前面就行,靶机中已经告诉你怎么闭合了,插入这段:'><img src="#" οnmοuseοver="alert('xss')">,其实这段插入后不是很明显,可以改成这个'><img src="https://www.baidu.com/img/bd_logo1.png">,可以看到插入了一张远程图片

XSS之盲打

简述:XSS盲打不是攻击类型,而是一个攻击场景,前端无法判断是否有XSS漏洞的情况下只能盲注。

1.<script> alert(123)</script >注入,点击提交。

2.进入到后台管理页面查看消息,进入后就直接弹窗触发

(管理员登录后)

XSS之过滤

简介:在前端有一些过滤规则,如何去进行绕过

1.绕过思路

- 前端限制绕过,直接抓包重放,或者修改html前端代码。比如反射型XSS(get)中限制输入20个字符。
- 大小写,比如<SCRIPT>aLeRT(111)</sCRIpt>。后台可能用正则表达式匹配,如果正则里面只匹配小写,那就可能被绕过。
- 双写(拼凑),`<scri<script>pt>alert(111)</scri</script>pt>`。后台可能把<script>标签去掉换,但可能只去掉一次。
- 注释干扰,`<scri<!--test-->pt>alert(111)</sc<!--test-->ript>`。加上注释后可能可以绕过后台过滤机制。

2.使用<script> alert(123)</script >进行尝试发现无法注入

3.使用双重绕过发现过滤了script

4.使用<SCRIPT>alert(111)</sCRIpt>大小写绕过成功弹窗。

XSS之htmlspecialchars

简介:htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数

1.htmlspecialchars()函数作用

预定义的字符是
& 成为 &amp
" 成为 &quot
' 成为 &#039
< 成为 &lt
> 成为 &gt
可用引号类型
ENT_COMPAT:默认,仅编码双引号
ENT_QUOTES:编码双引号和单引号
ENT_NOQUOTES:不编码任何引号

2.随便输入点啥,审查元素后发现输入的内容是被拼接在<a href ="输入的内容">中

3.使用"><img src=0 οnerrοr="alert(/xss/)">试试,发现被过滤了

4.绕过思路

分析htmlspecialchars的作用发现默认情况下htmlspecialchars(string,flags,character-set,double_encode)
其中flags:默认情况下为只过滤双引号,若设置为ENT_QUOTES则单双引号均被过滤

5.使用‘号进行绕过,使用' οnclick='alert(123)'试试,点击连接成功弹窗。

XSS之href输出

简介:请思考a标签里面的href,img里面的src属性,有什么特殊的么

1.随便输入点啥看看有什么

2.审计元素发现,返回的元素发现所有字符都被转化为HTML实体了,包括单引号。

3.但由于输入的url拼接在 <a href='输入的内容'>属性中,可以使用javascript语法来造轮子,使用:Javascript:alert(123)试试,点击一下连接成功弹窗

XSS之js输出

1.根据提示输入tmac看看,有张图,作者是多喜欢NBA啊

2.审查元素发现输入被拼接到了脚本中

3.尝试闭合语句然后添加自己的语句上去使用  ';alert(123)//试试,成功弹窗

往期内容

黑客是如何获取你账号密码的

渗透武器库---信息收集工具大全

中文版Pikachu web靶机平台搭建指南,英语小白的福音

渗透利器--最新版kali2020系统安装(超详细)

更多资讯长按二维码 关注我们

   专业的信息安全团队,给你最安全的保障。定期推送黑客知识和网络安全知识文章,让各位了解黑客的世界,学习黑客知识,普及安全知识,提高安全意识。

觉得不错点个“赞”呗      

  • 12
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值