记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

实战 | .NET高级代码审计反序列化Gadget之ExpandedWrapper

0x01 背景 ExpandedWrapper在XmlSerializer反序列化过程发挥了至关重要的作用,完美的扩展了两个泛型类且它的公开的属性可以存储投影结果,正是由于提供了
发布时间:2022-06-27 18:26 | 阅读:41393 | 评论:0 | 标签:代码审计 .net ExpandedWrapper gadget OData WCF 反序列化 exp app 审计

从网络发包到图形化开发 | 技术精选0135

本文约2600字,阅读约需8分钟。 一个月前,SpringRce漏洞火了,很快出现了py的poc。那时的我,还在用bp抓包,发包,然后error。 一个学代码审计的野人,路过图形化开发,从而一发不可收拾。 1 介绍 在jdk 1.0的时候,Sun公司提供了gui类,也就是awt。到现在,有十多年的历史了。 随后又推出了swing技术,awt和swing的方法都可以混合使用。 使用两个技术开发一个图形化的工具也不是很难,主要是拼接一些组件,如按钮,文本,下拉框等等。 但如果开发一款比较美观的界面,需要设置一些数值,如大小,x、y距离。
发布时间:2022-06-13 17:41 | 阅读:20370 | 评论:0 | 标签:awt bp java jdk SceneBuilder SpringRce swing 代码审计 发包 图形化开发

代码审计 TP5二开myucms

代码审计 TP5二开myucms 版本:v2.1.1022 下载地址:https://down.easck.com/code/59956.html#xzdz 1 介绍 Myucms是基于ThinkPHP5开发的,是一个商城内容管理系统 路由访问 h
发布时间:2022-05-30 13:05 | 阅读:24454 | 评论:0 | 标签:代码审计 cms 审计

基于框架漏洞的代码审计实战

首发于先知社区:https://xz.aliyun.com/t/11360 0x00 前言 由于普通的,基于某个功能点的漏洞,已经是非常常见了,在这里分享一些基于框架漏洞的代码审计,毕竟大家都学了这么多反序列化漏洞与一堆的框架,还是要用于实战当中。 0x01 环境介绍 某开源项目最新版的CMS,该漏洞已提交至CNVD 0x02 查看READ.md,获取项目技术栈的相应版本 可以看到这里的thinkphp版本为5.1.41。正好该版本存在反序列化漏洞。接下来我们的思路就是找到反序列化的触发点。
发布时间:2022-05-23 12:57 | 阅读:24982 | 评论:0 | 标签:代码审计 漏洞 审计

XHCMS审计学习

文章来源:先知社区(Ufgnixya) 原文地址:https://xz.aliyun.com/t/11310 0x01 环境安装 使用phpstudy5.4.45+mysql5.5.53进行搭建(这个cms比较老,用php7会出问题)。去网上下载xhcms源码(https://down.chinaz.com/),解压到phpstudy根目录,启动phpstudy,访问安装并安装即可。
发布时间:2022-05-11 15:33 | 阅读:34485 | 评论:0 | 标签:代码审计 cms 审计 学习

【反序列化利用链通用思路】OkayCMS&Smarty反序列化利用链详细分析

01 漏洞简介 OkayCMS 是一个来自俄罗斯现成的在线商店平台,提供了在真正的演示在线商店中工作的机会,可以在其中执行任何操作。在管理面板中无限制地添加和删除产品、导入、更改语言和货币。
发布时间:2022-05-02 18:06 | 阅读:62082 | 评论:0 | 标签:代码审计 cms 序列化 分析

ThinkPHP 5.x 另一条反序列化利用链

前几天整体看完Laravel的POP链,顺便想看看Thinkphp的POP链,也有很多师傅都已经分析过了5.x和6.x的反序列化利用链。复现了一个5.1的POP链后,自己尝试挖掘了一下5.2的POP链,发现了一条对于5.1和5.2是通杀的POP链,并且和师傅们找的都不大相同,就把思路分享出来。 分析完了Laravel的,不得不说ThinkPHP可利用的初始类是真的少,__destruct和__wakeup也就那么几个,师傅们大多都是利用thinkprocesspipesWindows类的__destruct,后续再利用__toString继续寻找利用链。
发布时间:2022-05-02 18:06 | 阅读:55875 | 评论:0 | 标签:代码审计 PHP 序列化

【转】Java安全-只有Java安全才能拯救宇宙

《Java安全-只有Java安全才能拯救宇宙》 HackJava 本项目是记录自己在学习研究Java安全过程中遇到的优秀内容,包括Java代码审计资源以及Java开发的应用程序组件协议等的安全内容。一个不会Java攻击的黑客不是一个好师傅,一个不懂Java安全的师傅不是一个好黑客!深入理解Java安全,手握众多重点Java应用高危0day!作者:0e0w[1] 本项目创建于2021年7月8日,最近的一次更新时间为2022年4月25日。本项目会持续更新,直到海枯石烂。
发布时间:2022-04-30 15:26 | 阅读:67348 | 评论:0 | 标签:代码审计 java 安全

xdebug phpstudy phpstorm 配置文件 pip.ini

[Xdebug] zend_extension=D:/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll xdebug.collect_params=1 xdebug.collect_return=1 xdebug.auto_trace=Off xdebug.trace_output_dir=D:/phpstudy_pro/Exte
发布时间:2022-04-29 12:43 | 阅读:29152 | 评论:0 | 标签:代码审计 PHP 配置

从代码审查视角看软件质量

理论基础 软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特性相一致的程度。 作为软件开发人员怎样保证所研发的软件产品是一个高性能、无缺陷的的产品,从开发者的编码角度考虑,编码前需要有清晰的架构设计质量和详细功能流程保证、编码的时候需要保证所编码的功能质量,编码后需要保证测试质量能够功能能得到验收。整体架构设计易于扩展、模块之间耦合性低、易于复用,代码简洁易懂,易于维护 是软件开发者对高质量软件产品的一个代名词。 影响软件质量的整体的因素有:软件需求缺陷、软件架构设计缺陷、编码缺陷、文档缺陷、错误地修复功能问题。

.NET高级代码审计(第12课) Gadget之详解ObjectDataProvider

0x01 背景 有国外研发者在微软官方Github上提出废除ObjectDataProvider的建议,大家在微软社区讨论的非常热烈,提出问题者的出发点依旧是存在巨大的安全隐患,但截止目前在.NET Core3.1版本依然可用。
发布时间:2022-04-23 15:28 | 阅读:41978 | 评论:0 | 标签:代码审计 审计

PHP代码执行集锦

点击蓝字 关注我们 前言 代码审计总要遇到命令执行或者说RCE,打CTF的过程中难免不会碰见,毕竟PHP是世界上最好的语言,总结一下 命令执行函数 E.g.1
发布时间:2022-03-22 11:27 | 阅读:54982 | 评论:0 | 标签:代码审计 create_function 函数 php 命令执行函数 PHP 执行

乱杀之你的密钥被我看见了 | 技术精选0126

本文约2600字,阅读约需7分钟。 最近在工作的过程中,遇到了几次数据加密的情况。之前都是看大佬们如何前端调试,然后逆向获取密钥解密流量,这一次遇到了,便好好实战一下,抄起我的“乱杀三式”。 1 逆向式 我们的目标是某微信小程序。 首先还是来看看这个小程序的请求流量。当正常人一眼望去,丝毫理不清传递的是什么,我们基本就可以断定,其对流量进行了加密处理。 然后我们再看看返回请求——依然一头雾水: 经过上面两张图,可以判断这个小程序存在流量加密的情况。至于是全局的流量加密,还是部分流量加密,这个需要经过分析之后才能判断。
发布时间:2022-03-10 14:07 | 阅读:27486 | 评论:0 | 标签:iv向量生成 wxapkg文件 代码审计 分析 密钥 抓包 算法 逆向式

加密强度不足缺陷漏洞

一、什么是加密强度不足? 大多数密码系统都需要足够的密钥大小来抵御暴力攻击。软件使用理论上合理的加密方案存储或传输敏感数据,但强度不足以达到所需的保护级别。 RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。只有短的RSA钥匙才可能被强力方式解破。只要当钥匙的长度足够长时,用RSA加密的信息实际上是难以被解破。 RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NP问题。
发布时间:2022-01-27 14:07 | 阅读:65661 | 评论:0 | 标签:代码审计 CWE-326 加密强度不足 加密强度不足缺陷漏洞 加密 漏洞

EmptySynchronized Block空的同步块缺陷漏洞分析

由于CWE对源代码缺陷描述的准确性和权威性,源代码缺陷检测厂家逐渐在产品和服务中引用CWE中的相关信息。CWE(Common Weakness Enumeration,通用缺陷枚举)是由美国国土安全部国家计算机安全部门资助的软件安全战略性项目。CVE(Common Vulnerabilities & Exposures,常用漏洞和风险)。CVE是国际著名的安全漏洞库,也是对已知漏洞和安全缺陷的标准化名称的列表,它的使命是为了能更加快速而有效地鉴别、发现和修复软件产品的安全漏洞。 接下来为大家主要讲解CWE-585空的同步块缺陷漏洞分析,有想法的同学可以一起加入讨论。
发布时间:2022-01-26 16:49 | 阅读:58748 | 评论:0 | 标签:代码审计 EmptySynchronized Block 同步块缺陷 漏洞 分析

使用过时方法缺陷漏洞

一、什么是使用过时方法缺陷? 代码使用了不推荐使用的或已经过时的方法,这表明该代码没有得到积极地审查或维护。 随着编程语言的发展,由于以下原因,方法有时会过时: 1、语言进步 2、更深入理解如何安全有效地执行操作 3、改变了某些特定操作的规范/惯例 通常,被删除的方法会被更新的对等方法所取代,后者以某种不同的方式执行同一任务。 二、使用过时方法缺陷的构成条件有哪些? 代码使用了不推荐使用的或已经过时的方法。 三、使用过时方法缺陷会造成哪些后果? 使用过时方法可能导致程序质量下降。
发布时间:2022-01-26 16:49 | 阅读:56063 | 评论:0 | 标签:代码审计 CWE-477 过时方法缺陷漏洞 漏洞

Divide By Zero除数有可能为零缺陷是如何产生的?

一、除数可能为零缺陷 01 什么是除数有可能为零缺陷? 运算操作时,除法或求余数操作容易受到除数有可能为零的影响。因此,必须在操作之前检查除法运算或求余数运算中的除数不为零。 根据除法的意义,除法是已知两个因数的积与其中一个因数,求另一个因数的运算。利用除法与乘法的互逆关系可知,如果除数为零,则:当被除数不为零,由于“任何数乘零都等于零,而不可能等于不是零的数”,此时除法算式的商不存在——即任何数的零倍都不可能为非零数;当被除数为零,即除法算式零÷零,由于“任何数乘零都等于零”,于是商可以是任何数——即任何数的零倍都等于零。为了避免以上两种情况,数学中规定“零不能做除数”。
发布时间:2022-01-24 19:33 | 阅读:40375 | 评论:0 | 标签:代码审计 Divide By Zero

Empty Passwordin Configuration File

早在2017年,苹果MacOS的Sierra就出现过类似漏洞问题, 它允许任何人在root账户中输入一个空白密码或任意字符串作为密码即可进入系统。未授权的用户可以通过【系统偏好】设置,选择【用户和组】,点击解锁按钮,然后会弹出一个要求输入用户名和密码的提示框,用户只需在用户名一栏中输入“root”,无需填写密码,多次点击解锁后即可成功进入系统。之后用户可自由管理macOS桌面,包括查看所有帐户存储在电脑上的文件、编辑其他用户的凭据以及更改该设备上的其它设置。
发布时间:2022-01-24 16:51 | 阅读:100270 | 评论:0 | 标签:代码审计

Trust Boundary Violation违反信任边界的代码漏洞缺陷

这篇文章主要为大家简单讲解违反信任边界缺陷漏洞的相关介绍。 一、什么是违反信任边界? 违反信任边界漏洞是指数据从不受信任的一边移到受信任的一边却未经验证。违反信任边界漏洞在CWE中被编号为CWE-501: Trust Boundary Violation 二、违反信任边界漏洞的构成条件有哪些? 当程序模糊了受信任和不受信任之间的界限时,就会发生信任边界冲突。 三、违反信任边界漏洞会造成哪些后果? 违反信任边界漏洞会导致未经验证的数据被攻击者利用。信任边界可以被认为是画在程序中的一条线,线的一侧是不受信任数据,另一侧的数据是可以被信任的。
发布时间:2022-01-19 11:23 | 阅读:76211 | 评论:0 | 标签:代码审计 Trust Boundary Violation 违反信任边界 漏洞

CSRF漏洞有几种常见类型?

一、什么是CSRF漏洞? CSRF跨站请求伪造,主要表现为:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,例如以你的名义发送邮件或消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 CSRF现状:CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com、Metafilter(一个大型的BLOG网站),YouTube和百度。
发布时间:2022-01-14 19:27 | 阅读:53744 | 评论:0 | 标签:代码审计 CSRF漏洞 CWE-352 CSRF 漏洞

密码分组链接模式未使用随机初始化矢量

什么是密码分组链接模式未使用随机初始化矢量? 在密码块链接(CBC)模式下不使用随机初始化向量(IV)会导致算法容易受到字典攻击。 什么是CBC模式? CBC模式的全称是Cipher Block Chaining模式(密文分组链接模式),之所以叫这个名字,是因为密文分组像链条一样相互连接在一起。在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。
发布时间:2022-01-13 16:47 | 阅读:71993 | 评论:0 | 标签:代码审计 CBC CWE-329 密码分组 密码块链接

NULL Pointer Dereference空指针解引用漏洞

C语言中的指针机制使得它灵活高效,但由于指针操作不当产生的动态内存错误也有很多,比如内存泄漏(Memory Leakage)、内存的重复释放、空指针解引用(NullPointer Dereference)。 一、什么是空指针解引用? 如果一个指针变量的值为NULL,解引用这个指针时,会导致程序崩溃(Segmentation fault)。 二、空指针解引用有什么危害? 指针操作不当会产生动态内存错误,比如内存泄漏(MemoryLeakage)、内存的重复释放、空指针解引用(NullPointer Dereference)。
发布时间:2022-01-12 19:30 | 阅读:67955 | 评论:0 | 标签:代码审计 CWE-476: NULL Pointer Dereference 空指针解引用 漏洞

使用硬编码的密码漏洞

对于硬编码密码,Immunity公司威胁情报负责人曾表示,这项常见的开发者漏洞不仅广泛存在,而且在短时间内似乎也不太可能被彻底解决。早在2016年Fortinet防火墙发现硬编码后门,尽管该公司否认硬编码密码是后门,称这个漏洞是一个管理身份认证问题,但还是非常可疑。倘若攻击者利用此漏洞,可以直接获取Fortigate最高管理权限,控制设备进行如抓取流量监听、DNS欺骗、建立隧道进入企业内网等攻击行为。 一、什么是使用硬编码的密码? 软件包含一个硬编码的密码,该密码用于自己的入站身份验证或与外部组件的出站通信。
发布时间:2022-01-11 14:04 | 阅读:57775 | 评论:0 | 标签:代码审计 密码漏洞 硬编码 漏洞

声明为public static的域没有标记final缺陷简介

在一个类中,非静态成员变量对每一个对象都会有一个特定的值,在初始化非静态变量的时候是不分配内存的,只有创立对象后才会分配,而且不同对象之间的同名非静态变量是可以不同的;当用static修饰变量,一个类的所有对象都共享这个属性,若不加final,当一个对象对static变量修改的时候,这个类的所有对象的这个属性都会改变。 一、什么是public static的域没有标记final缺陷? 对象包含未标记为final的公共静态字段,这可能允许以意外方式对其进行修改。
发布时间:2021-12-24 16:43 | 阅读:53688 | 评论:0 | 标签:代码审计 CWE-500 final缺陷 public static

Session Fixation 会话固定漏洞有哪些修补方法?

本期主题为会话固定(CWE-384: Session Fixation)漏洞的相关介绍。 一、什么是会话固定? 对用户进行身份鉴别并建立一个新的会话时没有让原来的会话失败。 二、会话固定漏洞的构成条件有哪些? 当用户成功验证而应用程序不更新cookie时,这个时候就存在会话固定漏洞。 HTTP的无状态性,导致Web应用程序必须使用会话机制来识别用户。如果用户未登录时的会话ID和登录后的会话ID保持一致,那么攻击者可以迫使受害者使用一个已知(有效)的会话ID,当受害者通过身份验证,攻击者就可以利用这个会话ID进入验证后的会话(登录状态)。
发布时间:2021-12-22 16:46 | 阅读:64218 | 评论:0 | 标签:代码审计 CWE-384 Session Fixation 会话固定 漏洞

依赖referer字段进行身份鉴别漏洞构成条件有哪些?

01 什么是依赖referer字段进行身份鉴别? HTTP请求中的referer字段可以很容易地修改,因此不是身份鉴别检查的有效方法。 根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该 HTTP 请求的来源地址。也就是说,服务器会验证客户端的请求来源,如果本网站请求则响应,否则不响应。但是即使这样,验证HTTP Referer字段这种方式也存在安全隐患。 02 依赖referer字段进行身份鉴别漏洞的构成条件有哪些? 依赖HTTP请求的referer字段进行身份鉴别。
发布时间:2021-12-10 14:01 | 阅读:41244 | 评论:0 | 标签:代码审计 referer字段 身份鉴别漏洞 漏洞

抛出通用异常缺陷

一、什么是抛出通用异常缺陷? 抛出过于宽泛的异常会导致复杂的错误处理代码,这些代码很可能包含安全漏洞。 声明抛出Exception或Throwable的方法会使调用方难以执行正确的错误处理和错误恢复。例如,Java的异常机制的设置使调用者能够轻松地预测可能出现的错误,并编写代码来处理每个特定的异常情况。 二、抛出通用异常缺陷的构成条件有哪些? 抛出过于宽泛的异常。 三、抛出通用异常缺陷会造成哪些后果? 声明一个方法抛出泛型形式的异常会使系统失败。 四、抛出通用异常缺陷的防范和修补方法有哪些? 将方法抛出异常的类型具体详细化。
发布时间:2021-12-09 14:01 | 阅读:53243 | 评论:0 | 标签:代码审计 抛出通用异常缺陷

通用异常捕获声明缺陷漏洞

一、什么是通用异常捕获声明缺陷? 捕获过于广泛的异常会导致复杂的错误处理代码,该代码更可能包含安全漏洞。 二、通用异常捕获声明缺陷构成条件有哪些? 捕捉异常似乎是处理多个可能异常的有效方法。不幸的是,它会捕获所有异常类型,检查异常和运行时异常,从而造成了捕获范围过大。 三、通用异常捕获声明缺陷会造成哪些后果? 捕获范围过于广泛的异常实质上会破坏Java类型异常的目的,并且如果程序增长并开始引发新类型的异常,则变得特别危险。新的异常类型将不会受到任何关注。 四、通用异常捕获声明缺陷的防范和修补方法有哪些? 明确列出需要捕获的异常。
发布时间:2021-12-08 16:42 | 阅读:42654 | 评论:0 | 标签:代码审计 缺陷漏洞 通用异常捕获 通用异常捕获声明缺陷漏洞 漏洞

未使用的变量缺陷漏洞

一、什么是未使用的变量缺陷? 变量已赋值但从未使用过,这使其成为无意义的变量。 二、未使用的变量缺陷构成条件有哪些? 当一个局部变量被赋了一个值,而该值没有被任何后续指令使用时,就会出现未使用的变量。 三、未使用的变量缺陷会造成哪些后果? 计算或检索一个值,然后重写或丢弃它,可能表明代码中存在严重错误。即使这不是一个严重的错误,也是一种资源浪费。 四、未使用的变量缺陷的防范和修补方法有哪些? 从代码中删除未使用的变量。
发布时间:2021-12-07 16:45 | 阅读:56464 | 评论:0 | 标签:代码审计 变量缺陷漏洞 漏洞

HTTPS会话里的敏感Cookie没有设置’Secure’属性

一、什么是HTTPS会话里的敏感Cookie没有设置'Secure'属性缺陷? HTTPS会话里的敏感Cookie没有设置'Secure'属性,这可能导致用户代理通过HTTP会话以纯文本格式发送这些cookie。 二、HTTPS会话里的敏感Cookie没有设置'Secure'属性缺陷构成条件有哪些? 产品没有在HTTPS会话中为Cookie设置'Secure'属性。
发布时间:2021-12-03 16:41 | 阅读:93326 | 评论:0 | 标签:代码审计 cookie HTTPS会话 Secure HTTP

黑帝公告 📢

永久免费持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

↓赞助商 🙇🧎

标签云 ☁