终章:学习路线

news2024/11/24 17:58:07

说明

该文章来源于徒弟lu2ker转载至此处,更多文章可参考:https://github.com/lu2ker/

文章目录

    • 说明
    • 一些废话
    • 成果
    • 路线
      • 第一阶段
        • 要点
      • 第二阶段
        • 要点
      • 第三阶段
        • 要点
      • 第四阶段
        • 要点
    • 最后

一些废话

截至这篇文章前已经有150+star了,虽然比不上大佬们K级的量,但也是证明了做这个东西是有意义的。

创建这个repo的本意就是记录自己的学习过程,但其实还是疲于整理,其中大部分内容都是在4月份完成的,
未来这个repo也会是在遇到想记录的,关于PHP的知识点的时候才会再补充。

学习技术的过程中分享真的是很重要的,看懂和表述出来完全不一样。分享这件事,利人利己。

还有就是勇于去尝试吧,之前没有写自己的学习路线是觉得“我配吗?”,现在写是因为最近两天的成果
已经表明,这条路线不是一条歪路,而且感觉学起来还是挺轻松的,遂分享出来。

看看能不能帮助到 没有关系好的大佬能指点自己的、对代码审计感兴趣的、想学PHP的朋友。(PHP没前途,建议卷JAva

成果

先说一下,自己目前的成果

  1. 学PHP以来(断断续续差不多一年吧)总共只审计了大概7套系统左右,很少,但都可以挖到中危及以上的洞。
  2. 前几套都是在开源网站下载感兴趣的源码,比较垃圾的那种,用来增加经验,逻辑漏洞、SQLi漏洞为主,后台洞为主。
  3. 最近看的两套在本人看来质量还可以,某协同office和某安全终端的前台RCE,可以往简历上写的那种。
  4. 在审计某协同office的时候遇到了没了解过的框架,但还是能硬磨下来,挖到漏洞。(基础的重要性)
  5. 产生了对代码审计的一些看法,对不同编程语言的看法。

路线

第一阶段

感兴趣但又不知道从哪儿入手的话,就从CTF题开始吧。

兴趣是第一生产力,做CTF题是我觉得很容易提起学习兴趣的一件事。目前的CTF平台的题库都有很多的php代码审计相关的
题目,从简单的学起,看答案也没关系,但必须把遇到的每一个不懂的、没见过的知识点记录下来,一周或者两周review一次,
看看自己还想不想的起来。对纯新手来说,遇到实在是看不懂的,查大半天资料也想不明白的知识点就跳过,以后慢慢就会了。

把能找到的所有除了反序列化之外的题目都学了一遍后,肯定是似懂非懂的状态。这个时候我认为没必要硬啃那些难度较大的题目,
刚开始做CTF题只是为了保持兴趣而已。这个时候我选择去了解一个PHP语言开发的网站是怎么跑起来的,找一个简单的PHP开发课程,
跟着一步一步做出来一个属于自己的博客系统,会让你对php网站的整体流程有一个简单而清晰的了解,其实后端无非就是数据库的
增删改查加一点点逻辑,学着手敲一个简单的博客系统后端,随便拖个写好的前端,一周的时间就可以完成。

如果之前的这些都能自评是懂这个技能了,就可以更进一步学习了。如果感觉自己并没有什么成长,可能这种用时间来降低难度
的学习方法不适合你,耽误了这么多时间我很抱歉。

要点

  • 做简单的CTF题
  • 学简单的PHP后端开发

第二阶段

第一阶段用大量的时间帮你打好了php代码审计需要的基础,但是不能永远学基础,基础也会有天赋上的瓶颈,有人筑基了就是金丹期下第一人,
有人筑基了连练气期都打不过。。。

这个时候我是选择去跟着师傅们的文章去过一遍比较小众的CMS,亲身体验一下一套系统的代码审计是个怎么回事儿。找那种分析的巨详细的文章,
比如熊海CMS、苹果CMS、BlueCMS低版本都是非常适合新手来找感觉和成就感的系统,认真读师傅们的分析,找文章中提到的每一个函数的位置,
一天搞不定就两天、一周。体验一次过后如果发现自己还是难以理解一些东西,就多循环几次,再坚持一下。如果觉得代码审计也不过是那么回事儿,
恭喜你,你在第一阶段的学习很有效。

要点

  • 找一些详细的代码审计文章
  • 跟着审一些小众CMS找感觉

第三阶段

别膨胀,学完这个第三阶段才可以说是入门了。

我也忘了自己当时是怎么想的,就去学Thinkphp框架了,不过现在看来这段学习经历还是很有用的。

Thinkphp框架的历史漏洞有不少,而且基本都是高危的,学习框架代码的最大的好处就是能让你接触到设计模式,什么是MVC。如果到这个阶段
了你还是没有找到能指点你学习代码审计的师傅,那不如就像这个repo一样,把七月火大佬的文章自己debug一遍,他的文章都是非常详细的
教科书级漏洞分析,相信我,能跟着过一遍准没错。当然现在就不能简单的只是跟着,你已经不是小白了,学会自己思考为什么?怎么会这样?
具体的可以按照顺序参考我这个repo的文章特点,你应该会发现一种递进的学习状态。自己琢磨琢磨,自己能debug出来完整的调用链,知道paylaod
中每个参数的意义,知道payload在代码执行中的传递过程,就可以了。

期间如果感觉太枯燥,或者感觉自己掌握了一些东西,就可以去自己挖一下网上没有人发表漏洞的CMS,还是建议在站长之家上找一些小众的,
比较好挖,下载量可以找一些2k-2w的,比如我审过的的一个kyxscms,就不错。

如果现在审这些小众cms对你来说只是时间问题,并不会感觉无从下手,甚至能挖出来网上搜不到的洞(垃圾CMS的0day),恭喜你,入门了。

要点

  • 研究框架级的漏洞,能有自己的理解
  • 尽量多去实战,挖到的洞没用没关系,重在练习和经验

第四阶段

说你会吧,你挖的全是垃圾系统;说你不会吧,你挖到的洞还挺有意思。

突破一下自己,找个不被打扰的环境,别想能不能挖到漏洞,找一套或者买一套有名气的php的系统,去把这套系统理解了,遇到问题解决问题,
你学了那么久,学会了那么多东西,已经没有什么是你完全无法理解的了。相信自己,去审,硬磨它,理解它,有洞自然就出现在你眼前了。

审完后回顾一下:没能RCE这套系统,就是失败的。

尽自己最大的努力去RCE它,对自己要求再高一点点,前台没找见RCE,后台RCE也行;后台RCE了,再努力看看前台怎么RCE,总之不要轻易放弃。
洞就在那儿,你只需认真读懂代码。

附上我目前的经验:
在这里插入图片描述

要点

  • 你可以挖到0day。

最后

希望认真读完的你有所收获,希望直接滑到低的你不要对一个认真分享经验的学徒嗤之以鼻。

希望你学完能有自己的理解和想法,自信的说出:“RCE?也不是很难”。

终。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【链表】leetcode203.移除链表元素(C/C++/Java/Js)

leetcode203.移除链表元素1 题目2 思路 (两种方式)2.1 在原来链表上进行删除2.2 设置一个虚拟头结点删除3 代码3.1 C (两种方式)3.2 C版本(两种方式)3.3 Java版本(两种方式)3.4 JavaScript版本4…

Vue的组件、组件的创建、data、methods

一、组件 组件是vue的重要的特征之一,可以扩展html的功能,也可以封装代码实现重复使用。 二、组件的创建 1. 非脚手架方式下创建 ​ 第一步:使用Vue.extend创建组件 ​ 第二步:使用Vue.component注册组件 ​ …

OpenGov(三):新波卡治理机制有哪些可期待?

OpenGov维持波卡开创的信念投票,与以前相同的方式进行,使用WebAssembly和几个链上投票机制。也就是说,OpenGov通过降低障碍,来更好地管理网络的日常决策,将流程推向去中心化。真正的重点是使提案的范围与通过治理流程的…

企业数字化转型到底是什么?

企业的数字化转型单单是从基础设施上变更,更要从企业数据从文化上入手,培养企业的数据文化,以数据驱动来促进业务发展。大家都把数据基础设施讲的很详细了,那么我就从企业的数据化转型当中的数据文化是什么?以下来为大…

Python类型注解(十)

python学习之旅(十) 👍查看更多可以关注查看首页或点击下方专栏目录 一.为什么需要类型注解 在代码中提供数据类型的注解(显式的说明),使用时能获得相关提示 帮助第三方IDE工具(如PyCharm)对代码进行类型推…

想从事网络信息安全的工作,该如何自学?

前言 【一一帮助网络安全入门和提升学习点这里一一】 由于我之前写了不少网络安全技术相关的文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人私信问我: 我刚入门网络安全,该怎么学?要学哪些东西&#…

第56篇-利用jsRpc获取某博的登录参数

声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、JsRpc的基本使用1.准备工作2.简单使用三、使用jsRpc获取微博登录参数1.网站分析2.构建rpc一、前言 以前使用…

记录 一次 小米路由器4C 刷openwrt 过程

前言 起因是4C的性能不太行,用久了网络也不稳定,且100M带宽跑不满,然后就换了路由器,闲置的这个准备哪来跑个Linux挂个bot来着,结果可好,刷完发现内存小的可怜呀,架构也不是主流的(…

低代码助力工业软件发展,提升智能制造“软”实力

在《“十四五”智能制造发展规划》中,将工业软件作为加强自主供给的一个重点任务进行单独部署,强调了工业软件的工业属性,明确了工业软件对于智能制造的核心支撑作用,凸显了我国补足工业软件短板、以工业软件助推智能制造发展的决…

跨境资讯 | 亚马逊三站点将更新供应链标准,1月19日生效

让我们一起来看看今日都有哪些新鲜事吧!01 亚马逊将更新供应链标准 亚马逊美国站、欧洲站和日本站发布公告称2023年1月19日将更新供应链标准,在亚马逊销售的产品必须符合这些新标准。作为定期审查的一部分,这些标准每三年更新一次。亚马逊表…

虹科案例 | 解决ASRS系统的痛点问题居然这么简单?(下)

ASRS中的定位器 在考虑传感技术时,重要的是每种技术都能够以最高程度的重复性和精确度保持绝对分量,并非所有的方法都是一样托盘梭子和立式起重机在任何时候都要求绝对位置。 托盘梭子: 过道位置 行位置 垂直起重机: 高度 线性…

Java中解决lambda表达式内部访问在其外部定义的变量-使用mapToInt

场景 Java8新特性-Stream对集合进行操作的常用API: Java8新特性-Stream对集合进行操作的常用API_霸道流氓气质的博客-CSDN博客_streamapi对集合修改 上面介绍Stream的相关使用示例。 如果遇到在lambda表达式内部访问在其外部定义的变量,比如一个求和…

MATLAB-surf/ezsurf函数绘制三维图形

(1)surf 函数的用法和 mesh函数类似,MATLAB中 surf函数专门用于绘制三维着色曲面图和 surfc是通过矩形区域来观测数学函数的函数。surf和 surfc能够产生由X、Y、Z指定的有色参数化曲面,即三维有色图。具体调用方法如下。1、surf(Z…

JDBC数据库连接

下载jdbc jar包,中央仓库下载https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.24项目导入右键jar包,然后add as library数据库操作3.1连接数据库package com.heima.jdbc;import java.sql.Connection; import java.sql.DriverManager…

Appium自动化测试环境搭建

Appium自动化环境搭建 首先整体了解一下Appium自动化环境搭建都需要哪些软件或者组件 Python、Appium、AndroidSDK(主要是adb.exe、aapt.exe)、Node Js、java 一、安装并配置java环境 1、这个可以搜到的教程实在是太多了,建议直接官方下载…

汽车数据分析,2022年汽车产量总体高于2021年,年产量增长了6%左右

哈喽,大家好,春节将近,想必大家也开始抢票准备回家过年了,有车的伙伴也可能打算自驾归家了。大家辛苦工作了一年,手里积攒了一些积蓄,有些伙伴可能想赶在春节购车购房,这里小编为大家准备了一些…

java面试之设计篇

一、基础 1.六大设计原则 单一职责原则 一个类只专注于做一件事;高内聚,低耦合; 开闭原则 对拓展开放,对修改关闭(尽可能不动原有代码进行拓展); 高内聚,低耦合; 为达到…

电力系统|基于分布式高斯-牛顿方法结合置信传播 (BP) 的概率推理方法的非线性状态估计 (SE) 模型(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文&…

新考纲下的PMP考试有多难?

一,2022新考纲PMP考试有多难? PMP考试被认为是最难的项目管理考试之一,主要是因为其庞大的教学大纲、所需的投入的精力、所问问题的类型和长度、考试时间和答案选择。它测试候选人对项目管理技能和耐心水平的深入了解。这并不意味着不可能通…

舆情监测是什么技术,网络舆情监测技术操作规范?

网络舆情监测是对互联网上公众的言论和观点进行监视和预测的行为,随着互联网的发展,舆情监测已经是企业日常重要工作,对于企业来说是非常重要的,接下来TOOM舆情监测带您了解舆情监测是什么技术,网络舆情监测技术操作规…