CTF/CTF练习平台-XSS【xss注入及js unicode编码及innerHTML】
来源:互联网 发布:ipad上看文献知乎 编辑:程序博客网 时间:2024/06/07 08:17
原题内容:
http://103.238.227.13:10089/
Flag格式:Flag:xxxxxxxxxxxxxxxxxxxxxxxx
题目有点坑啊,注入点都没说明,去群里问的,这题注入点为id(get方式),id的值会进行替换后进入s
补充了这个,好了,继续做题
右键源码
<script>var s=""; document.getElementById('s').innerHTML = s;</script>
结合上述补充,和题目要求
1、请注入一段XSS代码,获取Flag值
2、必须包含alert(_key_),_key_会自动被替换
首先,解释下源码中发现的代码的意思,下面举个例子说明下innerHTML
<a id="baidu"><strong>百度</strong></a>document.getElementById("baidu") 获得 a 这个元素document.getElementById("baidu") .innerHTML 获得 a 这个元素内的HTML代码(即<strong>百度</strong>)document.getElementById("baidu") .innerHTML = "<em>谷歌</em>" 设置 a 这个元素内的HTML代码,设置后<strong>百度</strong>就变为<em>谷歌</em>
搜索document.getElementById('s').innerHTML时发现一个很有趣的问题
如果字符串中拼接的 HTML 标签中有 script 标签,那么该段脚本是无法执行的,这并不是 bug,而是 w3c 的文档规定的
这里推荐一个博客,大家可以前去学习一下
simplify the life by 韩子迟
我们需要的是可以从注入点id进入的方法,所以这里参考其博客的img标签方法,于是构造
http://103.238.227.13:10089/?id=<img%20src=1%20onload=alert(_key_)/>很遗憾,存在回显
这说明,存在xss filter,我们的传参字符串中存在被屏蔽的词
一般最可能的是alert,但这里题目要求存在alert,顾考虑第二可能点<>
进行了两组尝试,代码和回显如下:
链接
http://103.238.227.13:10089/?id=\%3Cimg%20src=1%20onload=alert(_key_)/\%3E
回显
<img src=1 onload=alert(_key_)/>
链接
http://103.238.227.13:10089/?id=\\%3Cimg%20src=1%20onload=alert(_key_)/\\%3E
回显
\<img src=1 onload=alert(_key_)/\>
很明显了,反义符号对<>不起作用,对本身起作用,这说明阻挡点是<>
注意页面编码utf-8
id传入代码会在s中运行
考虑将<>进行unicode编码,这样当代码被替换进去运行时,utf-8编码又会将其变回来
具体表参考博客
unicode字符集特殊符号对应html/js/css符号
接下来就没问题了
构造链接
http://103.238.227.13:10089/?id=\u003cimg%20src=1%20onload=alert(_key_)/\u003e
查看源代码,可看到_key_已经被替换成答案
var s="\\<img src=1 onload=alert(_key_)/\\>";document.getElementById('s').innerHTML = s;
阅读全文
1 0
- CTF/CTF练习平台-XSS【xss注入及js unicode编码及innerHTML】
- CTF练习平台sql注入测试writeup
- CTF/CTF练习平台-本地包含【eval函数闭合及代码段的理解】
- CTF/CTF练习平台-welcome to bugkuctf【php://filter及php://input】
- CTF-练习平台 WriteUp
- CTF/CTF练习平台 --SQL注入测试【sql宽字节注入与#,%23】
- bugku CTF练习平台writeup
- CTF/CTF练习平台 随机数运算验证【细节js文件查看】
- CTF/CTF练习平台-phpcmsV9【phpcms 9.6 漏洞利用】
- CTF/CTF练习平台-前女友【弱类型】
- CTF/CTF练习平台-成绩查询【sqlmap post方法】
- CTF/CTF练习平台-login1【sql约束攻击】
- CTF 【每日一题20160618】简单xss示例
- 2017.4.10 学习记录与感想 (xss、ctf、学习感想)
- CTF编码
- StringEscapeUtils的常用使用,防止SQL注入及XSS注入
- CTF-练习平台writeup【持续更新】
- bugku CTF-练习平台 部分writeup
- mvn deploy将开发后的代码发布到远程仓库
- java IO-文件流-文件内容复制
- 17年中总结
- 算法系列——在O(1)时间内删除链表结点
- zw2
- CTF/CTF练习平台-XSS【xss注入及js unicode编码及innerHTML】
- Example 7.1: n-step TD Methods on the Random Walk
- 在SqlServer中求日期月份的天数
- 配置LitePal数据库的方法
- python爬虫学习第三十六天
- 项目——通过自动回复机器人学MyBatis(一)
- Effective C++
- 股票账户统计表
- 年终总结-与善人居