西湖論劍 Flagshop 分析復現

2022-06-24 02:39:08 字數 2946 閱讀 6316

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

<?php 

if(!isset($_cookie['

sandbox

']))

else

/proc/self/maps 包含了當前程序對映的記憶體區域以及他們的訪問許可權.檔案格式如下:

system函式結果:0x7ffff5f86590

?>

在linux2.2的核心及其之後,/proc/pid/exe是直接執行的二進位制檔案的符號鏈結.這個符號鏈結能夠被取消.嘗試開啟這個檔案就相當與開啟了二進位制檔案,甚至可以通過重新輸入/proc/pid/exe重新執行乙個對應於pid的二進位制檔案.在乙個多執行緒的程式中,如果主線程已經退出了,就無法訪問這個符號鏈結. 在linux2.0及其之前,/proc/pid/exe是指向當前程序執行的二進位制檔案.

<?php 

function 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 針對資料...