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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

XCTF-高手进阶区:i-got-id-200

發布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XCTF-高手进阶区:i-got-id-200 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目



三個文件,都是perl寫的,Files存在上傳文件,它會將上傳的文件內容打印出來

沒接觸過perl,看了別人的wp,就簡單說一下,以后學了perl再來回味
因為它會將上傳的文件內容打印出來,所以猜測后臺存在param()函數
param()函數會返回一個列表的文件但是只有第一個文件會被放入到下面的file變量中。如果我們傳入一個ARGV的文件,那么Perl會將傳入的參數作為文件名讀出來。對正常的上傳文件進行修改,可以達到讀取任意文件的目的
大佬們猜的后臺代碼

use strict; use warnings; use CGI; my $cgi= CGI->new; if ( $cgi->upload( 'file' ) ) { my $file= $cgi->param( 'file' );while ( <$file> ) { print "$_"; } }

接下來就是payload了
1、先bp抓包,然后將上傳的文件名和內容復制一份粘貼,如下:

2、將filename刪去,內容修改為ARGV,讀取file.pl看看有什么(就猜它在/var/www/cgi-bin/下!)

3、根據返回的信息,可以肯定這里存在parm函數,然后我們利用bash來讀取文件,先看看/目錄下有哪些文件

4、讀取flag文件

補充

1、何為/bin/bash -c?
/bin/bash -c表示指定將命令轉為一個完整命令執行,可以理解為執行linux命令
例:

2、何為${IFS}?
$IFS是shell的特殊環境變量,是Linux下的內部區域分隔符。$IFS中存儲的值可以使空格、制表符、換行符或者其他自定義符號,可以在linux中使用${IFS}代替空格
例:

3、為什么要加|?
|:管道符左邊命令的輸出就會作為管道符右邊命令的輸入,這里為什么要加我也沒搞明白,如有知道的朋友評論告訴我,謝謝。
舉例一個常見的用法吧:
cat后輸出的內容,作為|后面內容的輸入,這里是交給grep執行

注:經測試,${IFS}和/bin/bash聯用時,不代表空格,為啥,有大佬知道的可以告訴下,我之后也去查查資料,如果知道了,會更新。

IFS更詳細的可以參考:https://www.jianshu.com/p/2d34ef30361b

總結

以上是生活随笔為你收集整理的XCTF-高手进阶区:i-got-id-200的全部內容,希望文章能夠幫你解決所遇到的問題。

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