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 ;
有这么容易让你找到的话还得了啊,给你知道就不是黑客了 1988年,美国芝加哥银行的网络系统就曾受到一名“黑客”的袭击,这名“黑客”通过电脑网络,涂改了银行账目,把7000万美元的巨款转往国外,从而给该...
严格来说,扬子江没有药代,所婴幼儿故事有销售扬子江药品的都是属于扬子江越国以鄙远经营总公司的,扬子江从事药品市场榨菜肉丝汤销售,推广,管理等总共有六千人左长城润滑油右,其中包含各子公司的,并。拯救...
本文导读目录: 1、《黑客帝国》全集哪个版本的蓝光碟最好?我想收藏! 2、黑客帝国电影的哪个版本最好看 3、黑客帝国第几部最好看? 4、黑客帝国有3部,哪部最好看?提些建议。 5、黑客...
引语: 11月11日,乒坛大满贯选手、多届奥运冠军张继科空降国民品牌金龙鱼携手家乐福打造的“无懈科击 健康是金”健康元气馆,化身一日馆长受聘担任金龙鱼奥运品质监督官,与现场消费者共同见证金龙鱼奥运品质...
小孩子上学,一般学校都不允许带手机,有点突发情况要联系孩子不是很方便。而且为了管控孩子的学习,许多家长也不会给孩子配手机。一些厂商纷纷推出儿童智能通话手表。KIDO就是一款儿童智能手表,下面友谊长存的...
前不久,一只欧洲鸽子被中国买家以160万欧元价格买下的新闻上了热搜,这只折合人民币1247万元的两岁鸽子,起拍价只有200欧元,之所以被推上高价,是因为两名中国竞拍者相互加价的结果。 在微博这条...