1. 程式人生 > >2017湖湘杯Writeup

2017湖湘杯Writeup

andro apktool lte .html 數據 任務 tex 分析 打開

RE部分

0x01 Re4newer

解題思路:

Step1:die打開,發現有upx殼。

技術分享圖片

Step2:脫殼,執行upx -d 文件名即可。

技術分享圖片

Step3:IDA打開,shift+F12看字符串。

技術分享圖片

點進去,F5看偽代碼如圖。

技術分享圖片

Step4:逆算法。點進sub_401080可以看到關鍵函數的算法。

技術分享圖片

是簡單的取字節異或,比較對象是v4-v14的值。

技術分享圖片

可以看到,這裏可以分成44個兩位16進制的數,並且順序與箭頭所指的數的大小有關。

Step4:得到flag。

pyhon腳本如下:

a = [0x45,0x43,0x4E,0x44,

0x13,0x4A,0x76,0x59,

0x71,0x4B,0x7D,0x51,

0x54,0x7D,0x63,0x7D,

0x7D,0x5B,0x50,0x11,

0x52,0x4F,0x4B,0x51,

0x70,0x7D,0x47,0x4E,

0x67,0x67,0x70,0x70,

0x7D,0x57,0x7D,0x67,

0x71,0x51,0x63,0x52,

0x5F,0x56,0x13,0x7D]

flag = ‘‘

for i in range(11):

for j in [3,2,1,0]:

flag += chr( a[i*4+j]^0x22)

print(flag)

0x02 簡單的android

解題思路:

Step1:直接apk_tool打開,點jadx,得到flag。

MISC部分

0x03 流量分析

解題思路:

Step1:直接打開,文件->導出對象->HTTP,可以看到flag.zip,保存下來。

技術分享圖片

Step2:flag.zip裏面有很多數字,目測是RGB,於是寫腳本形成圖片。

技術分享圖片

技術分享圖片

Step3:從上圖可以猜想圖片是寬為887,長為111。

腳本如下:得到flag。

#-*- coding:utf-8 -*-

from PIL import Image

import re

x = 887 #x坐標 通過對txt裏的行數進行整數分解

y = 111 #y坐標 x*y = 行數

im = Image.new("RGB",(x,y))#創建圖片

file = open(‘ce.txt‘) #打開rbg值文件

#通過一個個rgb點生成圖片

for i in range(0,x):

for j in range(0,y):

line = file.readline()#獲取一行

rgb = line.split(",")#分離rgb

im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb轉化為像素

im.show()

0x04 MISC200

解題思路:

壓縮包裏一個apk和一個疑似被加密的flag,先把apk拖到apktools裏看下源碼,

技術分享圖片

可以看到一個EncryptImageActivity,貌似有點用
可以看到很useful的函數

技術分享圖片


繼續往下看

技術分享圖片

這就是對文件進行加密的具體函數了,可以看到,使用key對文件逐位異或得到cipherText,聯系上面的關鍵函數,可以得知,這個程序的工作流程:

1選擇一個文件

2輸入密碼

3使用密碼的md5值對原始文件進行逐位異或

4將加密後的cipherText寫入新文件並輸出

由於異或的特性,使用password的md5值對已經加密的文件再次加密能夠得到原來的文件,所以我們的任務就是逆向找到password了!!

上一句劃掉

那麽麻煩幹嘛,扔到手機裏運行一下(才不說我專心逆向找password,怕手機被加密另開了手機分身運行應用呢),發現密碼已經是“記住”狀態了,把flag.encrypted扔進去點擊encrypt就會提示成功的創建了文件,只要提出來在Linux裏直接能顯示出圖片了。

技術分享圖片
Flag:

出題人你出來,自己選磚頭!神?字跡辨認

0x05 Misc300

解題思路:

Step1:文件是pxl後綴,於是上網搜了一下。

>>> import pickle

>>> f = open(‘pixels.jpg.pkl‘)

>>> print(pickle.load(f))

用這個腳本打開文件,發現是一堆坐標,聯想到是黑白圖片的坐標,出現的位置為1,否則為0。

技術分享圖片

Step2:將這堆數據處理成如圖形式,執行第二張圖片所示的代碼,可以得到一張圖片。

技術分享圖片

技術分享圖片

將所得圖片倒置反色得到如圖

技術分享圖片

可知是一個卡通人物,是熟悉的Bill Watterson創造的,於是得到flag{小寫名字}。

WEB部分

0x06 Web200

解題思路:

Step1:看到題目是文件上傳,於是構造payload試試。

技術分享圖片

Step2:

http://118.190.87.135:10080/?op=php://filter/read=convert.base64-encode/resource=flag

得到flag的base64編碼,解碼得到flag。

總結

1.這次的Re主要就試了一下脫殼,最後那道400分的pyc懟不出來....

2.Misc部分第一次做流量包分析的題目,也算學習了一波,這次有兩道題都是要用腳本或庫形成圖片的;

0x03是需要將所給的RGB值轉換成圖片,0x05是需要將坐標轉換為黑白圖片中RGB為0或1;這裏附上M4x大佬的博客http://www.cnblogs.com/WangAoBo/p/6950547.html

3.Web部分太菜了就搞了一道,文件上傳之前也看到過類似的題,在鈿神的提示下拿flag.php的內容就A了。

Tips:

Re和Misc題目 

鏈接:http://pan.baidu.com/s/1eSH9seY 密碼:wc0x

Upx脫殼和Apktool工具

鏈接:http://pan.baidu.com/s/1eRA72Ie 密碼:abch

作者: LB919
出處:http://www.cnblogs.com/L1B0/
該文章為LB919投入了時間和精力的原創;
如有轉載,榮幸之至!請隨手標明出處;

2017湖湘杯Writeup