本人黑绝楼,自称老黑,男,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 练习的更多相关文章

  1. 【alert(1) to win】不完全攻略

    alert(1) to win 一个练习XSS的平台,地址:https://alf.nu/alert1 Warmup 给出了一段JavaScript代码 function escape(s) { re ...

  2. alert(1) to win Part Ⅰ

    alert(1) to win Adobe: function escape(s) { s = s.replace(/"/g, '\\"'); return '<script ...

  3. 【20171027早】alert(1) to win 第9,10,11,12题

    人在江湖,不服就干! 第9题: function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { r ...

  4. 【20171026早】alert(1) to win - 第六、七、八题

    早上7点起床,又写了一篇小说发在了起点网上,有兴趣的可以看看.点击这里 忙完后,继续练习,刚开始发现自己答题的速度有些慢,可能是因为对于html,javascript知识不是很精通,但是话又说回来,谁 ...

  5. 【20171025晚】alert(1) to win 第五题 正则表达式过滤

    吃过晚饭,再练一题 第五题 function escape(s) { var text = s.replace(/</g, '<').replace(/"/g, '"' ...

  6. 【20171025中】alert(1) to win 脚本渲染自建

    游戏误人生,一下午玩了将近四个小时的三国杀,后悔不已,然后重新拾起xss challenge,突发奇想,自己构建渲染后的html. 从最简单的开始. 自动检测html: <!DOCTYPE ht ...

  7. 【20171027中】alert(1) to win 第13,14,15,16题

    第13题 题目: function escape(s) { var tag = document.createElement('iframe'); // For this one, you get t ...

  8. alert(1) to win部分解题

    XSS在线习题分析 (https://alf.nu/alert1) 1. Warmup function escape(s) { return '<script>console.log(& ...

  9. "alert(1) to win" writeup

    地址:http://escape.alf.nu/ level 0: 注意补全,");alert(1)// level 1: 通过添加反斜线使用来转义的反斜线变为字符,\");ale ...

随机推荐

  1. 市场主流5款HTML5开发框架详解

    我们经常听见的前端框架是一个非常大的范词,因为前端框架都是基于JS.CSS.HTML5技术开发实现的,不过选择一个HTML5开发框架需要考虑哪些方面,首先就是需要什么样的功能,其次就是技术实现,不过当 ...

  2. 快递鸟顺丰物流api接口对接多种方法整理

    目前很多自营电商平台.ERP系统.仓储系统.快递柜企业,对物流模块数据需求还是比较旺盛的.之前有介绍过简单的接口对接方法,这次给大家整理介绍两种快递数据的获取方法. 接口秘钥可以向顺丰公司申请,或者一 ...

  3. 参考:Python 调试方法

    地址:http://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/ 这是Python代码调试技巧,也是我今天从别的地方看到的,然后转载 ...

  4. Selenium_WebDriver_元素方法

    版权声明:本文为博主原创文章,转载请注明出处. 前面已经学习了定位元素,定位只是第一步,定位之后需要对这个元素进行操作,如在百度搜索首页的输入框进行输入文本,对"百度一下"按钮进行 ...

  5. 01_ExtJS_HelloWorld

    1, 什么是Ext? Ext是一个Ajax框架,用于在客户端创建丰富多彩的web应用程序界面,是在Yahoo! UI的基础上发展而来的.官方网址:http://www.extjs.com/ 现在改为: ...

  6. Lodop 动态加载模板,动态加载数据

    最近需要使用Lodop打印控件,所以就研究了一下,期间从网上找了诸多的东西,基本全是对HTML进行打印的,没有找到我想要的,就只好自己动手丰衣足食. 这篇文章主要讲述的是Lodop与数据的结合使用,官 ...

  7. Java IO学习笔记(一)

    一.概念 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.在两设备间的传输的数据称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,以进行数据操作. 二.流分类 数据类型 ...

  8. Python 基础系列一:初识python(二)基本数据类型

    上节拾遗 1.编码转换过程,utf-8转换gbk 过程 经过解码(py27): x.decode('utf-8')-->unicode-->编码x.encode('gbk') ps:py3 ...

  9. struts2-学习笔记(三)

    Struts2 学习笔记(三) 1.ognl概述: OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用O ...

  10. 让asp.net网站支持多语言,使用资源文件

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs&quo ...