安全从业人员如何写笔记?

心理问题

  • 我们为什么要写笔记?找需求,找原因,找功能点。

需求,需求,还是TMD的需求

我不是提问,而是以问代答。因为我们想一把梭。具体而言,我们想在实施的时候直接复制粘贴。

示例笔记:
nmap指定端口一把梭:masscan ip端口探测-->Excel分列 IP与端口 -->ip直接粘贴到字典 -->端口?复制,粘贴为值(行列转换)。TXT 替换空格为 逗号。

nmap -n -vvvv -sV -A -Pn -iL 20240312ip -oA nmap_scan -p 81,179,443,554,1935,1937,3002,4080,5007,6011,6061,6062,7021,7660,7663,7664,7960,8080,8085,8088,8090,8291,8808,8809,9381,9500,9633,9643,9653,9663,9899,9980,9995,9997,9999,10011,10017,10021,10033,10044,10050,10052,10055,10058,11000,11022,11023,11025,11041,11052,11061,11065,11066,11067,11072,11074,11082,11092,11093,11096,11101,11131,11936,12366,18080,19080,19502,19633,19643,19887,19980,20000,20480,20637,21226,21935,27675,28080,29633,29643,30547,32043,39156,39381,39502,39643,39653,48288,49099,58090

你为什么要做笔记?因为你的需求就是想在未来干nmap指定端口一把梭的事情。

  • 我们还有什么需求?学习知识的需求。在学习过程中,我们需要记录什么?
    它的思路(PPT,销售,画大饼,写报告,韭菜班,战略),它的工具(战术),它的复现(如何落地?实施)以及为了学习术语而解释的术语(面向对象编程就是使用面向对象的方式进行编程)。

  • 我们发现了问题所在,你有见过哪个销售的PPT长得像是PHP用户手册那样的?

已学习为例子的笔记

学习思路示例《如何掌握所有的程序语言》:http://www.yinwang.org/blog-cn/2017/07/06/master-pl

  • 通过以上伟大的博文的详细解读,得出一个结论:学关键,学关键,还是TMD的学关键。特性,特性,还是TMD的特性。

如何把以上思路用于实际?

已赏猎教程为例子,寻找你需要记录笔记的地方,比如他们教了你什么?
前期筹备类:hackerone的账号注册?贝宝或者交易所收付款?burp,某学上网问题,python?报告模板长什么样子?报告怎么写?
赏猎方法论类:如何实际的进行一个hackerone项目?侦查?信息收集?ASN与IP块?IP证书关联?域名?子域名?股权资产分析?面向GPT的侦查?抓响应包找特征?应用分析?工具类实施?各种漏洞类型你怎么挖?

  • 我需要记录战略性的大纲吗?
    比如学习《全栈web攻击》时,它的靶机如何启动,账号密码是什么我也要记录?bp设置我也要重复的看个几次?学关键,学关键,还是TMD的学关键。

某个知识点举例

  • 到了功能性,特性的技术点了:比如 ZZZPHP 模板注入远程代码执行我要不要写笔记?
    注意思考你学习它的需求:需求,需求,还是TMD的需求!ZZZPHP 还是 AAAPHP重要吗?

静态和动态跟踪 PHP 代码:重点在于如何调试,而不是 visual studio。我不装 visual studio世界会崩塌吗?
寻找所有的PHP代码的登录模块,而不是,寻找ZZZPHP某个CMS的登录模块;寻找所有IDE的下断点的功能在哪里,而不是学某个visual studio如何下断点。
image

我们下断点的目的是为了触发它,并且不是本地触发,而是远程的用户也能够触发。登录后的漏洞前提是账号密码,懂?
调试后,使用 GET 请求访问 http://target:8080/admin871/login.php 页面,您应该会遇到断点。
image

身份验证绕过漏洞:ISSESSION adminid 存在绕过?
~/module-1/php/admin871/function.php

<?php
require '../inc/zzz_class.php'; 
if (is_null(get_session('adminid'))) return false;   //1

代码 使用get_session调用字符串“adminid” ,如果它返回 NULL,则 admin871/functions.php 脚本将返回 false 并且不会继续执行。你学的不是 get_session,以及它返回 NULL。你学的是所有语言中所编写的登录逻辑中,是否都存在某个与get_session相同功能的其他语言函数,在调用某个硬编码字符串。

admin871/index.php 脚本使用的 inc/zzz_admin.php 脚本中也有类似的代码模式,但是如果 get_session 函数返回 NULL,该代码将使用 phpgo 函数简单地重定向攻击者,如下所示:

<?php
require 'zzz_class.php'; 
if ($conf['isinstall']==0) error('很抱歉!程序未安装, <span id=time></span>即将进入安
装界⾯',SITE_PATH.'install/'); 
if (isnul(get_session('adminid'))) phpgo("login.php");

在inc/zzz_main.php中我们可以找到get_session函数的定义:

function get_session( $name ) { 
 if ( !is_null( $name ) ) { 
 if ( ISSESSION == 1 ) { 
 $data = isset( $_SESSION[ $_SERVER[ 'prefix' ] . $name ] ) ? $_SESSION[ 
$_SERVER[ 'prefix' ] . $name ] : NULL; 
 } elseif ( ISSESSION == 0 ) {          //2
 $data = isset( $_COOKIE[ $_SERVER[ 'prefix' ] . $name ] ) ? $_COOKIE[ 
$_SERVER[ 'prefix' ] . $name ] : NULL;           //3
 } 
 return $data;                      //4
 } 
}

在 [2] 处,代码检查全局常量“ISSESSION”,如果它设置为 0,则在 [3] 处,$data 变量将设置为攻击者控制的 cookie 值。 最后在[4]处,代码返回攻击者控制的数据值。

但是这个“ISSESSION”常量是在哪里定义的呢? 事实证明,它在 inc/zzz_class.php 脚本中定义:

define( 'ADMIN_PATH', SITE_PATH . $conf[ 'adminpath' ] ); 
define( 'ISSESSION', 0 ); //1是session存储,0是cookie存储 // 5

如果“ISSESSION”常量在[5]处定义为0,则代码将在[1]内继续执行
admin871/function.php 脚本。 inc/zzz_main.php 脚本内部 [3] 使用的 $_SERVER['prefix'] 变量,在 inc/zzz_class.php 脚本中将前缀设置为“zzz”:

$_SERVER[ 'prefix' ] = $conf[ 'prefix' ];

$conf['prefix'] 变量在 config/zzz_config.php 脚本中定义:

<?php
$conf=array( 
//...
'prefix'=>'zzz_',//cookie,session,前缀,建议每个⽹站设不⼀样的

如果攻击者提供名为 zzz_adminid 的 cookie,则这允许远程攻击者绕过身份验证并获取有效的会话 ID。

  • 我们如何写笔记?特性,特性,还是TMD的特性。
    代码中的 if (is_null(get_session('adminid'))) return false; 以及所谓的 define( 'ISSESSION', 0 ); 等恐龙代码块真的那么重要吗?重要在于理解,不重要在于换一套CMS代码一切归0.

随便选个IDE,会话管理入口点下断点--> get_session 会话管理 -->payload构造 zzz_adminid。因为你发现代码中的前置,并且if中的0与1判断,难道你就不尝试构造zzz_adminid并动态看看它是不是可以绕过会话管理吗?你会。这在断点后的跟踪都会将你代入到里面的代码块里。所以代码的详细笔记,重要但又没那么重要。

所以,笔记就可以记录成:随便选个IDE,会话管理入口点下断点--> get_session 会话管理 -->payload构造 zzz_adminid

之后要不要详细不详细记录,看其他需求:你要教学?你要复盘?还是你只是为了自己学习它已进行理解?等

所以说,需求不同,记录的风格也就不同:)

posted @ 2024-03-12 22:29  sec875  阅读(12)  评论(0编辑  收藏  举报