夏令營write up

pwn1

簡單的棧溢出問題
在這裏插入圖片描述可以看出buf的位置可能存在溢出
在這裏插入圖片描述

pwn2

在這裏插入圖片描述這道題目和level3非常的相似,查詢保護checksec只開啓了NX保護 很明顯的棧溢出漏洞,但是沒有system函數和/bin/sh字符串了

libc是Linux下的ANSI C的函數庫。ANSIC是基本的C語言函數庫,包含了C語言最基本的庫函數。程序開始運行時,會把整個libc映射到內存中,此後在程序調用相關庫函數時,會依據plt-got表的機制,將所需的庫函數加載到內存空間的某個虛擬內存地址,然後調用時就會通過plt_got表輾轉跳至真正的函數內存地址處完成功能

在這裏插入圖片描述這道題目卡了很久一直沒辦法解決的原因竟然是接收處錯了!!!在這裏插入圖片描述
這是什麼令人難受的事情,自閉了。

Web easy audit1

https://blog.csdn.net/qq_41575340/article/details/90929634
在這裏插入圖片描述
代碼審計一下,發現:利用get傳遞四個參數,分別爲a1,a2,a3,a4。
其中$obstacle_1=is_numeric($a2) and is_numeric($a1);a1,a2必須爲數字,也可以通過 a1[]=3繞過
對a2的限制:if(!(intval($a2)<1024 and intval($a2+1)>1024)) exit("emmmmm"); 可以通過16進制或者科學記數法進行繞過
a3必須等於hash_hmac(sha256,$a2,$secret);
通過查閱資料發現hash_hmac()函數,如果加密的是一個數組則會返回false
通過控制a1的值,我們可以讓secret爲空,那麼‘secret爲空,那麼‘hmac`就可以控制了。
payload:

?a1[]=1&a2=1e9&a3=ccb3fd8a1db86958d3b3551964d5948dd90d002e8bc80077e951fbbeec9de120

這樣就得到flag了

MISC

這部分前五道題都很簡單,最後一道不會寫

REVERSE2

這裏要用到pyc在線反編譯https://tool.lu/pyc/工具

在這裏插入圖片描述
如下就是反編譯腳本

#!/usr/bin/env python
#encoding: utf-8
import base64
buf = base64.b64decode(‘dIJ/gINrYGlTj1ljj2Nfj2NdWWBcVW0=’) flag = ‘’
for i in buf:
i -= 16
i ^= 32
flag += chr(i)

print(flag)

所以這道題目就到了flag

CRYPTO baby’s baby rsa

這道題目是RSA密碼攻擊首先我們要了解基本的rsa攻擊方法

使用公鑰加密的數據,利用私鑰進行解密
使用私鑰加密的數據,利用公鑰進行解密

這道題目比較簡單是因爲公鑰和私鑰都已經給出來了,所以我們還可以直接筆算得出答案
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章