title: 西湖論劍 flagshop 分析復現
date: 2020-10-13 13:12:04
tags: ctf
pwn綜合練習(三)
實驗:pwn綜合練習(三)(合天網安實驗室)
ctf pwn高階訓練實戰,基於兩次緩衝區溢位來獲取伺服器控制許可權。
backend.php
<?php$offset = isset($_get['
offset
']) ? $_get['
offset
'] : 0
;$buffer = isset($_get['
buffer
']) ? $_get['
buffer
'] : ""
;if (isset($_get['
writefile
']))
if (isset($_get['
readfile
']))
?>
index.php
<?phpif(!isset($_cookie['
sandbox
']))
else
/proc/self/maps 包含了當前程序對映的記憶體區域以及他們的訪問許可權.檔案格式如下:system函式結果:0x7ffff5f86590
?>
在linux2.2的核心及其之後,/proc/pid/exe是直接執行的二進位制檔案的符號鏈結.這個符號鏈結能夠被取消.嘗試開啟這個檔案就相當與開啟了二進位制檔案,甚至可以通過重新輸入/proc/pid/exe重新執行乙個對應於pid的二進位制檔案.在乙個多執行緒的程式中,如果主線程已經退出了,就無法訪問這個符號鏈結. 在linux2.0及其之前,/proc/pid/exe是指向當前程序執行的二進位制檔案.<?phpfunction packlli($value)
function unp($value)
function parseelf($bin_ver, $rela = false
) elseif(!isset($strtab_off) && $sh_type == 3)
elseif($rela && $sh_type == 4)
}if($rela)
if($name == '
open') }}
else
if($name == '
__libc_system')
if($name == '
__open')
}return
array($system_offset, $open_offset);
}}$open_php = parseelf('
exe', true
);//
$maps = file_get_contents('lib.txt');
//$pie_base =(hexdec(explode('-', $maps)[0]));
echo $open_php;
//結果:15333784
?>
/proc/self/mem是程序的記憶體內容,通過修改該檔案相當於直接修改當前程序的記憶體。該檔案不能直接讀取,需要結合maps的對映資訊來確定讀的偏移值。即無法讀取未被對映的區域,只有讀取的偏移值是被對映的區域才能正確讀取記憶體內容。2019西湖論劍預選賽部分WP
點進鏈結發現提示 include get file 估計是檔案包含漏洞 嘗試包含index.php,發現一串base64編碼,解碼得到 a get file if a echo include get file if strpos flag a false include a 繼續解碼hint,得到...
西湖論劍2019 msc之奇怪的TTL
msc1給了一串很長的ttl字元,參考一些隱寫的文章,猜測是在ttl中藏了資訊,題目是這樣的 我們截獲了一些ip資料報,發現報文頭中的ttl值特別可疑,懷疑是通訊方嵌入了資料到ttl,我們將這些ttl值提取了出來,你能看出什麼端倪嗎?文字開啟,ttl有29萬行 s分析一波之後發現一共有四種ttl值 ...
Nhibernate分析之華山論劍篇
原來一直使用 生成,包括code ith和天平兄的codematic。最近打算系統學習一下nhibernate,經過簡單的一點探索,發現orm和 生成真是個有千秋。本文側重比較一下orm和 生成二者的優缺點,讓二者華山一比高下,目的為去偽存真,使二者能夠相輔相成。從而更好的提高開發效率。1 針對資料...