点击"仙网攻城狮”关注我们哦~
不当想研发的渗透人不是好运维
让我们每天进步一点点
简介
本篇文章将讲解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()函数作用
-
预定义的字符是
-
& 成为 &
-
" 成为 "
-
' 成为 '
-
< 成为 <
-
> 成为 >
-
可用引号类型
-
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靶机平台搭建指南,英语小白的福音
更多资讯长按二维码 关注我们
专业的信息安全团队,给你最安全的保障。定期推送黑客知识和网络安全知识文章,让各位了解黑客的世界,学习黑客知识,普及安全知识,提高安全意识。
觉得不错点个“赞”呗
转载:https://blog.csdn.net/tangshuangsss/article/details/111354490