CodeQL学习——导航调用图 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 3 years 6 months ago CodeQL具有用于标识调用其他代码,以及可以被任意位置调用的代码的类。通过这个类你可以找到从未使用过的方法。 调用图类 CodeQL的Java库提供了两个抽象类来表示程序的调用图:Callable和Call。前者是Method和Constructor的公共超类,后者是MethodAccess,Cl bamb00
CodeQL学习——java程序抽象语法树 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 3 years 6 months ago 声明类 下述表格列出了所有Stmt的子类: Statement syntaxCodeQL classSuperclassesRemarks ; EmptyStmt Expr ; ExprStmt { Stmt ... } BlockStmt if ( Expr ) Stmt else Stmt If bamb00
linux进程隐藏手段及对抗方法 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 3 years 8 months ago 1.命令替换 实现方法 替换系统中常见的进程查看工具(比如ps、top、lsof)的二进制程序 对抗方法 使用stat命令查看文件状态并且使用md5sum命令查看文件hash,从干净的系统上拷贝这些工具的备份至当前系统,对比hash是否一致,不一致,则说明被替换了。 注:需要在bin目录下执行。 2 bamb00
OAuth2.0安全设计之Authorization Code - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 3 years 9 months ago OAuth 2.0 有 4 种认证流程: 授权码模式(authorization code) 简化模式(implicit) 密码模式(resource owner password credentials) 客户端模式(client credentials) 下面以微信为例介绍最常见的也是最安全的 bamb00
CodeQL学习——CodeQl数据流分析 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 4 years 3 months ago 数据流程图 CodeQL数据流库通过对程序或功能的数据流图进行建模来实现对程序或功能的数据流分析。与抽象语法树不同,数据流图不反映程序的语法结构,而是在运行时对数据流过程序的方式进行建模。抽象语法树中的节点代表语法元素,例如语句或表达式。另一方面,数据流图中的节点表示在运行时带有值的语义元素。 一些 bamb00
CodeQL学习——CodeQL java库 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 4 years 3 months ago 该库被实现为一个QL模块,是一个后缀为.qll的文件,即java.qll,该模块导入了所有核心Java库模块,因此,我们可以在查询的开始位置通过以下方式来引入完整的java库: import java 库类总结标准Java库中重要的类可以分为5种: 表示编程元素的类(例如类和方法) 表示AST节点的 bamb00
CodeQL学习——自定义查询 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 4 years 3 months ago 在CodeQL CLI中使用自定义查询 为了使用CodeQL进行定制分析,我们可以通过自己编写查询来实现查找漏洞或错误。CodeQL的查询类型有: 告警查询:突出显示代码中特定位置的问题的查询。 路径查询:代码中source和sink之间信息流的查询。 基本查询结构 用CodeQL编写的查询文件扩展 bamb00
CodeQL学习——CodeQL CLI入门 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 4 years 3 months ago 一、CodeQL 工作流程 CodeQL 的整体工作流程如下图所示:(图片来源:https://blog.semmle.com/introduction-to-variant-analysis-part-2/) CodeQL 的整体思路是把源代码转化成一个可查询的数据库,通过 Extractor 模 bamb00
关于Android contentprovider sql注入问题 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 4 years 10 months ago 问题的引出 众所周知,ContentProviders是android用于跨进程共享数据的一种方式。ContentProvider需要媒介进行数据存储, 最常用的就是SQLite数据库。我们知道,web应用常常由于数据库操作语句编写不当造成sql注入漏洞,其实,Android也不例外。在导出的 Co bamb00
浏览器解析js - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 5 years 3 months ago 网页加载js步骤1、浏览器一边下载html网页,一边开始解析(不等下载完就解析)2、遇到<script>标签,暂停解析,网页渲染的控制权交给javascript引擎3、如果<script>标签引用了外部脚本,先下载在执行,否则直接执行4、执行完毕,控制权交还渲染引擎,继续往下解析html网页注意:有 bamb00
intent 参数的规范 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 5 years 4 months ago 对于采用 intent 参数的 Activity Manager 命令,您可以使用以下选项指定 intent: bamb00
Fiddler如何自动修改请求和响应包 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 5 years 4 months ago Charles的Map功能可以将某个请求进行重定向,用重定向的内容响应请求的内容。这个功能非常方便。在抓包过程当中,有时候为了调试方便,需要将线上的服务定位到内网。比如我们线上的服务器域名为 api.example.com,而内网的用于调试的服务器域名为 test.neiwang.com,那么就需要 bamb00
Burp Suite学习之Intruder的4种攻击模式 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 5 years 7 months ago burp suit的intruder攻击共有四种模式,如图所示,下面分别讲讲这四种模式的使用方法和场景。 一 、Sniper模式 Sniper模式使用一组payload集合,它一次只使用一个payload位置,假设你标记了两个位置“A”和“B”,payload值为“1”和“2”,那么它攻击会形成以下 bamb00
对Android系统权限的认识 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 5 years 11 months ago Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制 Android系统权限相关的内容 (一)linux文件系统上的权限 代表的是相应的用户/用户组及其他人对此文件的访问权限,与此文件运行起来具有的权限完全不相关。 比如上面的例子只能说明sys bamb00
"INSTALL_FAILED_DUPLICATE_PERMISSION "错误解决 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 5 years 11 months ago 我们在进行Android组件安全测试时,如果遇到声明了权限的组件,在编写PoC时,可能会遇到如下错误提示: 假设申明权限的manifest文件如下: 我们需要把它修改为: 然后在build.gradle文件中设置applicationId: bamb00
Android hook神器frida(二) - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 6 years ago 1.关于使用frida遇到的一些问题 (1)如果出现以下错误: 可以通过以下方式关闭SELinux,在adb shell中执行: (2)如果出现“frida.ServerNotRunningError: unable to connect to remote frida-server”的错误,试试端 bamb00
移动广告作弊技术研究 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 6 years 3 months ago APP安装类的广告作弊手段分为三类: 下图中红色表示作弊,灰色表示真实的。 点击作弊 在真实用户的设备上进行模拟点击时,即使真实广告没有显示或者被点击,也会让广告主相信广告已经被点击。这是一种高回报的欺骗方式,因为它只需要一个虚假的点击操作就可以获得广告收入。如下图,某安全产品就采用了模拟点击的方式 bamb00
Android如果有一个任意写入的漏洞,如何将写权限转成执行权限 - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 6 years 3 months ago 这个题目我以为是考的怎么进行提权,结果原来是这样的: 1. DexClassLoader 动态载入应用可写入的 dex 可执行文件 2. java.lang.Runtime.exec 方法执行应用可写入的 elf 文件 3. System.load 和 System.loadLibrary 动态载入 bamb00
Android so注入(inject)和Hook技术学习(三)——Got表hook之导出表hook - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 6 years 4 months ago 前文介绍了导入表hook,现在来说下导出表的hook。导出表的hook的流程如下。1、获取动态库基值 2、计算program header table实际地址 通过ELF文件头获取到程序表头的偏移地址及表头的个数 3、遍历program header table,找到类型为PT_DYNAMIC的区段 bamb00
Android so注入(inject)和Hook技术学习(二)——Got表hook之导入表hook - bamb00 博客园_人怜直节生来瘦,自许高材老更刚。 6 years 4 months ago 全局符号表(GOT表)hook实际是通过解析SO文件,将待hook函数在got表的地址替换为自己函数的入口地址,这样目标进程每次调用待hook函数时,实际上是执行了我们自己的函数。 GOT表其实包含了导入表和导出表,导出表指将当前动态库的一些函数符号保留,供外部调用,导入表中的函数实际是在该动态库中 bamb00