用户
搜索

[web安全] Web安全进阶教程

  • TA的每日心情
    开心
    昨天 10:37
  • 签到天数: 188 天

    连续签到: 2 天

    [LV.7]常住居民III

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    14

    主题

    45

    帖子

    2110

    魔法币
    收听
    0
    粉丝
    5
    注册时间
    2018-6-2

    i春秋签约作者

    发表于 6 天前 72914
    本帖最后由 dll_s 于 2021-7-18 17:09 编辑

    web安全进阶教程

    最近在做一些整理以及其他工作,所以这个系列更新也比较缓慢。梳理了一下已发布的几篇文章,决定加一个类似序言或者说是目录的文章来帮助各位小伙伴更好的学习和利用这一系列文章中的知识和技巧

    这是一篇面向初学者的教程文,并不需要你有太多的基础,了解计算机相关原理就可以了。不过文章内容比较随性,想到什么说什么,不涉及技术细节以及宏观视角,一些具体细节也不过多描述,更多的还是起一个框架性并且抛砖引玉的作用,所以如果有问题欢迎指正(文章内容不定时更新)

    如何学习web安全

    web安全属于信息安全中的一个分支,随着整个互联网的发展,针对于系统漏洞的发现与探查,其成本变得越发高昂(无论是时间还是经济成本),因此在对特定目标发起攻击时,web往往是一个好的切入点。同样企业当中的web系统也成为了最容易沦陷的点,所以这也是为什么越来越多的人开始学习web安全,同时行业中需求最多的也是拥有这方面技能的人员(对于这点大家可以上各类招聘平台自己探索一下)。

    那学web安全究竟在学什么呢,首先需要学会的自然是各类通用漏洞的原理,如xss、sql注入、xxe、csrf、ssrf......看到这类名词时要知道他说的是什么,而这也是我所撰写这Burpsuite练兵场系列文章的主要内容。根据这些漏洞原理,其实可以分为三大类,这里略微整理了一下,后面随着文章增加可能还会更新。

    通用漏洞原理(系列文章目录)

    服务器端:

    SQL注入、身份验证、目录遍历、命令注入、业务逻辑漏洞、访问控制与越权漏洞、敏感信息泄露、SSRF、XXE、文件上传...

    客户端:

    XSS、CSRF、点击劫持、DOM型漏洞、WebSocket相关...

    高级漏洞:

    不安全的反序列化、服务器模板注入、Web缓存投毒、HTTP HOST攻击、HTTP请求走私、OAuth 2.0身份验证漏洞...

    注意:比较建议先从Pikachu、dvwa这些简单靶场进行练习,之后再借助Portswigger靶场进行进阶训练。同时结合一些特定漏洞靶场进行扩展练习:sqli-labs、upload-labs、xss-labs等

    学会了这些漏洞的基本原理,就像是掌握了习武的内功心法,以后看到漏洞分析才能融汇贯通。那学会了这些之后挖洞技巧能突飞猛进吗,其实也并不能,说实话完美掌握所有这些漏洞的挖掘方式是非常困难的,许多挖洞大佬也更多的是专精于某一方面,所以还需要大量的练习。同时,对于Web语言的掌握能力与编程经验也同样会影响到实际的web漏洞发掘能力。但学习语言的精力和成本都是广泛的,所以我会更多的提倡以目标为导向进行学习,看看一些后台漏洞点的源码,学习常见的业务逻辑代码,熟悉一些敏感的函数操作,这样也不太容易迷失在开发的学习海洋当中。

    公开漏洞学习

    了解了通用漏洞原理后,就可以学习一些CVE或者常见漏洞的分析和利用了。首先来说说漏洞利用(因为学习成本较低但实用性较强),对于这个现在也已经有了很多集成化的工具,比如常用的AWVS,xray,vulmap等,还有Burpsuite上的一些插件Software Vulneraybility Scanner等等,不能过于依赖工具但也要善于利用工具,对于这些大家可以自行搜索一些自己觉得得心应手的(另外还有一些专门扫描特定组件的扫描器Struts2-Scan、TPscan等这里就不再复述)。另外一些没有特定工具需要使用单独exp等方法的也可以借助搜索引擎或一些集中的开放文库进行学习:白阁文库PeiQi文库

    在使用这些工具时,可以利用一些公开docker靶场快速搭建漏洞环境,比如:vulhubvulfocus等,这个vulfocus甚至不需要在本地运行docker,可以直接在线选择特定漏洞靶场,开箱即用,还是非常的方便的。

    对于漏洞分析,目前来看似乎各类文章都比较分散,可能还是需要自己针对特定漏洞进行搜索(或者大家有发现公开的文档集可以安利我一下),同时自行搭建环境进行源码调试和验证。而且很多时候,一些漏洞分析文章更多的只是根据流程一步一步剖析触发点,很少会有讲解这一漏洞是如何发掘,所以更多时候还是需要我们自行思考,可以多结合一下官方的补丁文档和安全公告。

    工具使用

    熟练使用工具无论是在漏洞挖掘还是自动化利用都是非常必要的,这个也无非是熟能生巧,需要多结合文档并多多练习,找到适合自己的方法,相信大家都能够很快掌握的。因为网络上关于工具的介绍何使用文章都挺多,这里就不再复述了。

    CTF(Capture The Flag)

    这个应该接触安全的小伙伴都耳熟能详吧,其实我本身是不打CTF的,但后来发现还是挺有必要的。当初不打ctf主要还是考虑比较耗费精力,而且有依靠刷题的嫌疑,还是比较喜欢实战。但是后来有大佬给我的建议我觉得很有道理,就是可以寻找一些特定漏洞点的CTF题进行练习,以此来增加漏洞的实战应用能力以及对漏洞本质的更深理解。同时CTF也是一个很好的证明自己能力的依据,所以也把这个分享给大家, 不过当然如果能够挖穿src那效果也是一样的。

    漏洞挖掘

    在了解基本原理后,漏洞挖掘也是一个非常重要的技能点。

    • 可以从一些简单的漏洞开始,比如xss,sql注入等,可以借助一些扫描工具
    • 信息搜集很重要,主站的漏洞往往很难挖,基本要借助逻辑漏洞点切入,所以需要留意一些边边角角比如公众号小程序。同时陈旧的网站组件或新的网站功能都往往易于出现切入点,这个要自己多加体会。
    • 对特定参数、网站接口进行详细测试,可以参考《OWASP Web Security Testing Guide》
    • 学习逻辑漏洞的挖掘
    • 利用Fuzz技术
    • 进行代码审计

    拓展

    Web安全也只是信息安全当中的一个分支,在一些实际的攻击场景中,web漏洞更多的是起到入口点的作用,当我们通过漏洞获取到服务器权限时,后续就可以进行一些提权,内网横向,获取域控,跨域攻击等操作。所以可见,除了web以外,学习点还是非常多的,但是也不用太过急躁,构建一个全局观,剩下的就是时间问题了。

    一入安全深似海,这会花费你的很多的精力,所以各位在平时也要多注意休息呐

    想要熟悉原理必然要学会对应的开发技术,这东西越学越多,越整越深
    My blog :http://www.e-wolf.top
    使用道具 举报 回复
    Adian大蝈蝈 发表于 2021-7-18 17:35
    想要熟悉原理必然要学会对应的开发技术,这东西越学越多,越整越深 ...

    哈哈,所以建议以目标为导向嘛。毕竟安全的思路和开发是不同的,不需要考虑高并发运行效率等问题,可以专注于一些敏感代码和函数特性。
    使用道具 举报 回复
    感谢大佬啊哈哈哈
    使用道具 举报 回复
    表哥6666,午饭多吃俩鸡腿!
    对论坛发展有任何想法
    欢迎+QQ826177911来搞事!
    使用道具 举报 回复
    kinder 发表于 2021-7-18 21:36
    感谢大佬啊哈哈哈

    使用道具 举报 回复
    局长L 发表于 2021-7-19 09:43
    表哥6666,午饭多吃俩鸡腿!

    哈哈 要吃撑的
    使用道具 举报 回复

    都是肉,少吃点米饭!!
    对论坛发展有任何想法
    欢迎+QQ826177911来搞事!
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册