- 博客(313)
- 收藏
- 关注
原创 从逆向角度看C++--C++中类与继承在汇编中的关系
汇编先跳到main函数里来然后点金main里的第一个跳转先获取manager这个类这里是初始化这个类。
2025-12-01 23:27:04
293
原创 ADB详解
ADB(Android Debug Bridge)是 Android 设备的“万用遥控器”。。通过 ADB,你可以在电脑上列设备、打开设备 shell、推/拉文件、安装/卸载应用、查看日志、抓包等。对于 IoT 渗透测试工程师来说,很多基于 Android 的智能设备(智能摄像头、智能音箱、路由器等)都可以用 ADB 做大量枚举与测试。
2025-11-19 17:30:30
458
原创 设备上云链路
使用协商的密钥对所有的HTTP请求和响应进行加密,确保传输过程中的数据(如传感器读数、用户指令)即使被截获也无法被读取。: 设备需要验证它连接的是“真正的、可信的”云服务器(通过服务器的数字证书)。: 在安全测试中,常会将IoT设备置于隔离的VLAN或测试网络,防止一个问题设备危及其他网络设备。: 设备与路由器之间的连接需要使用强加密方式(如WPA2/WPA3)。: 必须使用安全的TLS版本(如1.2或1.3)和强加密套件,禁用过时、脆弱的算法。: 双方协商出唯一的会话密钥,用于后续通信的加密和解密。
2025-11-07 18:08:28
256
原创 路由器详解
的功能,工作在第二层(数据链路层),负责管理Wi-Fi连接,处理802.11协议的认证、关联和加密。,在不同网络或子网之间智能地转发数据包,是构建互联网(一个由无数网络互联而成的集合)的基石。:路由器收到以太网帧,发现目的MAC是自己的MAC,于是解封装,将IP数据包上交网络层。:百度服务器回复的数据包到达路由器,路由器执行反向的NAT转换,将目的IP从公网IP。接口的MAC作为源MAC,下一跳的MAC作为目的MAC,重新封装成新的以太网帧。:通过命令行管理,功能最全、最灵活,是专业网络工程师的首选。
2025-11-07 18:07:13
676
原创 BLE(蓝牙低功耗)VS经典蓝牙
服务中的具体数据点。例如,心率服务中的“心率测量值”。所有的数据读写操作都是在这些特征值上进行的。它扫描周围的广播,发现外围设备后与之建立连接并进行通信。例如:手机上的App。:设备不断向外发送广播数据包,说“我在这里,我是XXX,可以连接”。:设备是否对所有连接请求都接受,还是只接受授权的中央设备。:手机向设备发起连接请求,建立一条专用的通信链路。:设备提供的功能集合。:手机App扫描并筛选出想要连接的设备。:连接建立后,通信链路是否加密。通过恶意的写操作控制设备。窃听设备广播的信息。
2025-11-07 17:47:44
337
原创 从逆向角度看C++--从反汇编侧方位看C++虚函数表
编译时就确定要调用哪个函数。:运行时才决定调用哪个函数。当子类重写(override)父类的虚函数时,通过父类指针调用函数时,会自动“跳”到子类的版本。
2025-11-05 17:36:10
738
原创 逆向基础-指针
在前面的学习中,我们已经了解了指针的基本概念,但尚未深入探讨“地址”这一核心内容。本节将重点讲解三个关键部分:获取变量的数据类型取变量的地址通过地址取出其中存储的数据(解引用)typeid(变量).name()可帮助我们调试或理解指针类型的层级关系。
2025-11-05 16:17:34
1587
原创 [GXYCTF2019]BabyUpload1
我是不是因为我的content-type和文件开头没加一些伪造的魔数。这说明我上传的文件没被当php执行。试着上传.htaccess文件试试。再尝试上传.user.ini。
2025-11-05 15:16:32
111
原创 IOT预防MITM手段--证书钉扎
mitmproxy提供的: X9:Y8:Z7:...:W2:31 # 伪造的证书指纹。客户端(如浏览器、手机APP、IoT设备)不再完全信任操作系统的根证书库,而是。设备期望的证书: A7:2B:1D:...:D4:77 # 钉扎的证书指纹。(如北京市公安局)颁发的身份证,即使其他公安局也是合法的,你也不认。钉扎证书中的公钥,这样证书续期时仍能工作。:钉扎银行证书,防止公共WiFi上的攻击。逆向工程固件,提取钉扎的证书。只信任特定的证书颁发机构。设备验证:证书指纹匹配 ✓。在我的信任列表里吗?
2025-11-05 13:21:42
327
原创 什么是IOT固件
IoT 固件(Firmware)是指运行在物联网设备(IoT 设备)内部、介于硬件与操作系统之间的嵌入式系统软件。它通常负责:控制硬件工作(如传感器、通信模块、电机等)实现设备的基础功能逻辑提供通信接口(HTTP、MQTT、CoAP 等)在联网时与云端交互或接受远程更新(OTA)通俗地说:固件 = 设备的大脑,告诉硬件“该怎么做”。
2025-11-05 13:18:25
554
原创 MITM中证书的作用
(包含 VeriSign、Let's Encrypt 等 CA 的根证书)来验证证书签名。2. 证书签名:由"Attackers Root CA"签发 ✗(不在信任库中!2. 证书签名:由"Attackers Root CA"签发 ✓(现在受信任了!1. 证书域名:example.com ✓(匹配)出纳员出示官方工牌(证书),由银行总部(CA)签发。:支持的 TLS 版本、加密套件、随机数。:选择的 TLS 版本、加密套件、随机数。检查证书中的域名是否与访问的域名匹配。3. 结果:**验证通过,无警告**
2025-11-05 12:53:42
647
原创 MITM中间人攻击
中间人攻击(Man-in-the-Middle,MITM)是指攻击者在通信双方之间双方数据的攻击方式。被攻击的双方以为彼此直接通信,实际上流量经过攻击者,从而泄露凭证、会话令牌、敏感数据,或注入恶意内容。
2025-11-05 10:41:26
855
原创 [网鼎杯 2020 青龙组]AreUSerialz1
如果op==="2",这里用的是强等于,我们可以令op=2,是数字而不是字符,进入read函数读取flag.php文件。也就是说,我们传入的参数str会被反序列化,这很明显利用php反序列化漏洞。也就是说我们构造的php内容应该是。但protected属性包含空字节。类名是FileHandler。主要看destruct函数。所以手动给空字节编码一下。
2025-11-03 11:36:20
280
原创 [极客大挑战 2019]HardSQL1
输入 1'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))#输入 1'or(updatexml(1,concat(0x7e,database(),0x7e),1))#发现过滤了空格,sleep,insert,--+,<>,and,等于号,by,union,/**/等等。
2025-10-31 10:11:00
390
原创 逆向基础--汇编二维数组 位移 乘法
C 是行优先(而 Fortran 常为列优先),在处理迭代或对缓存友好访问时要按行遍历以提高缓存命中。无论是一维数组,二维数组或者其它多维数组,其存储方式实质上并没有区别,都是在内存中连续存储,并。(可能被优化为位移),在性能敏感代码(内循环)中注意减少计算或提前缓存行基指针。,也可能用“乘法 + 加法”组合或其他优化,视编译器版本和优化等级而定。编译器在初始化静态/局部数组时,会把每个元素逐个写入((行偏移),再乘以元素字节宽度 → 得到行字节偏移。,说明编译器利用了乘法快速路径(乘数为 2 的幂)。
2025-10-30 17:53:13
561
原创 IOT测试
物联网(The Internet of Things,简称IOT)是指通过 各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化 学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。IOT小白一枚,在网上看了很多资料,最终看到觉得非常详细,本篇文章也是我记录我在这个博文的学习记忆。
2025-10-30 11:00:15
1059
原创 [ZJCTF 2019]NiZhuanSiWei
file参数如果不包含flag字符串就反序列化password并输出。text内容必须等于welcome to the zjctf。先读一下useless.php我们再看看怎么构造反序列化。这里尝试读取源码,因为给了useless的php文件。1.一般利用是文件包含(远程,本地)然后他include file。,它就会读取flag文件的内容。魔术方法__tostring。对于text用php伪协议。我们利用include(2.PHP伪协议利用。base64解码得到。
2025-10-30 09:39:37
323
原创 TLS报文分析
它通常是之前所有握手消息的一个摘要,用于让服务器验证握手过程是否被篡改。: 设备向服务器发起连接,说:“你好,我想建立一个安全连接。: 服务器回应:“好的,我们就用这些规则来通信。: 服务器从客户端提供的列表中选定一个双方都支持的。: 设备发送自己的DH参数或用服务器公钥加密的。: 服务器说:“好的,我也切换到加密模式了。: 设备告知服务器它支持的TLS版本、支持的。: 服务器说:“我这边的信息发完了。: 设备响应服务器的密钥交换参数。: 设备立刻兑现它的承诺。: 服务器做同样的事情。消息,供客户端验证。
2025-10-29 11:29:02
317
原创 IOT检测----产品连上虚拟机热点
这里手机是192.168.12.165 IOT是192.168.12.232。如果测试手机显示root不能用,在magisk里面点卡遵循排除列表,在配置排除列表里点击你的哪个APP即可。都连接到你虚拟机开的热点,因此,它们之间所有的。现在wireshark的包都是测试手机的。手机脸上IOT,现在抓包就是手机和。2. 电脑插上网卡,虚拟机连接。下载遥测的IOT的APP。除了virt其他都不选。数据包,你都能抓到。
2025-10-28 14:43:10
234
原创 逆向基础-汇编一维数组
因为先前的通过数组越界来调用其它函数使得堆栈不平衡,也就是多add esp 4了一次在hellowrod里因为他是ret过去的会自动esp+4,需要手动修正平衡,否则main函数里的__chkesp会报错。数组的数据存储是连续的,数组中的每个元素按顺序在内存中占用一段连续的空间。实际上不论是数组还是非数组,存储数据时都要考虑内存对齐,在32位的系统中,以4个字节(32位)(本机宽度)为单位,因为在。之前的返回数据默认都是保存在eax中的,此时64位的数据一个eax肯定无法存储下,观察此时的数据存储。
2025-10-23 15:55:08
846
原创 [护网杯 2018]easy_tornado1
基本上我知道,flag在/fllllllllllllag,哈希的算法是MD5(cookie_secret+MD5(filename))我们要找cookie_secret,他被放在settings字典里,现在我要知道,什么命令可以读到这个字典,但对于tornado也不太了解,不知道怎么哪cookie_secret,看到大佬的wp,于是跟上上官网看看。这么多条目,我的思路是先看setting,看看他怎么设置的,从而看看有没有下手点。” 这份文档本身是固定的,但里面的空白处需要动态填充。比如一份会议通知:“
2025-10-23 10:53:59
536
原创 逆向基础-汇编比较三种循环
for 循环执行顺序:判断条件 → 执行循环体 → 增加计数 → 跳转回判断。效率:因为条件判断和更新操作紧密耦合,通常会比其他两者多一些跳转指令。while 循环执行顺序:判断条件 → 如果满足执行循环体 → 增加计数 → 跳转回条件判断。效率:由于是先判断条件,可能在某些情况下跳过整个循环,效率上有一定优势。do while 循环执行顺序:先执行循环体 → 判断条件 → 如果满足继续执行循环体。效率:无条件执行循环体一次,适用于至少要执行一次的情况,通常较for和while稍有优势。for循环。
2025-10-22 15:15:48
295
原创 [MRCTF2020]你传你[特殊字符]呢1
反正记得改content-type:image/jpeg。试了很多种后缀,最后发现还是jpg才行。这种方法比较强,但需要服务器允许。让 .jpg 也能执行 PHP。
2025-10-22 11:42:20
185
原创 [BJDCTF2020]Easy MD51
也就是说a=NULL,我们b不输入NULL就能满足ab不相等,后面是一个弱比较只要我们的b是跟a开头的字符串就行。a=1&b[]=1不行,可能是他定义了$GET那也没关系,反正传入数组返回都是NULL。我们要么是想上传两个不一样的值但是md5值相同,也就是md5碰撞但这个方法需要上传文件或很长的字符串。知道有个get提交,参数是password,但这跟这关的名字MD5有啥关系啊。false:对二进制进行十六进制编码这是安全的字符串比较,不会引入特殊字符。b[]=1(=什么都行,返回都是NULL)
2025-10-21 21:30:16
408
原创 逆向基础-汇编嵌套if else
每个ifcmp <操作数1>, <操作数2>jcc <目标地址>cmp:设置标志位jcc:根据标志位跳转(条件成立或不成立)if (i > j)cmp i, j→ “若条件不成立(i ≤ j),则跳转到 else”。
2025-10-21 17:09:35
1119
原创 逆向基础-类型转换
(Type Conversion)指的是把一种数据类型的值转换为另一种类型的过程,常见场景是“窄类型 → 宽类型”(例如。需要把 8/16 位的数据提升为 32/64 位再参与运算(因为 CPU 运算通常在 32/64 位寄存器完成)。用途:把源操作数的最高有效位(MSB,符号位)扩展到目标寄存器的高位,保持原有的符号(正/负)。:当结果宽度大于目标变量宽度时,存回窄变量会截断(高位丢失),可能产生溢出/循环。做符号扩展(适合有符号)。带符号/无符号之间的转换(要注意符号位的扩展或零扩展)。
2025-10-21 15:08:46
1655
原创 逆向基础-全局和局部变量
定义位置:在函数外部声明的变量,或带static的静态变量。内存位置:放在程序的数据段(Data/BSS 段)中,地址在编译/链接后就确定(相对可预测,除非启用地址空间布局随机化 ASLR)。生命周期:程序一启动,该内存段就存在;变量在进程生命周期内一直存在,直到进程结束才释放。初始值如果编译时显式初始化(例如),则在加载时包含初始值。未显式初始化的全局变量在 BSS 段通常被初始化为 0(由运行时或 C 运行时库负责)。定义位置int x;在函数里)。内存位置:一般分配在栈(stack)上;
2025-10-19 21:17:49
1643
原创 [HCTF 2018]admin1(新源码链接)
打开页面源码发现有2个页面login,register本来想试试二次注入,发现没成功,登录进我创建的admin--+后,来到change密码部分,查看源码打开这个链接【Flask 是一个用 Python 写的轻量级 Web 框架】结果发现链接失效了,找到了别人的链接打开这个链接,下载源码在模板里看到这个xxxxxxxxx在这里显然是占位符。
2025-10-19 20:07:36
249
原创 Python Web之flask session(小白友好)
Flask 是一个轻量级 Python Web 框架。它没有自带数据库操作,所以 session(用户会话信息)默认存储在客户端 cookie 中。session 是用来认证用户身份的,例如判断用户是否登录,是否是管理员等。session 是一个 Python 字典-序列化-压缩(可选)-Base64 编码-签名。
2025-10-19 19:18:40
1064
原创 OAuth 竞态条件(Race Condition)漏洞
在开始之前,先简单回顾一下 OAuth:OAuth 是一种授权机制(Authorization Framework)它允许第三方应用在不获取用户密码的情况下,访问用户在其他平台上的资源(例如使用 Google、GitHub 登录别的网站)。举个例子:你用“Google 登录某个网站”时,Google 会问你:“是否允许该网站读取你的邮箱地址?如果你点“允许”,Google 就会给那个网站一个“令牌(token)”,网站就能用这个 token 访问你的资料,而不用拿到你的密码。
2025-10-19 16:10:41
718
原创 逆向基础-汇编C语言基本类型
示例二进制表示十六进制说明8.25f0x41040000正数-8.25f0xC1040000负数0.25f0x3E800000小数整数类型:关注宽度、符号、截断;浮点类型:关注IEEE 754结构;比较逻辑:区别有符号/无符号的汇编跳转;存储规律:计算机只看比特,含义取决于我们“怎么解释”它。
2025-10-18 23:39:09
1351
原创 逆向基础-汇编寻找C程序入口
观察点说明push指令个数粗略判断参数个数表明是 cdecl 调用且有 3 个参数三个参数特征符合调用位置通常位于的尾部操作系统加载程序(kernel32.dll)↓mainCRTStartup(C 运行时启动函数)↓初始化堆、环境变量、命令行参数等↓调用 main(argc, argv, envp)↓程序执行用户代码↓返回值交给 mainCRTStartup → ExitProcess概念说明程序真正入口,负责初始化main用户编写的逻辑入口寻找 main。
2025-10-18 21:51:13
1499
原创 IoT 安全-逆向入门介绍
含义:把抽象的设计/需求变成实际的产品或系统的过程。例子:从产品设计图纸 → 交给裁缝/工程师 → 得到衣服/实物;或需求规格 → 程序员编写代码 → 得到软件/网站(如淘宝)。特点:从逻辑/需求出发,逐步实现为物理/可执行产物。
2025-10-18 21:16:18
1155
原创 [RoarCTF 2019]Easy Calc1
查看页面源码发现一个新页面打开一下calc.php,这是本题的waf输入不在黑名单的特殊字符出现');它会把 $str 拼接进一段 PHP 代码,然后执行。?num=1+2会被拼成:');执行结果输出 3。也就是说,用户输入的内容,会被直接当作 PHP 代码运行。输入?,这句话才对,但是出现这种画面,应该是被防火墙拦截了。
2025-10-18 20:10:42
891
原创 逆向基础-C语言内联汇编和调用协定
在C语言中,如果你希望完全控制函数内部的汇编指令这告诉编译器:“不要为我生成任何函数前后的保护现场、恢复现场、堆栈平衡等指令,我自己来写。
2025-10-18 18:45:50
1462
原创 [极客大挑战 2019]BuyFlag1
post参数不能是数字,但是又必须是404,考点在php弱等于。并把Cookie: user=0改为1。上传password=404a。有个pay.php,进去看看。
2025-10-17 19:07:13
170
python,selenium库firefox驱动
2025-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅