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攻擊方法
使用公鑰加密的數據,利用私鑰進行解密
使用私鑰加密的數據,利用公鑰進行解密
這道題目比較簡單是因爲公鑰和私鑰都已經給出來了,所以我們還可以直接筆算得出答案