Windows下配置shell

Posted on 2018, Apr6, Friday 01:49:47 • Tagged with windows

众所周知,windows下的cmd就是一坨屎,不好用还不好看,今天终于下了决心抛弃cmder,和gitbash,重新配一个好用的shell

搜了一圈东西,决定使用ConEmu + Babun

ConEmu配置

1. 下载安装conemu

直接看文档装就好了

https://conemu.github.io/

2. 把背景换成老婆

看着老婆写代码才是最快乐的!

3. 去掉丑陋的状态栏

去掉前:

去掉这zz玩意:

4. 去掉丑陋的标签页

5. 按键配置

复制改为Ctrl+Shift …


Continue reading

[0CTF-2018] blackhole

Posted on 2018, Apr2, Monday 23:16:42 • Tagged with 0ctf-2018, ctf-pwn, pwn-stack

分析

日哦,一看这题,64位,只有一个read有溢出,syscall禁用了一堆,只留下 open,read,,mprotect,,exit,拿头做题。(懒得放图了,没啥意思)

难道又要将mprotect的地址解析出来去调用???

等等,这题有libc,为啥有libc呢

开了一晚上的脑洞后,惊讶的发现了一件事情:

最后1byte为0x80时,指向的是alarm,如果是0x85就是syscall!

只需调用read,覆写alarm的got表的最后1byte为0x85,就可以通过syscall调用mprotect了!

啥,x64不会调用3个参数的函数?init函数的那几个gadget了解一下

就这样很轻易的让bss段变成可执行的了 …


Continue reading

ret2_dl_runtime_resolve

Posted on 2018, Apr2, Monday 23:07:46 • Tagged with pwn, pwn-stack

附录

ret2_dl_runtime_resolve: https://ctf-wiki.github.io/ctf-wiki/pwn/stackoverflow/advanced_rop/


Continue reading

[0CTF-2018] babystack

Posted on 2018, Apr2, Monday 22:44:15 • Tagged with 0ctf-2018, ctf-pwn, pwn-stack

分析

这题,开门有惊喜

整个题就一个read,也只有这有一个溢出点,然后,啥都没了。

emmmmm,同学,你听说过安利吗(雾)

不对,你听说过got表吗,好的,听说过

那,同学你 听说过解析解析got表的函数嘛,就是把动态链接库的函数地址写到got表里面的家伙

emmmmmm,这啥啊,咋回事啊(黑人问号.jpg)

那么,ret2_dl_runtime_resolve 了解一下吧

好的,你已经了解了ret2_dl_runtime_resolve,那么这个题就变得十分简单了 …


Continue reading

[0CTF-2018] writeup-list

Posted on 2018, Apr2, Monday 22:41:02 • Tagged with ctf, 0ctf-2017

1. Reverse

2. PWN

babystack: [0CTF-2018] babystack

blackhole: [0CTF-2018] blackhole

3. Crypto

4. MISC

5. Web

附录

NULL


Continue reading

ptmalloc总结

Posted on 2018, Mar22, Thursday 15:09:34 • Tagged with pwn, heap

花了几天看了一下ptmalloc的源码,同时也解答了心中的一些疑惑,一些关键的流程,以及一些利用技巧在这总结一下

malloc

malloc的源码在malloc.c中,推荐搜索注释 ---- malloc ,_int_malloc为malloc的本体

malloc流程如下:

// av为当前堆的arean的指针 nb为申请的大小被转换为chunk大小

if (av == NULL) //  如果是main_arean则在第一次malloc就被初始化了,不会在这初始化
  return sysmalloc(nb, av);

if (nb <= global_max_fast) { //global_max_fast是glibc中的一个全局变量
  // 如果有fastbin则脱出fastbin并返回
}

if (in_smallbin_range (nb …

Continue reading

[XDCTF-2017] easyeasy

Posted on 2017, Oct6, Friday 18:16:27 • Tagged with xdctf-2017, ctf-pwn, pwn-stack

分析

拿到题目后F5,发现是个菜单题,并且给出了libc

linux下如何加载指定的so文件,可以见: Linux 加载动态链接库原理分析

先挑重点说吧

sub_400B4B

在这里 qword_6020D0 这个全局变量被分析出了奇怪的语法

考虑它是一个结构体一样的东西,根据F5手动创建一个结构体

创建后F5便正常了许多

在阅读源码后可以得知,在执行 sub_400985 时可以将 fun4 的最后一个byte重写,也就是说在

(*(void (**)(void))(*qword_6020D0)->fun4)();

可以执行到 0x400A**

在翻看汇编代码时发现 …


Continue reading

Linux 加载动态链接库原理分析

Posted on 2017, Oct6, Friday 17:39:58 • Tagged with pwn

挖坑待填

从指定目录加载动态链接库

只需要设置 LD_LIBRARY_PATH 这个环境变量即可

若是希望后面的程序都优先从该目录加载,可以执行下面的命令

export LD_LIBRARY_PATH=/home/plusls/Desktop:$LD_LIBRARY_PATH

其中 /home/plusls/Desktop 为so文件所在的目录

注:这样设置后 pwntools 起的进程也会继承该环境变量,加载此libc


Continue reading

科学使用 IDA

Posted on 2017, Oct6, Friday 04:27:05 • Tagged with ida

ida作为工业级的逆向分析工具,尤其是其F5这个让人增寿的东西,若是正确使用,则可以为分析者节省下大把时间。

注 :本文默认IDA版本均为IDA7.0以及以上

解决堆栈平衡,花指令

在如下文章有详细介绍

[XDCTF-2017] destory

IDA python

挖坑待填

插件

1. Python_editor

在IDA中编写python脚本简直反人类,若是需要运行一个python脚本还是比较麻烦的,打上了这个插件后可以很方便的编写以及运行python脚本

安装
  1. 安装需要 Qscilla 模块,具体的安装比较复杂,作者已经帮忙打包好了一个装好所有依赖的python,需要从该链接下载 Pyqt5 ida …

Continue reading

[XDCTF-2017] destory

Posted on 2017, Oct6, Friday 04:21:20 • Tagged with xdctf-2017, ctf-reverse

分析

最开始的话

本题会对注册表进行修改,请自行nop掉该函数或者放到虚拟机运行

main函数

拿到题目拖进ida,发现main函数无法f5,提示这个地方不是个函数

当手动创建函数时提示 *The function has undefined instruction/data at the specified address. *

这是因为ida无法识别这个函数的开始和结束

这时只需要从main函数开始一直选中到retn,这时这片区域都变成了灰色

按下p后函数便创建成功了,此时main函数内部也从红色变成了黑色。

但是f5的结果却非常的奇怪

到汇编一看,是因为在 0x4015F5 附近加了花指令

手动 …


Continue reading