ctfhub技能樹—信息泄露—PHPINFO


打開靶機

 

 查看頁面,是PHP info界面

 

 只有這一個頁面,查找一下有沒有flag

 

 拿到flag

 

 

淺談ctf中phpinfo需要關注的點(轉自先知社區)

1 https://xz.aliyun.com/t/6131

首先我們先談談
php各個版本的的差異

php5.2以前

  • __autoload()加載類文件,但只能調用一次這個函數,所以可以用spl_autoload_register()加載類

    關於 autoload()函數,如果定義了該函數,該代碼就會被調用
    關於spl_autoload_register()函數:注冊給定的函數作為
    autoload 的實現
    當出現未定義的類時,標准PHP庫會按照注冊的倒序逐個調用被注冊的__autoload()函數

php5.2

  • 增加了json_encode(),json_decode()等,關於json的函數。

php5.3

  • 刪除了Register Globals
  • 新增了glob://phar://流包裝
    glob用來列目錄,繞過open_baedir
    phar在文件包含中可以用來繞過一些后綴的限制

  • 新的全局變量DIR

  • 默認開啟<?= $xxoo;?>,5.4也可用 //起止標簽
  • 增加了魔術方法 invoke()、callStatic():

    invoke():當嘗試以調用函數的方式調用一個對象時,invoke() 方法會被自動調用。
    callStatic():在靜態上下文中調用一個不可訪問方法時,callStatic() 會被調用。
    具體查看:php魔術方法

    • 三元操作符簡寫:可以省略第二部分,默認用第一部分代替
      舊 echo $a?$a:’hello world’;
      新 echo $a?:’hello world’;

關於一些封裝協議可以參考:

1 https://xz.aliyun.com/t/5535

php5.4

php5.5

  • 廢除preg_replace的/e模式(不是移除)
    當使用被棄用的 /e 修飾符時, 這個函數會轉義一些字符(即:'、"、 和 NULL) 然后進行后向引用替換。
    1 http://php.net/manual/zh/function.preg-replace.php
  • 不再支持Windows XP

php5.6

  • 定義常量時允許使用之前定義的常量進行計算:
  • 使用 ... 運算符定義變長參數函數
    參考:
    1 http://php.net/manual/zh/functions.arguments.php#functions.variable-arg-list

php7.0

1、十六進制字符串不再是認為是數字
2、移除asp和script php標簽

<% %>
<%= %>
<script language="php"></script>

3、在后面的版本中assert變成語言結構,這將意味着很多一句話不能使用。
目前經過測試,可使用的有。

call_user_func('assert', 'phpinfo();');

php7.1

1 http://php.net/manual/zh/migration71.new-features.php
  • 廢除mb_ereg_replace()和mb_eregi_replace()的Eval選項

php7.2

  • php 7.2大都是底層的更新,提高性能。沒有太大常用語法層面的更新,這里就略過了

php7.3

  • 添加了 array_key_first() 和 array_key_last() 來獲取數組的第一個和最后一個元素的鍵名
  • json_decode 添加了一個常量, JSON_THROW_ON_ERROR, 如果解析失敗可以拋出異常, 而不是通過之前的方法 json_last_error() 去獲取

接下來我們開始談正事ctfphpinfo中需要注意的點

system info 詳細的操作系統信息 確定window or linux
Registered PHP Streams and filters 注冊的php過濾器和流協議
extension_dir php擴展的路徑
short_open_tag <?= 和 <? echo 等價 允許php標簽為<? ?>形式
disable_function 禁用函數
open_basedir 將用戶可操作的文件限制在某目錄下
SERVER_ADDR 真實ip
DOCUMENT_ROOT web根目錄
_FILES["file"] 可以獲取臨時文件名字和路徑
session 可以查看session的相關配置
gopher 可以實現ssrf攻擊
fastcgi 查看是否開啟fastcgi和fastcgi的版本,可能導致解析漏洞、遠程命令執行、任意文件讀取等問題
allow_url_include和allow_url_fopen,都可以遠程包含文件
extension_dir php擴展的路徑
asp_tags 開啟后,才可以對asp標簽進行解析
magic_quotes_gpc 對字符進行轉義類似addslashes()
open_basedir 將用戶可操作的文件限制在某目錄下,可以繞過
libxml 2.9以前的版本默認支持並開啟了外部實體的引用,會導致XXE
opcache 當開啟了opcache並可以上傳文件時,可以在本地生成一個與服務器文件名相同的文件,並生成緩存文件xx.php.bin。上傳后惡意緩存文件會將服務器上的原文件覆蓋,從而getshell。
imap CVE-2018-19518
session 可以看session的存儲路徑,session包含可以用到
upload_tmp_dir 可以查看臨時文件存放的文件夾,但是文件名是隨機的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM