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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

題目



三個(gè)文件,都是perl寫的,Files存在上傳文件,它會(huì)將上傳的文件內(nèi)容打印出來

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

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抓包,然后將上傳的文件名和內(nèi)容復(fù)制一份粘貼,如下:

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

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

4、讀取flag文件

補(bǔ)充

1、何為/bin/bash -c?
/bin/bash -c表示指定將命令轉(zhuǎn)為一個(gè)完整命令執(zhí)行,可以理解為執(zhí)行l(wèi)inux命令
例:

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

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

注:經(jīng)測(cè)試,${IFS}和/bin/bash聯(lián)用時(shí),不代表空格,為啥,有大佬知道的可以告訴下,我之后也去查查資料,如果知道了,會(huì)更新。

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

總結(jié)

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

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