- 博客(108)
- 收藏
- 关注
原创 CSP与XSS
现代XSS攻击面临多重挑战:传统攻击方式如<script>alert(1)</script>已被现代浏览器安全机制(如CSP、混合内容策略、CORS等)有效限制。本文探讨了实际利用XSS时的常见障碍及解决方案:1) innerHTML属性不执行<script>标签,需改用SVG/IMG标签;2) DOM加载时机问题可通过监听DOMContentLoaded事件解决;3) 严格CSP下需寻找二次漏洞链(如文件上传)绕过限制;4) HTTPS环境下需配置合法TLS证书避免混合
2025-08-19 19:34:12
648
原创 HTB Information Gathering - Web Edition最后的测验
所有枚举出来的子域,马上修改hosts文件,与ip和域名填好,因为它不依赖dns。
2025-08-16 05:36:24
226
转载 忍者代码---编程大师之路
使用一个不寻常的变量多酷啊,尤其是在长达 1-2 页(如果可以的话,你可以写得更长)的循环体中使用的时候。一个直觉较弱的人必须逐行分析代码,跟踪每个代码分支中的更改。聪明的忍者会在代码的一个地方使用下划线,然后在其他地方刻意避免使用它们。阅读代码的人可能需要耗费一到两个小时的带薪工作时间,冥思苦想来寻找一个隐藏的含义。只有具有真正良好直觉的人,才能够理解这样的命名。的函数改变了某些东西的时候,他脸上肯定是一脸懵逼的表情 — 这会扩大你的理性界限。的值是什么的开发者们,就会有一个“快活的”的时光了。
2025-07-03 03:05:23
26
转载 如何编写高质量的代码让自己稳拿铁饭碗
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无能。– 拿破仑为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法维护你的代码了!你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实质上是。
2025-07-03 03:00:41
42
原创 c++ 普通 和 静态成员对象的生命周期
1.在main函数还没执行时,已经开始调用cat构造函数。2.在main函数结束后,再会调用 cat析构函数。
2025-04-27 17:20:35
163
翻译 windows IRQL
我们的 rootkit 项目的目标是访问共享的内核资源,同时确保在任何 CPU 上运行的其他线程都不会踩到我们的脚趾。在处理与 DPC 相关的任何内容之前,我们首先需要某种同步机制,它告诉我们所有 CPU 都以 DISPATCH_LEVEL 的速度运行,以及一种方法来向其他 CPU 发出信号何时退出无限 NOP 循环。在这个非常大的 for 循环中运行上述指令将有效地使系统在几秒钟内不可用,因此,作为故事的寓意,rootkit 在访问内核中的共享资源时应该很快。(代码的共享部分)时,它会获取互斥锁。
2025-03-02 01:09:07
100
原创 X64 windows多核下IDT GDT 和TSS64的研究
pcr 可以用来查看 当前核的KPCR结构体,因为当前GS.base 保存的是Kpcr的基址!pcr 0 查看0号核!pcr 1 查看1号核其他类推。
2025-02-28 03:56:33
186
原创 X64 硬件断点(指令断点)的研究
每个调试地址寄存器(DR0到DR3)都保存断点的32/64 位线性地址。断点比较是在物理地址转换发生之前进行的。调试寄存器DR7的内容进一步指定了断点条件。当启用调试扩展时(当控制寄存器CR4中的DE标志被设置时),调试寄存器DR4和DR5被保留,并且试图引用DR4和DRM5寄存器会导致无效的操作码异常(#UD)。当调试扩展未启用时(当DE标志清除时),这些寄存器被别名化为调试寄存器DR6和DR7。
2025-02-27 01:00:09
1279
原创 X64 TF位和Single-step单步调试的研究
如果在执行指令时,处理器检测到 EFLAGS 寄存器中的 TF 标志被设置,则会生成单步调试异常。该异常属于陷阱类异常,因为异常是在指令执行之后生成的。处理器不会在设置 TF 标志的指令之后立即生成此异常。例如,如果使用 POPF 指令设置 TF 标志,则单步陷阱不会发生,直到 POPF 指令后面的指令执行之后。RF标志的主要功能是允许在指令断点条件导致的调试异常后重新启动指令。在这里,调试软件必须在堆栈上的EFLAGS映像中设置此标志,然后才能使用IRETD返回中断的程序(以防止指令断点导致另一个调试异
2025-02-26 03:05:39
1141
原创 X86_64位下的GS寄存器
在 64 位模式下,段机制通常(但不是完全)被禁用,从而创建一个平坦的 64 位线性地址空间。处理器将 CS、DS、ES、SS 的段基地址视为零,从而创建一个与有效地址相等的线性地址。FS 和 GS 段是例外。这些段寄存器(保存段基地址)可以作为线性地址计算中的附加基地址寄存器,用于寻址本地数据和某些操作系统数据结构。
2025-02-25 00:00:28
501
原创 X86 MTRR内存缓存优先级
在初始化MTRR之前,软件(通常是系统BIOS)必须将所有固定范围和可变范围MTRR寄存器字段初始化为0。在硬件重置时,P6和更新的处理器清除可变范围MTRR中的有效标志,并清除IA32_MTRR_DEF_TYPE MSR中的E标志,以禁用所有MTRR。如果MTRR未启用(通过在IA32_MTRR_DEF_TYPE MSR中设置E标志),则所有内存访问都是UC内存类型。一. 如果物理地址落在物理存储器的前1 MB字节内,并且启用了固定MTRR,则处理器使用为适当的固定范围MTRR存储的存储器类型。
2025-01-21 00:17:43
372
原创 CR0和CR4在执行VMXON指令前的设置
因此,CR0中的每个位要么固定为0(两个MSR中的值均为0),要么固定为1(两个RMS中的值都为1),要么灵活(IA32_VMX_CR0_FIXED0中为0,IA32_VMX _CR0_FIXED1中为1)。如果IA32_VMX_CR0_FIXED0中的位X为1,则该位在IA32_VMX_CR0_FIXED1中也为1;如果IA32_VMX_CR0_FIXED1中的位X为0,则该位在IA32_VMX_CR0_FIXED0中也为0。它们报告CR0中在VMX操作中分别允许为0和1的位。
2025-01-11 00:32:00
202
2
原创 windows内核 中关键区 和 保护区 函数理解
例程进入关键区 暂时禁用正常内核 APC 的执行,但不阻止特殊内核 APC 的运行。例程进入受保护的区域,这会禁用所有内核模式 APC 传递到当前线程。
2024-12-22 01:19:00
188
原创 R3-->DbgUiConvertStateChangeStructureWorker
内核层将DEBUG_EVENT(未公开结构)转换到DBGUI_WAIT_STATE_CHANGE (未公开结构),在ntdll中再次将DBGUI_WAIT_STATE_CHANGE转换成用户层DEBUG_EVENT(公开结构)
2024-12-02 04:25:14
156
原创 DbgkForwardException
【代码】BOOLEAN DbgkForwardException( IN PEXCEPTION_RECORD64 ExceptionRecord, IN BOOLEAN DebugException,
2024-11-29 22:32:02
146
原创 KTHREAD结构-->TEB
在切换线程时,修改了FS=3b时的断描述符的base,这样 在3环的时候,fs:0永远都是TEB结构体的指针。这里并不是修改FS寄存器的值。
2024-11-03 13:45:55
280
原创 KTHREAD--InitialStack和KernelStack和TSS的esp0
【代码】KTHREAD--InitialStack和KernelStack和TSS的esp0。
2024-11-03 00:08:33
258
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人