Java内存马&Elkeid RASP防护
0x00 简介最近抽空看了些Java内存马的文章。本文结合最近比较热门的log4j漏洞攻击写入内存马,然后用字节开源HIDS(Elkeid)的RASP模块进行防护,简单记录下。 0x01 Java内存马1. 概念Java内存马可以在无文件落盘的条件下,写入一个WebShell。 现在各公司流行Spring Boot框架开发,打一个jar包直接RUN,不能直接找文件上传漏洞传JSP的WebShell。这个技术刚好可以用在这种场景下。 内存马注入有很多方法,比如: Spring: interceptor、controller Tomcat: filter、servlet、listener Java Agent …….. 写入内存马需要结合漏洞,执行自定义的Java代码/加载Class,比 ...
阅读更多
Pandas数据分析介绍
0x00 环境准备日常数据分析时,会遇到以下场景: 线上大数据情景下,一般使用大数据平台分析。如:hadoop写代码,Hive写SQL,阿里云MaxCompute写SQL。 本地Excel、csv等格式数据分析、处理情景。python工具库可以用来愉快地对数据进行分析和处理。(当然可以装1个本地数据库分析) 日常测试学习可以下个Anaconda数据分析集成环境,包含JupyterLab、Jupyter NoteBook、PyCharm等相关工具。并且安装了数据分析所需要的常见python库,不需要考虑依赖的问题。 Pandas库是数据分析工具库之一,处理Excel、CSV等文本格式文件非常方便,并且可以像写SQL一样对数据进行分析。 NumPy是强大的科学计算库。支持 ...
阅读更多
Puppeteer使用
0x00 puppeteer vs seleniumPuppeteer是一个Node库,封装了Chrome DevTools协议来提供操控Chrome的API。 优点 缺点 Puppeteer - 性能好,容易安装,yarn、npm一键安装。- Chrome官方维护。- 更好地支持Chrome浏览器。- 直接使用evaluate函数,便可在页面上下文执行JS代码。 - 官方只维护nodejs版本。python版本1年多没人维护。 - 只支持Chrome浏览器。 Selenium - 适配多种浏览器。 - 多语言支持。- 开发者社区活跃,用户多。 - 比puppeteer要慢。 - 不同环境需要安装不同的WebDriver 比较两者的代码可以感觉: Puppeteer基 ...
阅读更多
CodeQL使用
0x00 环境搭建CodeQL技术让人眼前一亮,它将代码当作数据来处理,使用类似SQL的语法来查询代码的AST和数据流。本文简单介绍下该工具的使用和基本知识,当作备忘录。 该工具的特点: 将代码当作数据,用SQL查询。 支持多种语言(暂时不支持PHP) 数据流/污点追踪,AST语法树都有。 研究还是看官方文档靠谱,我看过的文档记录下来。 入门QL语法:https://help.semmle.com/QL/learn-ql/introduction-to-ql.html QL语法手册:https://help.semmle.com/QL/ql-handbook/predicates.htmlJAVA QL语法支持:https://help.semmle.com/QL/learn ...
阅读更多
laravel框架调试OrderBy防注入方式
0x00 配置过程12pecl install xdebughttps://janostlund.com/2019-03-22/xdebug-php72-laravel-valet-phpstorm 着重注意2点: php --ini 找到php.ini的位置,复制xdebug的配置到文件。 配置xdebug端口 0x01 OrderBy注入结论: dir使用了白名单,只允许asc、desc sort转义了反引号(`)为2个 valet start启动,直接打断点: 1http://backpack-demo.test/sharp/api/list/voucher?dir=desc&filter_status=1%20%23%20&search=&sort= ...
阅读更多
Padding Oracle——1种加密算法的攻击方法介绍
0x00 前言这里结合实际遇到的实现用户Token场景,在设计上使用了AES-CBC加密算法,会有些安全问题需要注意。因此,写下这篇文章分享下1个有趣的攻击方法。文章会简单其介绍原理,着重给出1个代码示例场景,来介绍1种加密算法的攻击方法——padding oracle。 文章会首先给出代码业务场景,再从攻击者视角阐述整个攻击过程,接着从RD程序员视角剖析问题产生原因、定位错误代码,最后从安全视角讨论针对该攻击应该采取的安全措施、加密算法脆弱性。 总之,这里主要是根据自己审计代码的经验,来模拟展现黑客的攻击方法和攻击产生的直观效果,并提出一些安全方面的建议。深入padding oracle算法的攻击原理以及相关阅读材料,请看这篇文章。 0x01 简单原理介绍直接看Demo和攻击实现,可跳过这 ...
阅读更多
RASP技术实现
0x00 概念 运行时应用自我保护,RASP(Runtime Application Self-Protection)是一种植入到应用程序内部或其运行时环境的安全技术。它能够控制应用程序的执行流程,并且可以实时检测和阻止漏洞攻击行为。该技术可以用来通过自我保护的措施来阻止相关网络攻击,或在没有人为干预的情况下自动重新配置环境,以此来解决特定网络问题(威胁,故障等)。 WAF原理和RASP原理做比较: WAF在边界进行规则匹配。 RASP技术在应用程序内部进行探测和规则分析,更为精准。优点:1.误报率低。2.可以防护0Day级别的漏洞攻击。缺点:1.对应用程序性能有消耗。理论上是5%~10%。 0x01 Java版本技术实现原理(OpenRASP分析)RASP技术实现实质是在不接触应用源码 ...
阅读更多
Fastjson反序列化漏洞调试分析
0x00 攻击向量fastjson攻击有2个条件: 版本限制,<=1.2.24。之后禁止了autoType自动类型判断。 写法有限制,具体看代码。 攻击利用了fastjson的@type属性,使用它可以指定实例化对象的类。Payload有几个,这里挑最普遍使用的JNDI方法来分析原理。 payload如下,利用参考marshalsec: 1234567891011121314public Object exp1(){ //JDK 8u121以后版本需要设置改系统变量 System.setProperty("com.sun.jndi.rmi.object.trustURLCodebase", "true"); //LADP ...
阅读更多
DDCTF2019 "再来1杯Java"出题记录
0x00 总体思路题目请看:https://ddctf.didichuxing.com/challenges#%E5%86%8D%E6%9D%A51%E6%9D%AFJava考点3个: padding oracle 任意文件下载 Java反序列化攻击 看同学们解题基本按照我的预想,但细节还是有我没料想到解法。希望大家在做这道题目,展现自己水平的同时,也能细细体会下,学到一些有用的知识。接下来,我就聊聊这几个考点涉及到有趣的故事。 0x01 具体分析1. padding oraclepadding oracle的资料很多,但我看到的大多都是2个block,直接改变IV来加解密。想给大家传递个点是,针对(>2)个block的密文,同样是可以进行PaddingOracle攻击。思路是:将 ...
阅读更多
spring actuator 攻击方式分析记录
0x00 复现记录原文章作者已经给出了漏洞环境:https://github.com/artsploit/actuator-testbed 直接run起来就行,不用管报错信息~ 1. 攻击方式一 – 通过eureka组件RCESpring actuator 提供了/env接口来查看和改变应用程序的环境变量~因此,找到了eureka.client.serviceUrl.defaultZone属性~ 记录2个要点: 访问/env时,直接复制下面的请求再改细节,浏览器抓包改会有问题~ 1234567POST /env HTTP/1.1Host: 127.0.0.1:8090Content-Type: application/x-www-form-urlencodedCache-Contro ...
阅读更多