首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原创 Paper | 从 XZ 后门学奇技淫巧

到这,可以解答前面的一个疑惑:由于foo_resolver函数dl链接阶段被加载调用,此时环境变量尚未被GLIBC加载,因此调用getenv函数将返回NULL,导致最终返回的都是foo_2函数。...由于__tls_get_addr函数是位于ld中的函数,所以可以根据该地址爆破出ld的基地址。 获取到ld的基地址后,就可以匹配ld的ELF头信息,这样就能容易的匹配到ld的任意符号地址。...首先匹配的是ld的__libc_stack_end指针,该变量指向栈底,正常情况,该地址之后只储存着程序执行的参数和环境变量。...值得注意的是,XZ后门中,基本没有使用库函数,而是自己实现了所有功能。 下面简单梳理一上面代码的主要逻辑: 通过__tls_get_addr地址爆破出ld的基地址。...有一篇参考文章中提到_dl_audit_symbind_alt函数中调用install_hooks函数,但是ubuntu22.04的环境上进行调试发现,调用的是_dl_audit_symbind,并不会调用

16510
您找到你想要的搜索结果了吗?
是的
没有找到

Log4j2 RCE 漏洞之续集

这样就实现了 RCE,其中 BeanFactory 核心代码如下: 根据上面介绍,java 版本比较高的情况可以避免也是有前提的,那就是你的本地的 JVM 环境中没有上面两个类的引用。...所以一旦黑客通过上下文的方式把危险调用注入到配置中,一样会触发 RCE。...引用官网的一段原文如下: 官网已经说的清楚了,查询功能在日记消息里默认被禁用了,但是配置里还在。...这样就没有问题了么,试想在配置有在上下文中取值的情况黑客注入一个本机的 jndi 调用,那么就会去连接本机的服务。本机当然没有这个服务了,然后就会有 tcp 握手不上一直等到超时的情况。...属性的值配置成危险调用

74410

『互联网架构』软件架构-java日志异常(18)

有的老铁发现异常后,直接e.printStackTrace() 打印出来堆栈就结束了,其实这样是危险的。...如果前期对异常没有统一的处理,后期进行统一和调整真心非常非常的困难,异常跟我们的业务逻辑耦合的非常深的。调整统一过来非常非常的难。所以设计系统的刚开始就必须设计的完善。...是不是 进退两难,说也不是,不说也不是。 ? 场景回顾 老铁你遇到过不? 是不是总结的经典。反正都不是我的锅,大家都是成年人了。 ? ?...不应该把他带到线上,带上生产环境,应该在上线之前就应该抹杀掉。 系统异常设计的出发点 良好的异常信息提示,开发运维人员能快速定位 响应外部调用异常时,应能明确指明是内部异常还是调用条件不满足导至。...系统中正确的捕获这类异常,并抛出 1.方法入参进行合法性验证 对系统外部提供的接口(调用后立马验证,不要走了一段逻辑进行验证),是必须要进行参数验证(必须) 系统内部对外外层提供接口,进行验证 工具类进行参数验证

73620

安全测试工具(AST)学习笔记

SAST 基于正则 SAST是静态应用程序交互测试,顾名思义,静态指不会实际执行代码发送请求,而是通过“推理”的方式来判断是不是危险函数以及调用到的可能。这种形式误报率比较高。...这里就需要逆向的进行分析,从eval为危险函数,进而分析函数参数会直接传递进危险函数,从而判断ee函数为危险函数。 第二是多重调用链。...假如c函数是危险函数,a函数中调用了b,b中调用了c,存在复杂数据流向时的处理问题,以及如果在多重调用中,存在过滤函数的情形如何去处理,都是比较复杂的点。...IAST IAST指交互式应用程序安全测试,IAST的主要原理是代码的运行过程中发现漏洞,这里可以直接体验一火线安全开源的IAST产品洞态https://github.com/HXSecurity/...那么就会考虑容器化单独启动测试环境,不过也就需要去单独迭代测试环境造成更多的成本,以及各种https加密之类的场景下代理模式也会遇到一些困难。

98210

扒掉“缓冲区溢出”的底裤

32 位平台下,VC6 默认为 1M,堆最大可以到 4G; 申请效率不同 栈由系统自动分配,速度快,但是程序员无法控制。 堆是有程序员自己分配,速度较慢,容易产生碎片,不过用起来方便。...常见的高危函数 函数 严重性 防范手段 gets() 最危险 使用 fgets(buf, size, stdin) strcpy() 危险 改为使用 strncpy() strcat() 危险 改为使用...strncat() sprintf() 危险 改为使用snprintf(),或者使用精度说明符 scanf() 危险 使用精度说明符,或自己进行解析 sscanf() 危险 使用精度说明符,或自己进行解析...fscanf() 危险 使用精度说明符,或自己进行解析 vfscanf() 危险 使用精度说明符,或自己进行解析 vfscanf() 危险 改为使用 vsnprintf(),或者使用精度说明符...vscanf() 危险 使用精度说明符,或自己进行解析 vsscanf() 危险 使用精度说明符,或自己进行解析 streadd() 危险 使用精度说明符,或自己进行解析 整数溢出 宽度溢出:把一个宽度较大的操作数赋给宽度较小的操作数

1.1K20

缓冲区溢出

32 位平台下,VC6 默认为 1M,堆最大可以到 4G; 申请效率不同 栈由系统自动分配,速度快,但是程序员无法控制。 堆是有程序员自己分配,速度较慢,容易产生碎片,不过用起来方便。...常见的高危函数 函数 严重性 防范手段 gets() 最危险 使用 fgets(buf, size, stdin) strcpy() 危险 改为使用 strncpy() strcat() 危险 改为使用...strncat() sprintf() 危险 改为使用snprintf(),或者使用精度说明符 scanf() 危险 使用精度说明符,或自己进行解析 sscanf() 危险 使用精度说明符,或自己进行解析...fscanf() 危险 使用精度说明符,或自己进行解析 vfscanf() 危险 使用精度说明符,或自己进行解析 vfscanf() 危险 改为使用 vsnprintf(),或者使用精度说明符...vscanf() 危险 使用精度说明符,或自己进行解析 vsscanf() 危险 使用精度说明符,或自己进行解析 streadd() 危险 使用精度说明符,或自己进行解析 整数溢出 宽度溢出:把一个宽度较大的操作数赋给宽度较小的操作数

2K10

好玩的图,也有点意思

物与类聚,人以群分,没想到,没想到全世界的人还可以通过水果偏好划分,下图就是各地区对苹果和橘子的偏好分布,苹果赢的稳。...还有大块大块的灰色区域也许是自然环境或经济条件都吃不上苹果和橘子,希望我们可以把剩下的苹果分给更多人,施予更快乐。 2,东西坏了,你第一时间怎么处理呢?...同理:我们对待故人的态度是不是和我们对待坏旧的东西一样呢?愿我们真诚待我们遇到的每一个人,彼此多一些冷静的沟通,不留半夜惊坐起的遗憾,朋友难得,故人难。 3,背过的元素周期表,那个元素最富?...下图统计出来哪一种动物最要命,条形线的面积越大代表对应动物就越危险,越要命。我们总是对大型的鲨鱼,狼,狮子,大象,犀牛,鳄鱼存在偏见,认为它们危险。...殊不知:最危险的是我们身边朝夕相处的人,可能一言不和,痛杀手,反目成仇;不管多么熟悉,我们也要保持距离,保持尊重,处理好人与人的关系是一项危险而重要的挑战。

26220

C语言缓冲区溢出详解

32 位平台下,VC6 默认为 1M,堆最大可以到 4G; 申请效率不同 栈由系统自动分配,速度快,但是程序员无法控制。 堆是有程序员自己分配,速度较慢,容易产生碎片,不过用起来方便。...常见的高危函数 函数 严重性 防范手段 gets() 最危险 使用 fgets(buf, size, stdin) strcpy() 危险 改为使用 strncpy() strcat() 危险...改为使用 strncat() sprintf() 危险 改为使用snprintf(),或者使用精度说明符 scanf() 危险 使用精度说明符,或自己进行解析 sscanf() 危险 使用精度说明符...,或自己进行解析 fscanf() 危险 使用精度说明符,或自己进行解析 vfscanf() 危险 使用精度说明符,或自己进行解析 vfscanf() 危险 改为使用 vsnprintf(),或者使用精度说明符...vscanf() 危险 使用精度说明符,或自己进行解析 vsscanf() 危险 使用精度说明符,或自己进行解析 streadd() 危险 使用精度说明符,或自己进行解析 整数溢出 宽度溢出:

2.4K2219

从解决开发环境问题聊聊为什么要看源码

究竟是不是真的只是面试时装装逼,装完继续CRUD....本篇是为什么要看源码系列的第三篇.先交代一背景 由于公司做的是海外业务,为了方便海外同事办公.我们把公司的开发服务器(以下简称sit环境)迁移到了海外.但是这样就产生了一个问题.由于服务器海外,运维部表示由于政策原因...类比fastDFS学习 那么接下来我们就类比一fastDFS 从上面两个图你就可以看出.fastDFS中,Tracker Server就类似NameSever,Storage Server就类似Broker...所以Dubbo最简单的原理就是,生产者把本机的ip地址和暴露的接口信息zookeeper上创建节点.因为本机的ip地址就可以确定请求的url地址,接口信息可以确定请求和响应的参数.然后消费者调用接口的时候...那么我们是不是装个逼秀一波操作,改源码的逻辑,让Broker注册的地址按照我们映射的192.168.X.XXX注册上去呢? 我只想说,年轻人,你这个思想危险啊!

46340

DLL注入与安全

伊始   安全与危险是共存的。如果我们了解危险的来源以及产生的过程,对于安全防护拥有现实的意义。   本文主要介绍dll注入的方式,意在描述危险的来源,以及危险的执行的过程,以便于我们解决危险。...危险指数高,与1相比,我们要处理掉这个开辟内存,往下看 内存写数据,我们自身应用程序也需要写内存。 获取API函数地址的API函数,我们应用程序中也需要调用dll呢。...我们发现是我们的目标程序处于不安全的环境中,被恶意的篡改了。也就是有可能加了一层壳。也就是说,这个涉及到了,当应用程序处于危险环境中,应用程序如何自动识别,是否加了壳,是否含有非法操作。...思考:如何解决危险环境的带来的问题。   思考1:被修改前如何做?   不让出现危险环境,这个或许很难做到,除非客户端电脑受到全面的监控,软件使用者需要共同维护安全环境。   ...结束语 作为使用者,我们要保证我们的环境是安全的。作为软件开发者,要假想如果不处于安全环境,该如何保证软件的使用安全。让我们共同携手维护互联网安全。

51620

“偷梁换柱”的库打桩机制

编译时打桩 编译时打桩源代码级别进行替换。我们容易通过#define指令来完成这件事情。...实际上你也可以通过仅仅预编译来清楚的看到其中的变化: $ gcc -I ....小结一前面的步骤: 打桩函数内部不要打桩,即mymalloc.c中要使用原始的malloc函数,不然会造成循环调用 通过#define指令,将外部调用malloc的地方都替换为mymalloc 分开编译.../main ptr is 0x245c010 实际上,你会发现,设置了这个环境变量的终端下,这个打桩的动作对所有程序都生效: $ ls ptr is 0x1f1a040 ptr is 0x1f1a680...但是,需要特别注意的是,采用最后一种方式打桩时,最好避免打桩函数内部还调用了打桩函数,这样会导致难以预料的后果,另外由于这种打桩机制对所有程序都有效,因此也非常危险,需要特别注意。

1.4K20

一天学会Chrome插件开发

开门见山:一个chrome插件会包含哪些文件及文件夹 简单说明一: html:存放html页面 images:存放插件图标 scripts:存放js文件 styles: 存放样式...Chrome插件就是一个网站类的应用,它是用html、javascript、css组成的一个webapp; 相比于通常的webapp, Chrome插件还可以调用更多浏览器层面的api,包括书签、历史记录...(PS:插件不要随便乱装哦,危险滴!)...content_scripts会运行 } ], // 数组,声明插件所需要的权限,这里就是危险的存在了,想干坏事的你是不是激动!...chrome://extensions(或者单击多功能框最右边的按钮:打开 Chrome 浏览器菜单,并选择工具(L)菜单的扩展程序(E),进入相同的页面)。

86050

注入利器之“四人帮”

危险漫步博客好长时间了,我就发现这几年大家所使用的注入扫描工具基本上就锁定为“啊D”和“明小子”,当然它们的火力是非常猛的一一不然大家也不会这么捧场(我也一样)。...说来惭愧,危险漫步是用了很长时间的“啊D”和“明小子”进行常规注入之后,才偶然在看一个视频入侵教程时发现二者其实还都有“旁注”的功能!...不信你可以直接打开“啊D”和“明小子”工具目录下的.mdb数据库文件看一(前者是D99.mdb,后者是SetData.mdb),其中的内容是不是都大同小异啊?...言归正传,大家使用“啊D”和“明小子”的日子都很久了,难免会产生审美疲劳,是不是想再尝试一其它的一些同样优秀的注入检测工具呢?...当扫描结束之后(下方出现“Work completed”的提示),点击第四个“Export”按钮会调用浏览器打开刚刚得到的服务器扫描报告,都是超链接URL,可以直接点击进行访问。

77810

接口测试的目的、用例编写

用例设计的内容应该包括:主要测试功能点、测试环境、测试数据、执行操作以及预期结果。  1)接口测试环境分为两种:一种是程序内部的环境;一种是程序的所调用外部接口的环境。...用例设计环境上有一个原则即:设计真实而危险环境,不忽视偶发环境。真实,即你的用例测试某种功能时,应该去思考这种情况发生时内部、外部环境是什么,通过各种手段将最准确的环境模拟出来。...危险,即在这种环境系统出问题的概率会很大。设计用例环境时,如果两种环境都能达到你本用例的要求,更推荐选择更危险环境。所谓偶发,即这种环境出现的概率很小。...接口参数数据需对每个参数根据测试接口的实际的功能进行分析,符合业务逻辑的情况进行逻辑组合排列,不要遗漏了某些边界值和错误点的数据。...同一功能点的用例又可根据测试环境的不同、数据的不同进行用例的填充。  4)接口测试用例执行操作非常简单,就是所测接口的调用。  5)预期结果验证,这也是接口用例设计的关键的一步,应该细而不冗余。

73300

PHP安全配置

Value: On ;研发环境开启 ;Development Value: On ;生产环境开启 ;Production Value: Off ;生产环境,设定为Off display_errors...,包含了PHP版本信息,黑客容易根据版本漏洞,进而进行攻击 配置文件中找到 expose_php,将值设置为 Off expose_php=Off 三、防止全局变量覆盖 全局变量功能开启的情况...safe_mode_gid=Off 设置后,所有命令执行函数都被限制只能执行safe_mode_exec_dir指定目录里的程序,例如shell_exec()、exec()等方法会被禁止,如果需要调用...选项能够PHP中禁用指定的函数 disable_functions=phpinfo,eval,passthru,exec,system,chroot,scandir…… 参考:《PHP建议禁用的危险函数...才能上传到服务器,防止Cookie被窃取 session.cookie_secure=1 六、尽量减少非必要模块加载 加载尽量少的模块优化PHP性能的同时,也增加了安全性,使用 php -m 命令可以查看当前

1.4K10

ThreadPoolExcutor中的shutdownPerm运行时权限

getClassLoader 类加载器的获取(即调用类的类加载器) 这将授予攻击者得到具体类的加载器的权限。这危险,由于攻击者能够访问类的类加载器,所以攻击者能够加载其他可用于该类加载器的类。...{variable name} 读取指定环境变量的值 此权限允许代码读取特定环境变量的值或确定它是否存在。如果该变量含有机密数据,则这项授权是危险的。 exitVM....此权限危险,因为它可能允许恶意代码传播病毒,或者至少也会填满整个磁盘。 loadLibrary....此权限允许代码特定包中定义类。这样做危险,因为具有此权限的恶意代码可能在受信任的包中定义恶意类,比如 java.security 或 java.lang。...而且,它可以调用类中的任意公共方法和/或访问公共字段。如果代码不能用这些方法和字段将对象强制转换为类/接口,那么它通常无法调用这些方法和/或访问该字段,而这可能危险

50210
领券