pwn篇
文章平均质量分 60
哪家楼下的猫咪
此人是个懒狗,什么都没有
展开
-
Pwn篇-BUUCTF[第五空间2019 决赛]PWN5-格式化字符串漏洞
BUUCTF[第五空间2019 决赛]PWN5简单的格式化字符串漏洞利用题目程序保护IDA分析程序逻辑如下:unk_804c044为bss段地址,存储上面生成的4字节随机数。只要随机数和我们输入的passwd相等,则调用system("/bin/sh")程序中有明显的格式化字符串漏洞,可以任意地址读写。动态调试GDB调试程序,计算偏移:数得偏移为9,可以使用%9p来打印"aaaa"所在的地址可以使用pwnlib中fmtstr_payload来自动构造payload,使用方法如原创 2021-04-10 21:25:17 · 295 阅读 · 0 评论 -
pwn篇:攻防世界进阶welpwn,LibcSearcher使用
攻防世界welpwn这题主要是考无Libc泄露地址,在没有Libc的情况下,可以使用LibcSearcher进行动态匹配,匹配完成后会给出选项,选择libc的版本即可。如果不知道版本可以一个个试。安装LibcSearchergit clone https://github.com/lieanu/LibcSearcher.git文件有点大,100多Mb配置LibcSearcher,可以直接install,会自动buildcd LibcSearcherpython setup.py instal原创 2021-02-10 13:45:42 · 910 阅读 · 0 评论 -
PWN篇:攻防世界PWN-100
攻防世界进阶PWN-100做这道题的时候远程环境可能有点问题,链接上收不到字符,在本地跑exp是可以拿到shell的。之前以为写错了,买了wp试也不行,重开环境还是不行,先记录一下,以后能连上了再提交flag。查看保护IDA分析主函数sub_40068esub_40063d思路分析sub_40063d接收两个参数(IDA解析这里有点问题,可以查看汇编代码分析),a2=200,a1=&v1[64]当 i 小于200,read输入到v1,这个就是溢出点,当 i >=原创 2021-02-04 23:17:50 · 437 阅读 · 0 评论 -
pwn篇:32位及64位无PIE保护ROP方法
32位和64位ROP方法先记录一下,暂时还没有学会绕过PIE源码#include<stdio.h>#include<unistd.h>void vuln_func(){ char buf[128]; read(STDIN_FILENO,buf,256);//溢出点}int main(int argc,char* argv[]){ vuln_func(); write(STDOUT_FILENO,"Hello world\n",13);}32位编译原创 2021-02-03 22:59:16 · 1305 阅读 · 0 评论 -
pwn篇:随机数种子
攻防世界pwn进阶:dice_game程序分析:64位elf可执行文件、libc.so.6库文件保护:除了Canary,其他保护全开IDA分析程序逻辑创建一个随机数种子,为当前时间首先输入名字,长度为55的数组。程序对输入做了处理,当大于49长度时,将最后一个赋值为“0x00”,也就是对字符串长度进行了限制,这个函数没什么问题。打印输入的字符串,这里也没什么问题。调用了srand函数,seed是输入名字时字符串第0x41个元素,也就是该值可控。SUB_A20函数对随机数进行了处理,原创 2021-02-02 14:23:04 · 1096 阅读 · 0 评论 -
PWN篇:ret2libc
PWN篇:ret2libc源码#include void vuln_func(){ char buf[128]; read(STDIN_FILENO,buf,256);}int main(int argc,char* argv[]){ vuln_func(); write(STDOUT_FILENO,"hello world!\n",13);}很明显vuln为溢出函数编译gcc -m32 -fno-stack-protector -no-pie -z execstack tes原创 2021-01-28 21:56:03 · 448 阅读 · 0 评论