android之hook入门
Android运行机制一般而言,在启动一个 App 时,Android 会首先执行 Application 类(AndroidManifest.xml 文件中注明)的创建工作,然后再开始执行 Main Activity,继而根据各种各样的逻辑执行相关代码。
Android 逆向
分析方法,可以采用以下方式
静态分析,对源代码进行逆向,然后阅读分析
动态分析,对代码进行动态调试,一般来说动态分析离不开静态分析。
分析对象,一般有以下两类对象
java层代码
原生层代码
Android 逆向主要应用于以下几个方向
app 安全审查
系统漏洞挖掘
恶意代码杀查
同行业产品技术原理分析
移除安全机制
AndroidManifest.xml 文件
软件包名
apk 主活动,隐藏程序没有主 Activity
Application 在 java 层启动最早
逆向技巧字符串定位:
程序报错信息
服务
广播
敏感API定位:
控件的事件函数
onclick
show
Toast
网络函数
HttpGet
HttpPost
HttpUriRequest
socket
发送 ...
固件下的hook & patch
固件下的how2hook & how2patch在模拟固件的时候通常需要我们自己对二进制文件进行patch和hook,但无论是patch还是hook,都是通过修改(劫持)二进制文件的执行流程来达到固件顺利启动的目的。
BIN-10012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364int __fastcall main(int argc, const char **argv, const char **envp){ qmemcpy(encoded_flag, &byte_400A7E, sizeof(encoded_flag)); stack_canary = __readfsqword(0x28u); data_pointer = obfuscated_key; for ( index_outer_loop = 9LL; index_outer_loop; --in ...
how2heap
house of手法前言house of的手法只需理解其中的技巧,了解如何从小小的漏洞获得rce
house of einherjar漏洞成因溢出写、off by one、off by null
适用范围
2.23—— 至今
可分配大于处于 unsortedbin 的 chunk
利用原理利用 off by null 修改掉 chunk 的 size 域的 P 位,绕过 unlink 检查,在堆的后向合并过程中构造出 chunk overlapping。
申请 chunk A、chunk B、chunk C、chunk D,chunk D 用来做 gap,chunk A、chunk C 都要处于 unsortedbin 范围
释放 A,进入 unsortedbin
对 B 写操作的时候存在 off by null,修改了 C 的 P 位
释放 C 的时候,堆后向合并,直接把 A、B、C 三块内存合并为了一个 chunk,并放到了 unsortedbin 里面
读写合并后的大 chunk 可以操作 chunk B 的内容,chunk B 的头
相关技巧虽然该利用技巧至今仍可以利用, ...
Hexagon学习
Hexagon 学习Hexagon 是高通(Qualcomm)开发的 数字信号处理器(DSP) 架构,专为移动设备、物联网和边缘计算设计,以高效能、低功耗为核心优势。它被集成在高通骁龙(Snapdragon)系列芯片中
hexagon用allocframe开辟栈帧:LR压栈,FP压栈,SP减去一定数值向低地址开辟,FP设置成指向旧FP的指针。deallocframe/dealloc_return用于销毁栈帧/销毁栈帧并返回,从栈底取回FP和LR。
一共有32个32位通用寄存器,r0-r31。存在寄存器对,可以当做64位寄存器使用,如r0和r1可以合并成r1:0
r29-r31是别名寄存器。r29是SP,r30是FP,r31是LR寄存器。SP是栈顶寄存器,FP是栈(底)寄存器,LR是储存返回地址的寄存器。
看汇编感觉是类arm架构
主要的汇编有
12345allocframe(#0x10) #开辟栈空间add(r0,#-0x10) #加减乘除,有返回值call funcdealloc_return #pop and ret (类似pop,但是hexagon ...
2024年终总结
2024年终总结前言第一次写年终总结呢,一年过的好快,大一小登->大二老登,感觉下半年有点摆烂(,主要还是对IoT领域的不了解,以及自身能力的缺陷,希望明年能加以改进,在此写下2024年的收获与对2025的希冀
收获
获得了第一枚CVE,从0到1的突破!!
获得了ciscn华东南分区的二等奖
结识了许多伙伴
能说的上号的也就这几个🥲,但最珍贵的还是心态上的转变以及对自我的清晰认知
目标
获取大厂类似思科,华为,华硕等的各一枚CVE
补足Web安全的知识
获得几个比赛的奖项(Pwn!!!)
硬件安全
无线电安全
最后,希望能挖到一枚未授权RCE
希望 2025的我 万事胜意!天天开心!努力学习!天天向上!哦耶
初探XSS
XSS学习前言在IoT设备中,也有遇到过XSS的情况,在此学习ing
XSS简介xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
1234<?php$xss = $_GET['x'];echo $xss;?>
产生层面产生层面一般都是在前端,JavaScript代码能干什么,执行之后就会达到相应的效果
函数类比如说php中的脚本的输出函数
常见的输出函数有:print、print_r、echo、printf、sprintf、die、var_dump、var_export
其实归根结底,XSS的攻击方式就是想办法“教唆”用户的浏览器去执行一些这个网页中原本不存在的前端代码。
什么导致xss输入验证和清理不足
Web 应用程序接受用户数据(例如通过表单),并使用这些数据动态生成 HTML 页面。因此,恶意脚本可以作为合法输入的一部分嵌入,并最终由浏览器执行,除非经过充分清理。
缺乏输出编码
用户可以使用各种字符来改变 Web 浏览器处理和显示网页的 ...
openwrt路由器启动流程
openwrt路由器启动流程前言只做了大致流程的分析
总结通过/etc/rc.d下的链接执行**/etc/init.d**下的初始化服务,不过有的固件并没有init.d目录,因此还是得特殊情况特殊看待
流程/sbin/init->第一次/sbin/procd->/sbin/preinit->第二次/sbin/procd
分析/sbin/init首先第一个启动的程序便是/sbin/init初始化程序
12345678910111213141516171819int __cdecl main(int argc, const char **argv, const char **envp){ int v3; // r0 int v4; // r0 int v5; // r0 int v6; // r0 int v7; // r0 sigaction(15, &asc_1244C, 0); ...
初探Qiling framework
前言做完这些lab,对qiling的作用,这个framework的理解,更加的深,希望看到这里的读者可以自己去做一遍,不要纯看他人的wp,因为每道题都有着很多种解法,但是目标都是成功的hook或Hijack,Qiling还有着一些fuzz or 仿真的 example,我都会去做一遍的!同时接下来每周都有着很多考试,希望一切顺利~
What is QilingQiling是一个先进的二进制仿真框架,具有以下特点:
Qiling 这个框架对于模拟运行二进制程序时的 hook 非常方便
模拟多平台:Windows、MacOS、Linux、Android、BSD、UEFI、DOS、MBR、以太坊虚拟机
模拟多架构:8086、X86、X86_64、ARM、ARM64、MIPS、RISCV、PowerPC
内置调试器,具有逆向调试功能
提供深入的内存、寄存器、操作系统级和文件系统级API
细粒度检测:允许在各个级别进行挂钩(指令/基本块/内存访问/异常/系统调用/IO/等)
支持跨架构和平台调试能力
真正的Python框架,可以轻松地 ...
CVE-2023-20073复现
CVE-2023-20073提取固件首先在官网下载对应版本的固件,之后binwalk -Me解压,但是会出现一个问题,便是因为其软连接指向的是他的文件系统根目录下的,而当前根目录是我们的主机,想来也不会让其随便的建立软连接,他又只是一个机器,因此无法自己指向自己的根目录下,那我们只好再次自己去解压
在这个目录下执行 ubi_reader 0.ubi,但是我本身拥有这个ubi_reader,是从binwalk源码下载的,他自己却不能一次binwalk解压成功,确实让人匪夷所思,可能是要多加一些什么参数吧
漏洞成因配置文件分析首先在/etc/nginx/conf.d/目录下有很多nginx的配置模块
首先看/etc/nginx/conf.d/rest.url.conf
看到它分为五个模块,其中主要看第三个模块,即文件上传模块
12345678910111213141516171819202122232425location /api/operations/ciscosb-file:form-file-upl ...
2024ciscn华东南pwn
比赛的时候全靠fix得分,也是参与上了
baby_jit123456789101112131415161718192021222324252627void __fastcall __noreturn main(int a1, char **a2, char **a3){ char s[8]; // [rsp+0h] [rbp-10h] BYREF unsigned __int64 v4; // [rsp+8h] [rbp-8h] v4 = __readfsqword(0x28u); setvbuf(stdout, 0LL, 2, 0LL); heap = malloc(8LL * (count + 1)); sandbox(); while ( 1 ) { while ( 1 ) { printf("1. Add\n2. Exec\n3. Exit\n>> "); fgets(s, 8, stdin); if ( strcmp(s, "1\n") ...