day-4 xctf-pwn CGfsb】的更多相关文章

碎碎念 咕咕咕了好久的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写入…
xctf-pwn CGfsb 传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5050 (菜鸡面对着pringf发愁)(-_-||)菜鸡了解的printf知识传送门: https://blog.csdn.net/u010517901/article/details/46486341 %c:输出字符,配上%n可用于向指定地址写数据. %d:输出十进制整数,配上%n可用于向指定地址写数据.…
涉及的工具有 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…
这里补充一下%n是代表向参数赋值打印的字符个数 例如printf("AAAA%n",&a); 代表的是向a写入4 printf("AAAA%1n", &argu1) 代表的是将打印字符的个数值写入参数1中. printf("AAAA%2$n", &argu1, &argu2, &argu3......) 使用'$'符号来进行参数的选择 代表的是将打印字符的个数写入参数2对应的地址内存中. 来看一点实际的吧:…
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]攻防世界 pwn新手区wp 前言 这几天恶补pwn的各种知识点,然后看了看攻防世界的pwn新手区没有堆题(堆才刚刚开始看),所以就花了一晚上的时间把新手区的10题给写完了. 1.get_shell 送分题,连接上去就是/bin/sh 不过不知道为啥我的nc连接不上... 还是用pwntool的remote连接的 from pwn import * io = remote("111.200.241.244", 64209) io.interactive() 2.hello pw…
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…