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") ...
谈非栈上格式化字符串
%hhn(写入一字节)
%hn(写入两字节)
%n(32位写四字节)
%ln / %lln(写入八字节)
hitcontraining_playfmt
首先是设置输出为无缓冲模式,然后以参数的数量的地址传参
里面调用do_fmt函数,显然是一个非栈上的格式化字符串漏洞
没有保护,且有RWX段,gdb进去可以看到栈便是RWX段,但是没什么软用,因为是非栈上的格式化字符串
这题是通过在buf段构造shellcode的,因为是老题了,在很old的内核版本的数据段是可执行的,直到5点多才不可执行的
因此就看一个思路即可
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465import osimport sysimport timefrom pwn import *from ctypes import *context.os = 'linux'context.log_le ...
CVE-2023-26315
这个cve是我至今以来复现的最为复杂的漏洞了,winmt真神!
固件仿真首先固件的提取可以看zikh26的博客,非常详细
如果是直接下载固件包的话,要先运行sudo apt install libvirt-daemon-system libvirt-clients virt-manager下载virbr0网桥
但是我在下载的时候要求卸载掉vmtool,可能是软件关系的冲突,但是zikh26师傅说他没遇到过,因此我猜测是网卡分配的冲突或者是网络配置的冲突??我也不是很懂,如果有了解的师傅请跟我说说,不过卸载了也没关系,不过是手改elf文件罢了
1234567891011sudo qemu-system-aarch64 \ -M virt \ -cpu cortex-a53 \ -m 1G \ -initrd initrd.img-5.10.0-29-arm64 \ -kernel vmlinuz-5.10.0-29-arm64 \ -append "root=/dev/vda2 console=ttyAMA0" \ -drive if=virti ...
TP-Link SR20命令执行漏洞复现
这个漏洞的成因是因为他的TDDP本身协议有任意命令执行的漏洞
TDDP协议
基于UDP协议,端口为1040端口
以上为TDDP协议的报头,第一个字节为version,即版本。tddp协议有两个版本:version1和version2。其中version1不支持身份验证和对数据包载荷的加密,而version2要求身份验证和加密。也正是因为version1不要求身份的认证即可对设备进行调试,导致出现漏洞。
漏洞复现是arm32小端,已经qemu过很多固件了,就不再多赘述,也不会很复杂
启动脚本如下
123456789#!/bin/bashsudo qemu-system-arm \ -M vexpress-a9 \ -kernel vmlinuz-3.2.0-4-vexpress \ -initrd initrd.img-3.2.0-4-vexpress \ -drive if=sd,file=debian_wheezy_armhf_standard.qcow2 \ -append "root=/dev/mmcblk0p2 console=ttyAM ...