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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

无参rce

發布時間:2024/3/13 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 无参rce 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無參rce

前幾天比賽中遇到的一道題,get了無參rce的一種新的方法

121.196.32.184:12001

基礎繞過

訪問./3b8cf4731c36d20776c76e20f9c774c7.php

參考鏈接https://www.jianshu.com/p/7355a5ab4822

解碼提示

訪問得到一個php文件

html>$file=$_POST['file'];if($file!="/xxx")die("你需要知道寫入的文件名!!!!!我猜你知道到這個文件叫什么,記得加上絕對路徑");if(';'=== preg_replace('/[^\W]+\((?R)?\)/', '', $data)) {echo"great!!!!你需要看看源碼";file_put_contents($file,"");}</html>>

代碼非常清晰,首先

preg_replace('/[^\W]+\((?R)?\)/','',$_GET['code'])

代碼會將KaTeX parse error: Undefined control sequence: \W at position 21: …'code']中滿足正則/[^\?W?]+((?R)?)/的部分,替…_GET[‘code’]);否則什么都不做。那么思路很明確,我們弄清楚正則即可進行RCE

[^\W]+\((?R)?\)

首先是[\W],對于\W,其意思等價于[A-Za-z0-9_]。那么我們知道,我們的input必須以此開頭

然后是括號匹配( … )括號中間為(?R)?意思為重復整個模式。簡單理解,我們可以輸入以下類型a(b(c()))

但我們不能加參數,否則將無法匹配a(c,d)

所以正則看完,題目的意思非常明確了:我們只能input函數,但函數中不能使用參數,否則判斷句右邊經過替換,將不止剩余分號;

漏洞點分析

那么有沒有辦法通過無參數函數,達到RCE的目的呢?答案顯然是不可能的,沒有參數,怎么傳遞我們需要執行的指令呢?

所以我們的目標也變得很明確:通過我們傳遞的參數來進行RCE,有如下函數

get_defined_vars(),達到RCE的目的。

get_defined_vars()

此函數返回一個包含所有已定義變量列表的多維數組,這些變量包括環境變量、服務器變量和用戶定義的變量。

測試一下

然后將[“a”]=>string(10)"phpinfo();"提取出來,這里需要用到next();current();end();等相關函數具體看鏈接https://www.runoob.com/php/func-array-next.html

這里執行一下

執行命令

-wfqwopFX-1606457944243)]

執行命令

[外鏈圖片轉存中…(img-IsXa02vy-1606457944245)]

總結

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

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