X1ng

PWN for fun

强网杯2021初赛

pwn wp

记得去年做2个题,今年被学长带着也就做4个题,,所以菜的人学一年就只能多做俩题而已( 跟学长一起打比赛的体验比自己闷头做的体验好太多 baby_diary 2.29版本以上的off-by-null,边学边做。。 保姆级教程: glibc2.29下的off-by-null 通过伪造堆块绕过向下合并的检查、通过large_bin的fd_nextsize和bk_next...

leetcode刷题记录

记录一下安全菜鸡学开发的过程

2020.11.09 100 Runtime: 4 ms, faster than 51.00% of C++ online submissions for Same Tree. Memory Usage: 10.4 MB, less than 51.00% of C++ online submissions for Same Tree. /** * Definitio...

ciscn 初赛 2021

write up

只做了三个pwn,沙箱不会全丢给队友了,,最后的satool还来不及交 太菜了呜呜 附件pwn 附件SATool pwny 可以从random读取字符覆盖bss上可控偏移的变量,覆盖fd后从无效的fd读取数据到保存fd的内存,会把fd覆盖为0,之后任意地址读写,泄露地址打exit_hook #!/usr/bin/python from pwn import * import s...

CSTC2021

write up

菜鸡还是喜欢简单题呜呜呜 附件 PWN bank 用\x00爆破随机数生成的密码绕过strcmp,格式化字符串漏洞输出内存中的flag exp: #!/usr/bin/python from pwn import * import sys context.log_level = 'debug' context.arch='amd64' local=0 binary_name...

虎符2021-apollo复现

复现pwn题目

逆向依旧菜,arm依旧菜,轩哥的wp依旧细,,参考轩哥的博客撸一撸aarch64汇编 apollo hint:漏洞点在于车辆前方的绿灯或黄灯的转化,使车辆到达了地图外 例行检查 静态分析 ida打开发现有很多函数 找到一个sub_D04调用了三个setvbuf,x查看交叉引用 继续查看sub_2678函数的交叉引用 可以看到直接出现在got表里面了,并且被...

学习分析加密的路由器固件

学习笔记

由于需要分析一下DIR-878的固件,但是从官网找到的最新版固件是经过加密的,所以学习一下固件解密的方法 解密方法 因为固件升级是在设备上进行的,所以如果用户要将一个设备升级为加密过的固件版本,则该设备上目前运行的版本必须有对应的解密程序,加密过的固件在被上传到设备上之后,先被解密程序解密,然后再进行升级 这就有两种容易解密固件的情况 设备早期版本未加密,后面的版本加...

对D-link DIR823pro路由器的漏洞挖掘

尝试挖掘漏洞

感觉iot设备的漏洞比较常见的就是溢出和命令注入了,找了一个网上没有找到相关资料的DIR-823 pro路由器测试 记录关于DIR-823 pro路由器上无交互RCE的漏洞挖掘过程 17年的固件也是年久失修了,就当作挖掘路由器设备漏洞的练手吧 固件获取 从官网获取固件 从固件名称来看,应该是对openwrt进行二次开发而成的固件 解压文件系统 用binwalk直接解压 bin...

HWS冬令营结营赛

学习笔记

第一次参加这种神奇的IOT赛,上来就日板子,然后我也成功的在设置连接板子的ip上卡了一整天 直到最后五分钟改了ip才从板子上弹出来pwn的shell(永远都在无关紧要的问题上卡到比赛结束 也导致了这么新奇的赛题除了侧信道和故障注入居然只看了一道题,,本来还想就算做不出来也得上台看看摄像头的 不过这也是反弹shell操作现学现卖,就随便记个笔记吧 easyserver 一个webse...

侧信道与故障注入攻击

学习笔记

侧信道和故障注入的攻击很多都是对加解密过程的攻击,由于太菜了密码一个不熟,先学了一下用来当作栗子的密码 由于写笔记的时候已经没有设备可以操作了,只记录一下理论知识 加密算法 RSA加密算法 RSA是一种非对称加密算法 公钥与私钥的产生 随机选择两个不同大质数 p 和 q,计算 N=p * q 根据欧拉函数,求得 φ...

HWS冬令营线上选拔赛2021

write up

菜就算了还要出去玩,只抽空做了几个简单题,第一次做内核题才发现不会上传exp。。。。 REVERSE decryption 主要加密逻辑 for ( i = 0; i <= 31; ++i ) { v2 = i ^ flag[i]; v3 = i & flag[i]; v7 = flag[i]; v6 = i; do ...