分类 anything 下的文章

秋夜小记

刚打完hctf,跑下楼去取了两本书,一本是《白帽子讲web扫描》,另外一本是《互联网企业安全高级指南》,都是从tsrc兑的。

最近无论是在工作、打ctf或是挖洞的时候都深深体会到自己代码能力的薄弱,在遇到一些需要工业式处理的问题面前往往会因为代码瓶颈显得有些束手无策。之前也买了一本《core java》,可以配合着《扫描》一起看看。
至于后面那本,我希望能够通过阅读它来提升自己思考安全问题的维度,并能够以企业安全的视角去切入并解决问题。

看书有助于建立完整的知识体系,还是那句话:多读书,少日站。

——————话说去取快递的时候有点小冷啊。。。大伙记得添衣。

21:49
Th1s

职业规划

这个月1号入的职,从此告别了自由自在的学生时代。算一件好事情,从五月份匆忙写完毕设到7月也差不多快荒废了一个多月了,这几天终于把弦又绷紧了。从此便走上职场,正好晚上下班回来不是很累,赶紧抽空写一篇文规划一下未来的发展路线,写到哪就到哪吧。

- 阅读剩余部分 -

近期的学习任务

找工作告一段落,最近几个月都在忙杂事没怎么好好学习。基于面试过程中发现自己的一些薄弱环节,制定几个学习计划。

1.社工的学习
2.sql注入绕过waf的深入学习
3.php反序列化的学习
4.xss利用的深入学习

阿里面试回顾以及反思

这周一进行了阿里第一次电话面试,面完以后总体情况还算满意,然而这几天整理了一下发现题答得惨不忍睹。。。web渗透方面的问题答得还算行,而一些密码学以及安全协议的内容则答得有点水了。问的问题感觉都是在《白帽子讲web安全》这本书上有的,那就边翻书边把问题整理一下。

  1. 同源策略
    不同端口、host、子域名以及协议的url不同源。 判断是否同源肯定需要两个url进行比较。那我们先假设被比较的url为http://www.baidu.com/test
    不同端口的例子:http://www.baidu.com:81/test
    不同子域名的例子:http://map.baidu.com/test
    不同协议的例子:https://www.baidu.com
    结果在回答问题的时候,面试官问的二级域名不同是否同源时,由于不是特别清楚二级域名的定义,结果答了个同源。。。。。

.com .top 顶级域名
baidu .com baidu.top 一级域名
www.baidu .com 二级域名
bbs.baidu .com 二级域名
tieba.baidu .com 二级域名

  1. dom based xss
    通过修改页面的dom节点形成的xss,称之为dom based xss。通俗的说是通过javascript中输出数据到html页面而不是从服务器应用直接输出到html页面
    (1).xss的防御:在html标签和属性中输出使用htmlencode,在script标签和事件中输出用javascriptencode,在地址中输出使用urlencode,在css中输出使用encodeforcss()
    (2).dom based xss的防御:在输出到scipt标签的时候首先要进行一次javascriptencode,在document.write输出到html页面时要分情况对待,具体方法参照(1)。也就是说要进行两次encode

  2. xss payload
    面试官问了这么一个场景:使用xss盲打打到了cookie和后台,但是后台在内网怎么办。比较简单的方法是使用beef拿到一个jsshell,可以把管理员电脑作为一个http代理,就能访问后台了。

  3. sql 文件读写以及盲注
    场景:有一个盲注点,如何使用盲注读passwd文件。思路是首先创建一个表,使用load_file先把文件读出,然后用into dumpfile把内容写入一个文件,再使用load data infile把创建的文件写入到先前创建的表当中,最后就用普通的盲注方法对表进行操作就可以了。
    sql语句:
    create table test(line blob);
    union select 1,1,hex(load_file('/etc/passwd')),1,1 into dumpfile '/tmp/test';
    load data infile '/tmp/potatoes' into table test;

  4. 宽字节注入的防御
    统一数据库、操作系统、web应用所使用的字符集,以避免各层对字符的理解存在差异。比较好的方法是统一设置为utf-8

  5. 如何设计一个安全的文件上传功能
    (1)使用白名单判断文件类型
    (2)重命名。文件名的重命名方式为随机数,后缀的话首先看是否在白名单中,在的话就用该后缀
    (3)将文件上传的目录设置为不可执行。可以修改配置文件:
    <Directory /home/www/images/>
    php_flag engine off

    (4)对文件进行压缩,破坏其原有结构
    (5)单独设置文件服务器的域名

  6. web server解析漏洞举例
    apache:webshel.php.rar.rar.rar (由于mime.types里没有rar,不认识就往前遍历知道.php)
    iis: xyz.asp;abc.jpg (;会截断)
    xyz.asp/abc.jpg (*.asp/目录下的所有文件都会当作asp文件进行解析)
    xyz.jpg/.php (IIS7.5,前面两个asp是6.0)
    nginx: test.jpg/test.php (上传一个test.jpg,test.php并不存在,会把test.jpg当成php解析)
    test.jpg%00.php (上传一个test.jpg,访问test.jpg%00.php就能解析)

  7. csrf的防御
    1.验证referer
    2.验证码
    3.使用token

  8. 伪随机数
    可以通过一些物理系统生成随机数,如电压的波动、磁盘磁头读/写时的寻道时间、空中电磁波的噪声等

  9. oauth协议和ssl协议
    百度可以看到更加详细的答案。

  10. 权限管理
    垂直权限管理:struts2和spring框架中是如何实现的?白帽子里面有
    水平权限管理:如何检测水平越权漏洞?不知道。。。求解答

总结一下,通过这次面试让自己认识到了很多不足,比如在学一个技能点的时候并没有学的太细致,导致了在回答问题时只能回答个大概而不能答出所有的内容。不管最后能不能通过吧,这次面试还是收获颇丰的。