本人黑绝楼,自称老黑,男,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

 

最新文章

  1. 【转载】Linux中常用操作命令
  2. Power BI Q&amp;A终于在圣诞前夕盼到
  3. linux笔记六-------文件权限设置
  4. C# Enum 简易权限设计 使用FlagsAttribute属性
  5. nginx https http 共用
  6. 自学hadoop(三)
  7. C# 之 Excel 导入一列中既有汉字又有数字:数字可以正常导入,汉字导入为空
  8. block的用法和循环引用
  9. devpress 很好的中文论坛
  10. 搜搜(www.soso.com),I 老虎油!
  11. 流风ASP.NET框架商业版-工作流1.0简介
  12. linux动态库加载RPATH, RUNPATH
  13. oracle 与sql server 部分内置函数替换
  14. mysql 打开远程服务
  15. 使用ConcurrentDictionary替代Hashtable对多线程的对象缓存处理
  16. 数据库和 MySQL 简介(真的只是简介)
  17. springcloud~配置中心的使用
  18. dp小总结
  19. query的set能添加多个
  20. String的getBytes()方法 以及 new String()

热门文章

  1. Java单链表实现
  2. Struts2-在js中使用struts2标签
  3. java web项目修改favicon.ico图标的方式
  4. [python学习笔记] 数据类型与语法
  5. oracle 例外
  6. tomcat manager 的用户权限配置,及环境变量CATALINA_HOME的错位问题
  7. eclipse安装lombok插件问题解决
  8. Access-Control-Allow-Origin与Ajax跨域
  9. 获取报告 Stream转string,利用字符串分割转换成DataTable
  10. asp.net或javascript判断是否手机访问