babyaeg——自动化之途探析

访客3年前黑客资讯1113

babyaeg是强网杯的一道pwn。本题的情景不太普遍,一般的pwn一般出示binary,随后在远侧运行服务项目,由做题人将binary剖析清晰后,产生exp进攻远侧;本题则随机生成二进制文件,base64编号后发给做题人,在五秒以内,做题人务必出示Payload,立即开展进攻,假如五秒時间内做题人沒有取得成功随意代码执行,则联接关掉,一切重新来过。这就代表着,大家务必自动化地对binary开展剖析。

IO解决

做为本题的之一个流程,大家更先要看一下怎样与远侧开展互动:

Welcome to QWB BABYAEG-

I will send you a newly compiled binary (probably exploitable) in base64 formatafter you get the binary, I will be waiting for your input as a plain textwhen your input is given, I will execute the binary with your input as argv[1]you have 5 seconds to build exploit payloadhint: base64 -d 1.bin | gunzip > 1.elfwait…H52Qf4owMSIgQAAACBMmFADAB4CDCSGFMKAQiMKEsIJBvIjQIg4ACgBY3ABAAwCKCAkktMjRIsuVIi/CYCiTpkIEHAEMSKgSIRybCX 9ClgKAAOOZFy3Khw…

here, get this binary and give me some crafted argv[1]for explotationremember you only have 5 seconds… hurry up!time expired! bye!

大家获得的是一个base64编号后的字符串数组。为了更好地防止大段大段的编码数据,我将它省去了。即然是自动化剖析,大家务必获得充足多的样版,再从这当中寻找相同点。一个一个地拷贝编解码太dirty,我们要将自动化的观念应用究竟,挑选一个雅致的 *** ~~

from pwn import *

from ipdb import set_trace

import os

from exp import *

def getbinary():

p=remote('***.**.**.***', 40005)

tmp=p.recvuntil('wait...n')

res=p.recvuntil('n')[:-1]

print res

i=0

while True:

if os.path.exists('binaries/binary' str(i)):

i =1

continue

open('tmpbinary' str(i), 'w').write(res)

break

os.system('base64 -d tmpbinary' str(i) ' | gunzip > binaries/binary' str(i))

os.system('rm tmpbinary' str(i))

getbinary()

不断运作这一脚本 *** ,或是填加循环系统,大家就能在binaries文件夹下获得一堆binary。以供下面进一步剖析。

静态数据剖析

首先看程序流程基本资料:

本题沒有Stack Canary,沒有开PIE,这针对自动化剖析是十分友善的。不完美的地区取决于打开了NX,这代表着大家有可能必须自动生成ROP,可是后边大家将有简易的方式处理这个问题。

大家随意挑一个binary用ida开启,先观查一下到底是个哪些的步骤。依照国际惯例,首先看主函数:

__int64 __fastcall main(int a1, char **a2, char **a3)

{

__int64 result; // rax

unsigned int v4; // eax

int v5; // eax

int v6; // eax

int v7; // eax

char v8; //[rsp 15h][rbp-1Bh]

char v9; //[rsp 16h][rbp-1Ah]

char v10; //[rsp 17h][rbp-19h]

int i; //[rsp 18h][rbp-18h]

int v12; //[rsp 1Ch][rbp-14h]

int v13; //[rsp 20h][rbp-10h]

int v14; //[rsp 24小时][rbp-Ch]

int v15; //[rsp 28h][rbp-8h]

int v16; //[rsp 2Ch][rbp-4h]

if ( a1==2 )

{

v4=sub_26095B9(1LL, 2LL, 3LL, 4LL, 5LL, 6LL);

srand(v4);

dword_280BC5C=strlen(a2[1]) >> 1;

if ( dword_280BC5C 1000 )

{

v16=0;

v15=0;

while ( v16 2 * dword_280BC5C )

{

v8=a2[1][v16];

v9=a2[1][v16 1];

v10=0;

v5=v15 ;

__isoc99_sscanf(&v8, "hhx", &byte_280BF80[v5]);

v16 =2;

}

for ( i=0; i if ( (_BYTE)v14==29 && (_BYTE)v13==-6 && 61 * (_BYTE)v13 98 * (_BYTE)v14 - (_BYTE)v12==48 )

{

v6=v14 ;

v13=v6;

}

if ( (_BYTE)v14==-14 && (_BYTE)v13==12 && 17 * (_BYTE)v14 65 * (_BYTE)v13 - (_BYTE)v12==78 )

{

v7=v12 ;

相关文章

菜鸟大神和黑客比赛造火车(菜鸟专家黑客的比赛)

菜鸟大神和黑客比赛造火车(菜鸟专家黑客的比赛)

本文目录一览: 1、黑客帝国中矩阵世界、锡安(尼奥的现实世界)和火车站是否仍是机器制造的矩阵世界,而非现实世界? 2、搞笑对话 3、寻找一本关于黑客的小说,主角是一个学生,参加一个计算机比赛时...

关于黑客代号嚣张宝宝的小说(孩子是黑客的小说)

关于黑客代号嚣张宝宝的小说(孩子是黑客的小说)

本文目录一览: 1、介绍几本黑客类小说,除了禁区之门和天擎!~~~ 2、寻一部小说,女强,有一个天才宝宝,宝宝是黑客很厉害,宝宝的爸爸是 3、谁介绍几本有关黑客的小说! 4、大儿子是股市天...

成都商务儿每日在线预约生活状态联系方式卫紫萱

成都商务小学妹每日在线预约生活状态联系方式【卫紫萱】,上海是一座成功人士的聚集地,对商业模特的需求也是比较大的,今天明星商务分享模特访梦,年龄上海 男 37,婚姻:未婚,学历:本科,气质:成都商务小学...

淘宝上怎么找黑客服务

怎么在淘宝上找黑客,挺急的,给?我来答分享新浪微博QQ空间举报可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个。 解决办法只有立即更换淘宝账号密码。另在使用淘宝时请注意以下几...

2077委托黑客反被黑客误(2077 黑客反被黑客误)

2077委托黑客反被黑客误(2077 黑客反被黑客误)

本文导读目录: 1、《赛博朋克2077》的游戏特色有哪些? 2、《赛博朋克2077》角色技能点属性介绍? 3、2077刀剑用什么操作系统 4、2077黑客怎么一眼死三个 5、《赛博朋克...

黑客技术找回qq密码(黑客技术找密码教程 视频)

一、黑客技术找回qq密码(黑客技术盗qq密码教程 视频)方法总结 1、qq号盗了如何找回密码视频教程QQ启动单击“找回密码”按钮,QQ安全中心官网窗口时密码类型单击“账号密码”和“验证码”输入后,单...