- 博客(99)
- 收藏
- 关注
原创 hackme inndy reverse mov writeup
MOV instruction is turing complete! mov是图灵完备的! 说真的,第一次看到这题的时候感觉真的完全震惊。。。一大堆mov,还以为是把代码写到一个地方,之后跳到那里,但是debug的时候并没有。。。然后过了一阵子,在油管上无意中看到一个视频,讲的是怎么只用mov来写程序的。。。。然后想起这题。。。 看完那个视频之后,油管又推了一个怎么解这种movfusc...
2018-01-30 15:42:27 953
原创 实验吧 520app3 writeup
这道题在之前比赛的时候也遇到过,当时一脸懵逼……(虽然现在也是差不多首先先看看怎么动态调试so,这是教程http://blog.csdn.net/feibabeibei_beibei/article/details/52740212按着教程,把Debugger option的那三个选项给选上,之后也不用取消掉然后断在linker之后根据偏移找到.init_proc本来想跟下去
2018-01-25 19:04:59 977
原创 jarvis oj pwn hiphop writeup
这题真的感觉挺新颖的首先说下这题的漏洞是什么条件竞争!一开始我看到这题是懵逼的,为什么好像常规的下标越界,缓冲区越界之类的都没有 然后其中一个功能又非常奇怪,要开线程? 然后看到这个函数里面某个地方一大堆sleep,于是就猜是条件竞争了这题是打boss,然后每次都会随机一下出招,只要能预测出出招是什么就能防御 然后回想起以前打pwnable的一题,也是同样靠本地的时间与服务器
2018-01-24 16:24:43 380
原创 jarvisoj pwn inst_prof writeup
这题其实是google ctf的一道题 看到的时候完全震惊了。。。4字节shellcode。。。这要怎么弄啊 想了半天想不出,然后看了下别人的wp,又一次被震惊了,还有这种骚操作。。。在执行shellcode的时候,r14这个寄存器是不变的,所以可以用r14这个寄存器来存一些重要的东西然后就是怎么get到shell 呢?我这里来一套别的骚操作,不用别的wp里面的rop首先先来说
2018-01-23 20:52:50 737 2
原创 pwn jarvis itemboard writeup
这题真心坑。。。本地做出来了,但是连上服务器就不行,目测是堆地址中有一个\x00。。。。这题有几个漏洞第一个是,没有对new item 的大小做判断,可以越界直接rop 第二个是,delete_note的操作其实并没有用,只free掉了,但是array那里还存着地址,所以就可以uaf其实这题单纯uaf都可以做出来的,但是rop也可以用上来说下思路 1. 获取libc地址
2018-01-22 19:45:41 629 3
原创 jarvisoj pwn level6 writeup
考完试了,又开始做题这题是一道很好的用来熟悉堆的题首先先确定漏洞的地方是delete note漏洞有两个 1. 没有校验对应的堆是否有free 2. delete完之后没有把指向堆的指针清除所以可以利用double free,触发unlink,达到任意内存修改的目的具体怎么利用在https://www.cnblogs.com/0xJDchen/p/6195919.html
2018-01-21 22:12:54 1749 11
原创 hackme inndy pwn notepad writeup
做完这题就剩下最后一题了。。。。这题其实还是有点难度的先说下这题的漏洞在哪里在notepad_open这个函数里面,读取要执行哪一个函数的时候,没有验证范围,所以可以输入比a小的字符,执行上一个堆里的某个指针但是有了这个漏洞,怎么利用呢?参数只能是当前堆想了半天,终于想出来了先new 4个small bin,然后用这个漏洞free掉第三个堆,再用它给的delete not...
2018-01-03 19:08:41 429
原创 hackme inndy pwn tictactoe writeup
昨天立的果然是个flag。。。。还是忍不住做了这题ai其实很容易破,有个任意内存写,直接写到胜利就可以了但是怎么get shell呢?看了下,发现初始化的时候把一段地址设为可写了,那段地址存的是DT_SYMTAB之类的地址,所以很明显,这题是ret2dlresolve,那么怎么改呢?最快的方法是改DT_STRTAB,当执行到memset的时候,把它的字符串变为system,然后再将...
2018-01-03 11:48:10 545
原创 hackme inndy pwn veryoverflow writeup
这次是最后一题了,做完这题一定要去复习!!!!(立了个flag。。。这题有两种思路做,第一种是return2dl_resolve 第二种是泄漏libc,rop运行system(‘/bin/sh’)因为想完美一点,所以一开始写的是第一种,写完了,在本地get到shell了,连到服务器,结果不行,一看,栈的地址开头是ff,这个也代表eof。。。不吐槽了,现在来分别说下两种思路是怎么做的其...
2018-01-02 21:47:51 563
原创 hackme inndy pwn stack writeup
这题看起来很恐怖,所有保护都开了,但是其实并没有想象中难这题先pop 两次,再push回去一个,然后再push下标,就可以直接绕过canary,把ret的地址给leak出来再减去libc里面的__libc_start_main偏移,再把低三位给清零就得到libc基址之后就是常规rop了,这里直接执行system(‘/bin/sh’)下面就是利用的代码from pwn imp...
2018-01-02 15:55:58 486
原创 hackme inndy pwn leave_msg writeup
感觉有点做题做上瘾了。。。。。拿到程序,首先checksec看下开了什么保护,发现没开nx,但是开了栈溢出检测,然后又有堆,明显是把shellcode放堆里面去执行然后看了下,下标检查那里可以加个空格绕过,可以修改got表里面的函数为堆的值,调用函数的时候就会执行堆里面的shellcode但是这里有一个长度判断,大于8就会截断,放不了一般的shellcode这里绕过就比较骚了,首先...
2018-01-01 22:43:50 415
原创 hackme inndy pwn rsbo writeup
因为rsbo和rsbo2是同一题,所以就直接做rsbo2了首先看看程序 init函数那里用时间和flag生成了一个seed,所以不能预测rand产生的值 然后是读了0x80个byte,这里有一个栈溢出但是接下来那个for循环就有点棘手了,想了半天想不到,就去看了下别人的wp,发现是送了104个字节的\x00,这里这样做的原因是当修改到v8的值的时候,可以修改为0,这样就跳出for循...
2018-01-01 20:36:24 644 2
原创 hackme inndy pwn raas writeup
继续做题,之前一直对堆不是很熟,这次特地做一道堆的题来练手首先题目给了提示,是一道UAF可以看到,有3个操作,一个是新建,一个是删除,一个是展示删除和展示如上,新建的代码太长,我就简述下功能吧1.选择类型,数字还是字符串 2.如果是字符串,要输入长度 3.输入内容内存的操作是,先new了一个大小为12的堆,前8位放的是用于展示的函数指针和用于删除的函数指针 如...
2017-12-31 23:08:16 381 1
原创 hackme inndy pwn onepunch writeup
继续来做题目,这次的pwn主要功能是一个任意地址写一个字节,然后就结束。。。。然后找了半天。。。完全没思路。。。一个字节只能写一次。。。。然后找了下别人的wp,发现代码段居然可以写,那骚操作就可以有很多了这里比较写入的字节是否为255,是的话就输出No flag for you jnz loc_400773二进制是\x75\x0a 0a是偏移,我们只要把这个弄成负数,就可以...
2017-12-31 14:10:09 515
原创 hackme inndy pwn echo2 writeup
这题做了好久。。。但是学到了很多很骚的思路做完echo1 ,然后看了下echo2,本来以为只是简单的从32位变成64位,但是发现坑贼多。。。。首先,用checksec看了下,发现开了pie。。。那就不能简单的改got表,还要用格式化字符串漏洞来泄漏出一个指向程序本身的指针第二,因为是64位系统,所以一个地址是8个字节,但是这里实际只有6个字节是有内容的,有两个字节是00,所以就不能用p...
2017-12-30 23:00:42 866
原创 【逆向学习】还是代码 writeup
这是jctf2014的一道题首先用工具查出来关键的函数是sub_401430看了下,大概逻辑是用pass1对在0x422000地址一顿操作,具体操作是取两个字节,比如说第三四个字节,0xc3,0x2将0x2左移八位,然后加上0xc3,得到的结果传进sub_4011A0sub_4011A0的参数有三个,第一个是上面得到的结果,第二个是pass1,第三个是1517函数的代码如下 写段python
2017-12-22 11:44:01 733
原创 【逆向学习】 拯救地球 writeup
这是16年的国赛的逆向,话说这名字感觉真有点中二。。。。首先反编译了一下class文件,看了下,并没有什么重要的东西,只是调用了native函数然后反编译下so文件首先看了下JNI_Onload函数 看起来注册了一个native函数,进那个函数看下然后按alt+G把值改为1,设为code16模式看了下大部分都是各种反调试,还有提取资源比较有用的是sub_2B40里的sub_1760这三个函数的作用
2017-12-20 20:42:43 791
原创 【逆向学习】暗号 writeup
这是16年国赛的一道题,以前做过一次,现在又重新做一下,做完这题感觉到。。。单纯靠脑子来跑程序真心不可靠,还是copy下再run下观察结果来得实际点首先看下check函数 在WeAretheChangPingPeople这个函数里面,在5555端口监听信息,然后与hhxptgdlffojwztpewc比较接下来看下NowYouSeeMe这个函数 开头的一大段连接5555端口之类的就不看了,我们来
2017-12-20 13:25:49 762
原创 【逆向学习】 maze writeup
这题是16年的国赛逆向题目main函数如下 首先调用了两个函数来初始化,这里应该是初始化了一个22x22的矩阵看下下面的验证函数 看了下,这里应该是一个走迷宫,从0,0走到21,21,一次只能往上下左右走,而且这一次向左右走了,下次只能往上下走那么卡个断点,把矩阵给扒出来,之后跑个dfs只能跑出来答案下面是dfs的代码b=[0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,
2017-12-19 15:34:59 755
原创 实验吧 此处无声 writeup
无聊又刷了一下实验吧,把很久之前没做出来的此处无声做出来了首先用ida打开,明显是有壳的,用侦壳工具查了一波,没查出什么壳。于是尝试手动脱一波,但是能力不足,还是没脱成功,但是用GetWindowText等函数断点断了一波,断在了一个比较明显的处理函数上面,于是直接把这个函数开始当oep直接dump下来。dump下来之后,用ida打开,看了下比较重要的就是那个memcmp那里,看起来就是比较结果的动
2017-12-05 21:35:06 1188 2
原创 jarvis oj DebugMe writeup
话说这题真的是玄学做出来的。。。首先看一波main函数sub_A30这里是fork了一个子进制,然后调用ptrace post了一些东西到子进程那里然后这里就是异或了一波输入的东西接着在下面看到有这个东西,也是输入异或了一波这里的判断条件有点看得不是很懂,这里也不多说。。。免得误导这里插了一个breakpoint,目测就是跟上面子进程那里有关在sub_c14里面就是主要的判断逻辑的地方v3就是传进
2017-11-27 14:04:11 597 1
原创 Jarvis oj 文件数据修复 writeup
感觉这题把逆向玩成了misc。。。。首先用mfc工具找到处理解密的函数看了下代码,是把输入的密码一顿操作之后生成16位的key然后用这个key异或一波文件的内容,异或完一次之后+1但是关键是我们不知道密码是什么。。。虽然提示了8位纯数字,但是爆破依然很浪费时间于是就发呆看着屏幕。。。结果看到有几列东西是每一列+1。。。于是大胆猜测全部都是0,这些就是key加了n异或后的结果于是写个脚本,解出文件,b
2017-11-25 20:40:46 409
原创 jarvis oj 软件密码破解-3 Writeup
打开软件,首先用mfc工具找一下那几个按钮的处理函数发现确定按钮默认是不能点击的,看了下函数,发现要输入字符长度为16,且只包含A-F和0-9先输一下16个1,找了几个比较可疑的函数下断点,发现有个函数断成功了sub_401B80首先是调用了一个函数,对输入的字符处理一波,然后在后面一长串判断条件里面判断处理后的东西是否是对的这里很简单就能解出这八个字符的ASCII码是 119,51,49,108
2017-11-25 19:14:12 574 2
原创 juckcode writeup
这是某市的大学生ctf比赛里面的题,本来看着分值只有200,想着应该不是很难,结果弄了我几个小时。。。。首先用ida打开,扫了一下,发现有些地方反编译不出来,应该是花指令,用ida手动修了几个,发现只有两种花指令,而且格式都一模一样,那直接写个脚本来去花指令吧a=b'\x8B\xEC\x6A\xFF\x68\x33\x22\x11\x00\x68\x11\x22\x33\x00\x64\xA1\x0
2017-11-09 09:07:16 647
原创 斐讯k2 padanva 通过 h3c/inode 验证
坐标为中大东校,其他学校没有测试编译好的文件可以在此处下载 sysuh3c把文件上传到 /etc/storage 用putty ssh到路由器上面,然后依次执行下面的命令cd /etc/storagechmod 777 sysuh3c./sysuh3c -u 用户名 -p 密码 -i eth2.2 -d如果想了解更多的东西,例如怎么编译的,可以到我github上面去看
2017-10-10 16:00:29 2555 7
原创 elementary os 中文输入法安装
在网上看了n多个版本,但是实际操作起来发现一个都不行,最后还是靠自己解决了首先,ibus其实卸不卸载都没关系,实际上也不会出现冲突接着,安装fcitx1 添加软件源sudo add-apt-repository ppa:fcitx-team/nightlysudo apt-get update2 安装fcitx和google拼音sudo apt-get install fcitx fcitx-
2017-08-10 08:14:54 7249 1
原创 elementary os 登录后卡死解决办法
此方法只针对由于双显卡而导致的卡死启动电脑,进入elementary 的grub启动,就是那个第一个选项是elementary ,下面是advanced option(大概是这样吧。。) 的那一个界面,在第一行按下e进入编辑界面,在倒数第二行,就是以linux开头的那一行,在最后加个空格,然后再加上nouveau.modeset=0 然后按下F10,之后登录就能顺利进入进入之后找显卡驱动安装
2017-08-10 08:07:09 3081
原创 libcrypto.so.1.0.0: cannot open shared object file: No such file or directory解决方案
因为有些程序用到openssl1.0.0库里面的md5,但是apt-get install openssl1.0.0也不行,到官网找源码编译也失败,一度接近放弃的时候,找到debian上面的openssl的安装包,安装之后发现竟然可以了,下面给出链接和安装命令 下载地址 安装命令 dpkg -i libssl1.0.0_1.0.2l-1-bpo8+1_amd64.deb
2017-07-30 20:56:30 21929
原创 格式化字符漏洞 tamuCTF pwn3 writeup
之前一直不怎么会格式化字符串的漏洞,刚好碰上这道题,学习一波首先看下main函数,读一个字符串,然后打印出来,之后直接exit(0) 无法利用栈溢出跳转,但是prinf是直接打印读取的东西,这里就存在一个格式化字符串漏洞。 这里推荐一个格式化字符串漏洞入门的教程: http://codearcana.com/posts/2013/05/02/introduction-to-format-stri
2017-06-05 10:42:30 1034
原创 writeup-Crack Me If You Can
PoliCTF 2015: Crack Me If You CanCategory: Reversing Points: 100 Solves: 196 Description:John bets nobody can find the passphrase to login! GPG key: viphHowrirOmbugTudIbavMeuhacyet’ crack-me-if-you-c
2017-05-16 19:26:52 652
原创 writeup--echo server
最近在做逆向的题,在xctf实训平台上找了一下,挑了个比较简单的来做 题目描述: Input the secret, output the flag. 下载地址 下载之后发现是elf,先拖ida里面看一下,发现很多个函数都识别不出来,都是出现call xxxxx+1的情况,这个很明显就是插入了E8或者其他东西造成ida识别错误, 首先看一下main函数 有一个loc_80487C1+3,
2017-05-10 09:30:21 337
原创 supervisor 在python3下的简易解决方案
最近在弄一个简单的服务器,部署的时候发现supervisor不支持python3,但是我用的django又不支持python2,然后发现有virtualenv这个神器,下面就来介绍怎么在python3的环境下用virtualenv吧1. 安装pip install virtualenv2. 部署好服务器我用的是nginx+django 这里就不详细讲了,网上有许多教程这个教程是我觉得比较好的 ht
2017-03-06 11:50:51 15478 4
原创 腾讯云服务器--django安装及基本配置
首先我们要重装一下系统,选择有mysql的系统,这样后面就不用再安装mysql了然后输入以下的语句,看下python的版本,假如是3.4或者以上就话就可以跳过python安装的步骤python -V如果不是3.4或以上的,去官网下载python3.4的压缩包,然后用ftp管理软件传输过去,速度比在服务器里面下要快得多下载完压缩包之后,依次在控制台下面的命令, 如果压缩包的名字不同记得更改tar -x
2017-03-03 22:21:27 4304 3
原创 数据结构-散列表 哈希表
最近在看《数据结构与算法》,看到散列表这一章,之前一直听说过哈希表,但是一直不知道它怎么解决冲突的问题,现在看完之后才发现原来是用邻接表来解决冲突的问题下面是具体的实现
2017-03-02 14:02:34 455
原创 数据结构--AVL树
最近在看《数据结构与算法》,边学边实现一下里面的数据结构,之前实现了一个比较简单的二叉搜索树,平均搜索速度为O(logN),看起来很快,但是很多时候是达不到这个速度的,因为他会经常构造出深度比较大的树,搜索的时候就很麻烦,然后后面就提到了AVL树,这个同样也是一个二叉搜索树,但是这个二叉树会通过左旋和右旋来平衡二叉搜索树,使其保持两边高度尽量平衡的状态,搜索起来就比较快了,下面是具体的实现
2017-03-01 08:34:55 235
原创 数据结构--二叉查找树
最近在看《数据结构与算法》,学到二叉查找树,它有一个性质就是对于节点X,左子树中所有的值都小于X的值,有子树中所有的值都大于X的值,有了这个性质,寻找一个树就非常方便,所需时间只要O(logN),比一般的朴素搜索O(N)快很多,下面就给出二叉查找树的实现#include using namespace std;struct Node{ int value; No
2017-02-28 15:58:22 200
原创 数据结构-表达式树
《数据结构与算法》学到树那章,看到有表达树这样东西,于是实现了一下,但是目前暂时不支持括号实现那里借用了之前将中缀表达式转换为后缀表达式的代码,输入中缀表达式,然后后缀表达式和中缀表达式(中缀转后缀再转中缀。。。)#include #include #include using namespace std;struct Node{ int num;/
2017-02-26 21:26:20 578
原创 中缀表达式转换为后缀表达式 简易实现(c++)(简易表达式计算)
最近在学数据结构,看《数据结构与算法分析》来自学,在看到表 栈 队列这一章的时候发现后缀表达式这个比较好玩的东西,因为以前计算表达式的时候都是直接对中缀表达式进行处理,而且比较麻烦,现在有了后缀表达式的话就比较简单了,下面就是c++的实现#include <iostream>#include <stack>using namespace std;//返回各个符号的优先级,数字最大int pr
2017-02-26 19:20:29 7710 4
原创 writeup--RedTiger's Hackit
RedTiger’s Hackit第一关首先点进Category 1 网址后面跟了?cat=1,很明显是一个sql注入 看了下还给了表名。。Tablename: level1_users 构造了下 https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,username,password from le
2016-12-19 23:46:13 4194 2
原创 writeup-woo
题目如下My friend let me play this sick game. Can you get the hidden flag?Challenge hosted at: 104.196.15.126:15050附件下载把附件下载下来,首先扔进IDA,查了一遍,发现有一个函数pwnme和另外一个函数是用来读文件的,在菜单输入数字4919就可以进入pwnme函数。扔进linux,用gdb试了
2016-12-11 09:32:13 240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人