关闭

有意思的游戏:Google XSS Game

Google最近出了一个XSS的游戏: https://xss-game.appspot.com/ 我这个菜鸟看提示,花了两三个小时才全过了。。 这个游戏的规则是只要在攻击网页上弹出alert窗口就可以了。 题目页面是在iframe里嵌套的展现的,那么父窗口是如何知道iframe里成功弹出了窗口? 是这样子实现的: 题目页面加载了这个js,改写了alert函数,当alert被调...
阅读(3263) 评论(0)

扯谈web安全之JSON

前言 JSON(JavaScript Object Notation),可以说是事实的浏览器,服务器交换数据的标准了。目测其它的格式如XML,或者其它自定义的格式会越来越少。 为什么JSON这么流行? 和JavaScript无缝对接是一个原因。 还有一个重要原因是可以比较轻松的实现跨域。如果是XML,或者其它专有格式,则很难实现跨域,要通过flash之类来实现。 任何一种数据格式,如...
阅读(20205) 评论(2)

利用hsdis和JITWatch查看分析HotSpot JIT compiler生成的汇编代码

安装hsdis 要查看JIT生成的汇编代码,要先装一个反汇编器:hsdis。从名字来看,即HotSpot disassembler。 实际就是一个动态链接库。网络上有已经编绎好的文件,直接下载即可。 国内的:http://hllvm.group.iteye.com/ 也可以自己编绎,只是编绎hsdis,还是比较快的。 参考这里:http://www.chrisnewland.com/bu...
阅读(6139) 评论(2)

并行编程之多线程共享非volatile变量,会不会可能导致线程while死循环

背景 大家都知道线程之间共享变量要用volatile关键字。但是,如果不用volatile来标识,会不会导致线程死循环?比如下面的伪代码: static int flag = -1; void thread1(){ while(flag > 0){ //wait or do something } } void thread2(){ //do something f...
阅读(3539) 评论(1)

ElasticSearch远程任意代码执行漏洞(CVE-2014-3120)分析

原理 这个漏洞实际上非常简单,ElasticSearch有脚本执行(scripting)的功能,可以很方便地对查询出来的数据再加工处理。 ElasticSearch用的脚本引擎是MVEL,这个引擎没有做任何的防护,或者沙盒包装,所以直接可以执行任意代码。 而在ElasticSearch里,默认配置是打开动态脚本功能的,因此用户可以直接通过http请求,执行任意代码。 其实官方是清楚这个漏洞...
阅读(10059) 评论(0)

写程序很难之logstash之file input插件实现分析

前言 写程序有时候真的有点难,要考虑各种情况。 应用在运行中,会不断生成日志文件。假如要实现一个日志收集的工具,不考虑其它的分析功能,只考虑收集,有哪些方面要考虑的? 首先看下一般的log框架是如何输出日志的: 可能是这样的:a.log.1,  a.log.2, a.log.3, a.log.4, a.log.5 循环输出; 可能是这样的: a.2014-5-5.log, a.2014-...
阅读(24552) 评论(2)

扯谈网络编程之Tcp SYN flood洪水攻击

简介 TCP协议要经过三次握手才能建立连接: (from wiki) 于是出现了对于握手过程进行的攻击。攻击者发送大量的SYN包,服务器回应(SYN+ACK)包,但是攻击者不回应ACK包,这样的话,服务器不知道(SYN+ACK)是否发送成功,默认情况下会重试5次(tcp_syn_retries)。这样的话,对于服务器的内存,带宽都有很大的消耗。攻击者如果处于公网,可以伪造IP的话,对...
阅读(15677) 评论(5)

ZPush--基于netty4实现的苹果通知推送服务(APNs)Java客户端

简单说下实现苹果通知推送服务(APNs)客户端的一些要注意的地方: 使用长连接;sanbox服务器是没用的,调试时直接用“gateway.push.apple.com”域名;对于错误的Notification,苹果会回应一个Error response,里面有个identifier,在这个identifier之后的Notification全都失败; 因此发送者要缓存已经发送的Not...
阅读(6907) 评论(11)

蛋疼的Apple IOS Push通知协议

简介 Apple Push通知机制其实很简单,就是Apple的APNs服务器做为中间人,把消息推送到对应的设备上。 一张来自Apple文档的图: 当然,示意图看起来简单,但是还有一些实际的问题。 比如,如何区分Provicer的?如何区分设备的? 简单而言,是这样的: 每个应用都有一个自己的证书(certificate),开发者可以从苹果那里获得;应用可以到APNs服务...
阅读(7416) 评论(0)

用KGdb和VMware调试Linux内核,System Call

Linux的内核和System Call不好调试,参考这里: http://stackoverflow.com/questions/5999205/cannot-step-into-system-call-source-code 简单来说,如果想在本机调试system call,那么当你进入system call时,系统已经在挂起状态了,那么它又怎样能响应用户的输入? 所以,有一个UML...
阅读(3000) 评论(0)

JVM GC调优一则--增大Eden Space提高性能

缘起 线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。 思路 思路是Tomcat本身的代码应该是没有问题的,有问题的可能是应用代码升级,或者环境改变了,总之Tomcat的优先级排在最后。 先把应用的heap dump下来分析下: jmap -dump:format=b,file=path pid 用IB...
阅读(26919) 评论(1)

扯谈网络编程之自己实现ping

ping是基于ICMP(Internet Control Message Protocol)协议实现的,而ICMP协议是在IP层实现的。 ping实际上是发起者发送一个Echo Request(type = 8)的,远程主机回应一个Echo Reply(type = 0)的过程。 为什么用ping不能测试某一个端口 刚开始接触网络的时候,可能很多人都有疑问,怎么用ping来测试远程主机的某个...
阅读(4038) 评论(0)
    个人资料
    • 访问:1582147次
    • 积分:11421
    • 等级:
    • 排名:第1415名
    • 原创:129篇
    • 转载:29篇
    • 译文:2篇
    • 评论:342条
    博客专栏
    文章分类
    最新评论