原创 linux繞空格和字符

題目源碼 /?ip= PING 1 (0.0.0.1): 56 data bytes /?ip= |\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){ echo preg_match("/\

原创 XCTF-WEB—i-got-id-200:perl網頁文件+ARGV上傳造成任意文件讀取

打開頁面,發現是.pl後綴,百度了一下是用perl語言寫的,打開Files,發現是一個上傳界面     隨便上傳個文件發現上傳的內容會打印到頁面中     猜測後臺存在param()函數,param()函數會返回一個列表的文件但是隻有第

原创 思維導圖爆破

  沒有激活過點擊付費的功能會彈出如下圖所示:   第一步:載入OD後搜索字符串,搜索到字符串之後Ctrl+F搜索“Product Activated: MindMaster” 將cmp指令比較的值改爲1(cmp爲比較指令,會影響標誌位

原创 UNCTF2020-Reverse:re_checkin

檢查一下是64位程序,使用ida查看一下邏輯(輸入的Str1和程序的Str2相等就返回成功)    使用x64dbg在strcmp下斷點,直接查看flagStr2,發現Str2是flag(也可以直接在ida中查看Str2)  

原创 UNCTF2020-WEB:easy_upload(上傳繞過|apache|.htaccess解析)

打開題目鏈接,就是一個上傳界面,fuzz後發現過濾了一些字符,但是可以上傳jpg類型的文件        參考wp發現數據庫是使用的apche,並且開啓了htaccess配置文件 .htaccess文件(或者"分佈式配置文件")提供了

原创 UNCTF2020-WEB:easyflask(flask|sstl)

打開頁面提示要使用admin登陸       查找目錄發現了login和register fuzz發現註冊沒有檢查賬號存在,覆蓋admin然後使用admin登陸   返回首頁發現了提示 admin login success and c

原创 UNCTF2020-WEB:L0vephp(文件包含|iconv.utf-8.utf-16)

  題目給了提示說要獲取源碼,猜測是文件包含,fuzz後發現action參數能夠獲取/etc/passwd的內容 使用php僞協議獲取源碼,發現過濾了base64,於是構造exp如下    這樣看的話有點眼花,直接複製不行,在respon

原创 UNCTF2020-WEB:UN's_online_tools(%09替換空格|反斜槓繞過過濾字符)

打開頁面發現是一個ping功能的頁面,考慮使用管道符號執行命令 先fuzz測試一下過濾了哪些字符,發現過濾了flag,cat,*和空格等內容 我們使用linux的\進行繞過過濾字符,用%09代替空格(%09是在php環境下才能使用)  

原创 UNCTF2020-WEB:ezphp(array反序列化)

源碼: <?php show_source(__FILE__); $username = "admin"; $password = "password"; include("flag.php"); $data = isset

原创 UNCTF-WEB:babyeval(php執行運算符|php過濾括號|換行符繞過正則)

php執行運算符 代碼: <?php echo `base64 /etc/passwd`; ?>   上面的代碼使用了反引號,PHP 將嘗試將反引號中的內容作爲 shell 命令來執行,並將其輸出信息返回(即,可以賦給一個變量而

原创 UNCTF-WEB: easyunserialize(反序列化字符逃逸)

反序列化字符逃逸實驗 原理:利用字符串過濾使的原來序列化的讀取的s長度發生了改變(多出一個字符就能逃逸一個字符) 對於反序列化的語法來說,第一個右括號之後的字符都是作廢的 <?php function filter($str){

原创 UNCTF-WEB:俄羅斯方塊(wasm反編譯)

wasm(WebAssembly ) 打開頁面是一個俄羅斯方塊的遊戲。F12發現了提示,猜測要打到一定分數才能獲取到flag     觀察得知這是一個wasm的遊戲,F12下載wasm文件   linux下安裝wabt $ git c

原创 UNCTF-WEB:easyphp(sha1爆破|php複雜變量)

題目給出hint,訪問source得到源碼: <?php $adminPassword = 'd8b8caf4df69a81f2815pbcb74cd73ab'; if (!function_exists('fuxkSQL')) {

原创 UNCTF2020-crypto:easy_ras

附件: from Crypto.Util import number import gmpy2 from Crypto.Util.number import bytes_to_long p = number.getPrime(1024)

原创 UNCTF2020-crypto:signin

下載附件查看有兩個文件,加密腳本和密文: 加密腳本: import random from Crypto.Cipher import AES from os import urandom from string import printa