Pwn-pwn-100】的更多相关文章

pwn ”Pwn”是一个黑客语法的俚语词 ,是指攻破设备或者系统 .发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵.以上是从百度百科上面抄的简介,而我个人理解的话,应该就是向目标发送特定的数据,使得其执行本来不会执行的代码,前段时间爆发的永恒之蓝等病毒其实也算得上是pwn的一种. pwn介绍 CTF pwn中的目标是拿到flag,一般是在linux平台下通过二进制/系统调用等方式编写漏洞利用脚本exp来获取对方服务器的shell,然后get到…
安装pwntool: 命令行运行: pip install pwntools python import pwn pwn.asm("xor eax,eax") 出现'1\xc0' 说明安装成功 在pycharm中运行出错:_curses.error: must call (at least) setupterm() first 解决方案:https://stackoverflow.com/questions/9485699/setupterm-could-not-find-termin…
要学习Pwn  Pwn环境那是必不可少滴! 我是新手,我也弄了好久,这里把经验分享给大家!这里感谢I春秋的"知世"老师的脚本!虽然写的不是很完美.还得我自己动手修改!PS:https://github.com/nightRainy 这是他的GIT 安不上软件主要的原因就是修改源.这里如果你像我一样安装的是Deepin的系统Apt源就不用改了,反正我感觉Deepin的Apt源速度还是很快滴!如果你是Unbuntu那么自己百度下吧!还有就是PIP源的修改,底下会讲到! 老师的脚本安装了下边…
目录 PWN二进制漏洞学习指南 前言 前置技能 PWN概念 概述 发音 术语 PWN环境搭建 PWN知识学习途径 常见漏洞 安全机制 PWN技巧 PWN相关资源博客 Pwn菜鸡小分队 PWN二进制漏洞学习指南 前言 最近准备学PWN,所以买了<CTF权威指南(PWN)篇>的书粗略的看完后,在这里做个学PWN需要掌握的知识指南,如有补充欢迎评论. 前置技能 首先我觉得要学习PWN还是要有一定基础的,因为PWN毕竟是和系统底层知识打交道,所以我觉得应该具备如下的一些技能,并且我推荐了一些不错的书籍…
0x00:背景 最近在为社团招新赛出pwn题,发现网上关于出题方面的文章资料特别少,所以打算记录下自己出题的过程,便于网友们参考学习.本次出题采用了ctf_xinetd与pwn_deploy_chroot项目. 0x01:Docker介绍 Docker 将应用程序与该程序的依赖,打包在一个文件里面.只要运行这个文件,就会生成一个虚拟容器.程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样.有了 Docker,大大缓解了程序分布时的环境问题. docker的安装: #本人系统环境:Ubunt…
网络相关 桥接模式下无法联网:设置桥接网卡地址为指定网卡(如dual band) route -n 查看网关/子网掩码 虚拟机中屏幕太小-设置中调节分辨率 DNS配置:cat /etc/resolv.conf 网卡设置:cat /etc/network/interfaces 重启网络服务:service networking restart 源相关 apt-get update && apt-get upgrade && apt-get dist-upgrade 系统源文件…
前言 比赛的一个 arm 64 位的 pwn 题,通过这个题实践了 arm 64 下的 rop 以及调试环境搭建的方式. 题目文件 https://gitee.com/hac425/blog_data/tree/master/arm64 程序分析 首先看看程序开的保护措施,架构信息 hac425@ubuntu:~/workplace$ checksec pwn [*] '/home/hac425/workplace/pwn' Arch: aarch64-64-little RELRO: Part…
一.安装前的环境 1. Windows7 SP1 64bit: 2. 在安装IIS7.5之前,安装了Visual Studio 2010或.NET Framework4: 二.安装IIS7.5 1.  打开  控制面板—>程序和功能—>打开Windows功能:…
-- re Windows Reverse1 通过DIE查壳发现存在upx,在linux上upx -d脱壳即可,拖入IDA,通过关键字符串找到关键函数: main函数中也没有什么,将输入的字符串带到sub_401000函数去处理,之后和处理过后的字符串和正确字符串进行比较,若一致则是正确flag跟进sub_401000,首先计算了输出字符串的长度,然后根据每一个字符的ascii码再加上一个常量作为地址,取里面的值,循环,每一位都是这样在main函数中我们知道正确的字符串,那么我们就可以反推处fl…
(https://ctf-wiki.org) 00 基础了解 CTF简介 (wolai.com) 00-1 CTF题目类型 Web 大部分情况下和网.Web.HTTP等相关技能有关. Web攻防的一些知识技巧.诸如SQL注入.XSS.代码执行.代码审计等等都是很常见的考点. Pwn Pwn类题目重点考察选手对于二进制漏洞的挖掘和利用能力,其考点也通常在堆栈溢出.格式化漏洞.UAF.Double Free等常见二进制漏洞上. 选手需要根据题目中给出的二进制可执行文件进行逆向分析,找出其中的漏洞并进…
目录 DASCTF-Sept-X-浙江工业大学秋季挑战赛-pwn-wp 总结 datasystem check分析 漏洞点 利用思路 exp hehepwn 漏洞点 exp hahapwn 漏洞点 exp 其他链接 DASCTF-Sept-X-浙江工业大学秋季挑战赛-pwn-wp 总结 10:30才起床做题......pwn是三道简单题,datasystem拿了个一血.hahapwn的远程靶机有问题,远程交互时惊现flag{flag_test}.我沉思片刻,随即怀着忐忑的心情点了提交,然而这个f…
PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的CTF,Hitcon的题目内容更新,往往会出现一些以前从未从题目中出现过的姿势.同时观察一些CTF也可以发现,往往都是国外以及台湾的CTF中首先出现的姿势,然后一段时间后才会被国内的CTF学习到. 此次Hitcon2016目前还未发现有中文的writeup放出,由于Hitcon题目的高质量,所以这里写…
前言 对 0ctf2018 的 pwn 做一个总结 正文 babystack 漏洞 非常直接的 栈溢出 ssize_t sub_804843B() { char buf; // [esp+0h] [ebp-28h] return read(0, &buf, 0x40u); } 这个题的难点在于 用 python 启动了该程序同时过滤了 stdout 和 stdout #!/usr/bin/python -u # encoding: utf-8 from pwn import * import r…
前言 对这段时间学习的 linux 内核中的一些简单的利用技术做一个记录,如有差错,请见谅. 相关的文件 https://gitee.com/hac425/kernel_ctf 相关引用已在文中进行了标注,如有遗漏,请提醒. 环境搭建 对于 ctf 中的 pwn 一般都是给一个 linux 内核文件 和一个 busybox 文件系统,然后用 qemu 启动起来.而且我觉得用 qemu 调试时 gdb 的反应比较快,也没有一些奇奇怪怪的问题.所以推荐用 qemu 来调,如果是真实漏洞那 vmwar…
GDB分析ELF文件常用的调试技巧 gdb常用命令 首先是gbd+文件名 静态调试 ,gdb attach +文件名 动态调试 为了方便查看堆栈和寄存器 最好是安装peda插件 安装 可以通过pip直接安装,也可以从github上下载安装 $ pip install peda $ git clone https://github.com/longld/peda.git ~/peda $ echo "source ~/peda/peda.py" >> ~/.gdbinit 命…
栈溢出 一.基本概念: 函数调用栈情况见链接 基本准备: bss段可执行检测: ​ gef➤ b main Breakpoint at . gef➤ r Starting program: /mnt/hgfs/Hack/CTF-Learn/pwn/stack/example/ret2shellcode/ret2shellcode gef➤ vmmap ROPgadget ROPgadget --binary rop --only 'pop|ret' | grep 'eax' ROPgadget…
看门见码 #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> void getshell(void) { system("/bin/sh"); } void init() { setbuf(stdin, NULL); setbuf(stdout, NULL); setbuf(stderr, NULL); } void vuln() {…
这次 的D^3ctf 又是给吊打 难顶... 所以题都是赛后解出来的,在这感谢Peanuts师傅 unprintableV 看看保护: 看看伪代码,其实代码很少 void __cdecl menu() { char *a; // [rsp+8h] [rbp-8h] a = buf; puts("welcome to d^3CTF!"); printf("here is my gift: %p\n", &a); puts("may you enjoy…
0x00      Preview Last few passage I didn't conclude some important points and a general direction of the learning route of PWN. I browser some passages and finally I found one maybe suitable and reasonable for most PWN lovers: 0x01  Integer Overflow…
源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> void setbufs() { setvbuf(stdout, 0, 2, 0); setvbuf(stdin, 0, 1, 0); setvbuf(stderr, 0, 1, 0); } int main() { char tips[]="suuuuuuuper easy test."; char buf[32]; int…
Canary 参考链接:https://ctf-wiki.github.io/ctf-wiki/pwn/linux/mitigation/canary-zh/ 0x1 简介: 用于防止栈溢出被利用的一种方法,原理是在栈的ebp下面放一个随机数,在函数返回之前会检查这个数有没有被修改,就可以检测是否发生栈溢出了. 0x2 原理: 在栈底放一个随机数,在函数返回时检查是否被修改.具体实现如下: x86 : 在函数序言部分插入canary值: mov eax,gs:0x14 mov DWORD PTR…
Reference:L1B0 Re RSA256 春秋欢乐赛原题..flag都不变的 给了三个加密文件和公钥证书public.key,可以使用openssl进行处理 $openssl rsa -pubin -text -modulus -in ./public.key Public-Key: ( bit) Modulus: :d9:9e::::a6:d9:::4a:ba:: 5b:::d6:0a:7b:9e::0a:ff::1c::ec:: d5::eb Exponent: (0x10001)…
没做出来,wtcl,看了师傅们的wp才找到思路,收获了很多 怎么说呢,这个题很简单但是很巧妙,逆起来几乎无难度 漏洞点位于free函数,一个简单的UAF漏洞 然后接下来说说我一开始的思路 由于程序没有提供show函数,所以几乎可以确定要打_IO_2_1_stdout_,改掉flag然后泄漏libc 但是add函数里面只能申请小于0x60的chunk,根本找不到残留的unsorted bin留下的指针 然后,然后我就找不到思路了 然后学习了一波师傅们的wp 其实这个除了UAF还有一个小漏洞,就是可…
攻防世界welpwn (搬运一篇自己在CSDN写的帖子) 链接:https://blog.csdn.net/weixin_44644249/article/details/113781356 这题主要是考无Libc泄露地址和栈空间控制,在没有Libc的情况下,可以使用LibcSearcher进行动态匹配,匹配完成后会给出选项,选择libc的版本即可.如果不知道版本可以一个个试. 安装LibcSearcher git clone https://github.com/lieanu/LibcSear…
做pwn题时遇到程序使用了64位系统调用号:59和15,这里做一下记录 在线查询链接:https://syscalls.w3challs.com/ 分为32位和64位,链接中还有arm.mips等架构的系统调用号. 32位 cat /usr/include/asm/unistd_32.h #ifndef _ASM_X86_UNISTD_32_H #define _ASM_X86_UNISTD_32_H 1 #define __NR_restart_syscall 0 #define __NR_e…
PWN--ret2dl_resolve ret2dl_resolve是栈溢出中,底层且高级的一种利用手段,这里特此做一篇笔记学习一下. 个人认为,要掌握这种方法,自己去写demo来多次调试分析是不二法门. demo是XDCTF 2015的一道例题. #include<unistd.h> #include<stdio.h> #include<string.h> void vuln() { char buf[100]; setbuf(stdin,buf); read(0,b…
来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总). SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串.用惯onegadgets了,而对于32位程序来说,onegadgets似乎不太好用,条件太苛刻了.还是用system拿shell好一点. 我见网上都是打got表拿的shell,我是修改程序执行流程为system拿的shell. 修改0xffc2e7a8 -▸ 0xffc2e7b8为0xffc2e7a8 -▸ 0xffc2e79c 然后让0xffc…
week2一共有4道pwn题 killerqueen 有格式化字符串漏洞,题不算难,但是故事情节真实让人摸不着头脑,但是仔细分析分析,理清楚逻辑就可以做了. 第一次choose1的时候,可以输入0,泄露weather,第二次choose1的时候,就可以让v1==0xFFFFFFFE,进入if分支给s输入值.这里的s的栈地址和存在格式化字符串的栈地址是共享的,并且没有偏移. 这样就有两次机会使用格式化字符串,第一次先泄露libc地址,第二次用格式化字符串进行写操作.刚开始我是打exit_hook来…
因为以前做过一些题目,看见1分题目也不太多了,就想着,抓紧点把1分题都刷一下吧.所以开个帖子记录一下,题目简单的话就只贴exp了. [BJDCTF 2nd]secret 这里有一个输入可以进行溢出,name在bss段,下面有一个变量count 输入完名字会再次输入,会和一些值进行判断,如果能连续判断正确10000次,就可以拿到flag.这里每次判断正确一次,count这个变量会减一. 所以有两种做法: 1.将所有正确的值dump下来,然后写脚本,答完10000次,就拿到flag了. 2.将cou…
第一赛区 hacknote 程序存在格式化字符串漏洞和uaf,不多说了,很简单. 1 from pwn import * 2 3 p = process('./hacknote') 4 elf = ELF('./hacknote') 5 libc = ELF('./libc.so.6') 6 context.log_level = 'debug' 7 #by bhxdn 8 9 def duan(): 10 gdb.attach(p) 11 pause() 12 13 def add(size,…