代码审计

补充一个,之前在说XSS的输入检查的时候,这种方式是有局限性的,因为输入的XSSfilter无法理解输出的语境,对一些符号的处理可能会改变用户数据的原意,并且,针对一些特定输出点可能起不到正确的防御作用。然后这篇的内容是想把代码审计的一个大体思路和一些注意的地方记录一下。 目录 代码审计思路 首先,我们在对一个系统进行审计过程之前,最好在本地搭建一个应用,然后对功能有个大体上的了解。然后接下来会描述一下几种不同的审计思路。 从功能方向上的审计思路 从index、webxml等入口页面开始 寻找加载的配置文件,如conf、inc、ini、敏感xml文件等 寻找功能实现点 从功能点中找到参与实现的函数 函数中是否含有敏感方法的调用 调用过程中参数是否可控,参数是否通过安全函数,以及安全函数对应此功能点是否合适 数据有无二次使用,在二次使用中是否做了相应的安全措施 从数据流向上的审计思路 用户可控变量在应用的什么位置被获取 该变量参与了什么功能的实现,将涉及变量的所有函数找全 参与的函数中是否含有敏感方法 如为敏感方法对应数据是否做了安全措施 注意普遍验证过程中参数的...»

关于阿里面试的反思(1)

这周阿里的电话面试终于来了,然,并没有做好准备。。。现在先把阿里面试过程中的部分答案内容做下总结反思。之后一段时间应该会细致地过一遍基础吧。嗯。 同源策略 同源策略限制不同源对当前document的属性内容进行读取或设置。 不同源的区分:协议、域名、子域名、IP、端口,以上有不同时即不同源。 DOM型和反射型的区别是什么,根本区别是什么?如果针对DOM型XSS做扫描器,怎么去做,人工确认DOM型XSS,怎么去确认。给客户做XSS的时候,怎么提修补建议? DOM型和反射型的区别 反射型XSS:通过诱导用户点击,我们构造好的恶意payload才会触发的XSS。 反射型XSS的检测我们在每次请求带payload的链接时页面应该是会带有特定的畸形数据的。 DOM型:通过修改页面的DOM节点形成的XSS。 DOM-based XSS由于是通过js代码进行dom操作产生的XSS,所以在请求的响应中我们甚至不一定会得到相应的畸形数据。 根本区别在我看来是输出点的不同。 对于XSS怎么提修补建议 输入点检查:对用户输入的数据进行合法性检查,使用filter过滤敏感字符或对进行编码转义...»