【20171025早】alert(1) to win 练习
本人黑绝楼,自称老黑,男,25岁,曾经在BAT工作过两年,但是一直都是底层人员,整天做重复性工作,甚敢无趣,曾和工作十年之久的同事聊天,发现对方回首过往,生活是寡淡如水,只有机械性工作。旋即老黑毅然决然辞职,现赋闲在家,打算从软件开发工程师转为安全研究,开这个博客记录平生,以飨各位看官。
老黑我无房,无车,无女友,身高一米七七,微胖,为计算机奋斗了四五年,可惜进步甚微,现决心发愤图强,在未来的七八个月里做最后的挣扎,不成功便安心结婚生子,随了父母的心愿。:)
人生处处都是选择,做出正确的选择才能谋取更大的局面。
开篇第一章,2017年10月25日早上7点起床,写了一章小说发到了起点网上,然后开始研究安全,呵呵。
网上安全研究的网站,文章,课题这么多,该将有限的时间用在哪个身上呢?
i春秋,知道创宇技能表,还是直接在补天上挖漏洞?
选择知道创宇的技能表,视频太浪费时间了,文字和实战是首选,视频能不看就不看。
XSS 练习网站
https://alf.nu/alert1
第三题
function escape(s) {
s = JSON.stringify(s);
return '<script>console.log(' + s + ');</script>';
}
目的是构造可执行alert(1)命令是s字符串,显示到页面是
<html>
<head></head>
<body>
<script>console.log("s")</script>
</body>
</html>
TRY:
1. 输入 ") 打算封闭log的函数,可是s经过了JSON.stringify()特殊处理,输入的 " 变成 \" 无法封闭log函数,打算查看JSON.stringify()有什么可以突破的地方,最后发现没有。
2. 简单粗暴的闭合<script>标签,直接构造新的。输入 </script><script>alert(1)</script>,OK!

回过头仔细查看了下JSON的stringify函数是要对特殊字符进行转义的像 ",\ 等,以便正确读取完整的s字符串,所以第一种尝试是不成功的,显而易见,如果连完整的字符串都读取不完整的话,开发人员早就不使用这种函数了。
第四题
function escape(s) {
var url = 'javascript:console.log(' + JSON.stringify(s) + ')';
console.log(url);
var a = document.createElement('a');
a.href = url;
document.body.appendChild(a);
a.click();
}
TRY:
1. 不能像第三题一样,闭合<script>,输入的内容都会套在可恶的双引号里边,结合外部代码,发现是一个url,通过提前对被转义的 " URL编码,尝试闭合log函数,输入
%22);alert(1)// 尝试成功!
原理:输入的字符串 -> URL编码 -> 到服务器后解析 -> 实现目的
参考:
https://my.oschina.net/heweipo/blog/395884
http://www.cnblogs.com/liuhongfeng/p/5006341.html
http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html
【20171025早】alert(1) to win 练习的更多相关文章
- 【alert(1) to win】不完全攻略
alert(1) to win 一个练习XSS的平台,地址:https://alf.nu/alert1 Warmup 给出了一段JavaScript代码 function escape(s) { re ...
- alert(1) to win Part Ⅰ
alert(1) to win Adobe: function escape(s) { s = s.replace(/"/g, '\\"'); return '<script ...
- 【20171027早】alert(1) to win 第9,10,11,12题
人在江湖,不服就干! 第9题: function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { r ...
- 【20171026早】alert(1) to win - 第六、七、八题
早上7点起床,又写了一篇小说发在了起点网上,有兴趣的可以看看.点击这里 忙完后,继续练习,刚开始发现自己答题的速度有些慢,可能是因为对于html,javascript知识不是很精通,但是话又说回来,谁 ...
- 【20171025晚】alert(1) to win 第五题 正则表达式过滤
吃过晚饭,再练一题 第五题 function escape(s) { var text = s.replace(/</g, '<').replace(/"/g, '"' ...
- 【20171025中】alert(1) to win 脚本渲染自建
游戏误人生,一下午玩了将近四个小时的三国杀,后悔不已,然后重新拾起xss challenge,突发奇想,自己构建渲染后的html. 从最简单的开始. 自动检测html: <!DOCTYPE ht ...
- 【20171027中】alert(1) to win 第13,14,15,16题
第13题 题目: function escape(s) { var tag = document.createElement('iframe'); // For this one, you get t ...
- alert(1) to win部分解题
XSS在线习题分析 (https://alf.nu/alert1) 1. Warmup function escape(s) { return '<script>console.log(& ...
- "alert(1) to win" writeup
地址:http://escape.alf.nu/ level 0: 注意补全,");alert(1)// level 1: 通过添加反斜线使用来转义的反斜线变为字符,\");ale ...
随机推荐
- linux系统命令<二>----du的使用方法
1> 要显示一个目录树及其每个子树的磁盘使用情况 du /home/linux 这在/home/linux目录及其每个子目录中显示了磁盘块数. 2> 要通过以1024字节为单位显示一个目录 ...
- eastcom——eclipse中运行vtmserver项目
1, vtmserver项目必须在tomcat7上运行. 2, 在Eclipse中vtmserver的截图 3, 在eclipse中配置一个tomcat7并将vtmserver加入其中 4, 在ecl ...
- JS判斷文件大小
function findSize(file) { var dom = document.getElementById("file"); var fileSize = dom.fi ...
- Java定时任务调度详解
前言 在实际项目开发中,除了Web应用.SOA服务外,还有一类不可缺少的,那就是定时任务调度.定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券 ...
- 导航栏 .active激活
参考 :使用angularjs写一个导航栏控制器 1.点击其中一个li其他的class不影响 2.点击其中一个li其他的class影响 <!DOCTYPE html> <html l ...
- electron入门心得
前言 前端开发桌面程序这个概念已经出现有一段时间了,这项技术也已经走向成熟,Github上nw和光electron的star就差不多有10w颗星了,github也衍生出了很多开源的桌面项目俨然成了一个 ...
- Find 找规律,递推
Find Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatus P ...
- 箱线图(boxplot)简介与举例
简述: 盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的.它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(m ...
- Response.Write输出导致页面变形和页面白屏解决办法
方法一:此方法应该是微软官方推荐的方法,但弹出时会造成页面白屏.Page.RegisterStartupScript("TestEvent", "<script&g ...
- 详解m4文件
最近在分析speex代码,发现编译过程中需要的一个speex.m4文件不知道是何方神圣,怀着对未知知识的渴望,跑到 某哥和某基问了一下,算是认识了,为了方便以后经常见面,这里就做个记录吧. M4实际上 ...
