亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請幫助我理解這個 PHP hack,我怎樣才能繞過這個 re

請幫助我理解這個 PHP hack,我怎樣才能繞過這個 re

PHP
慕少森 2021-12-03 18:56:03
我找到了一個 php 代碼,它只能包含該主題的文件,但該文件包含數字。必須繞過此重新。我嘗試使用 file_put_contents 生成具有其他文件名的文件,但只有 index.html 中的代碼。PHP 可以運行。所以我認為只繞過這個重新,沒有競爭條件<?php     include_once("fl2g.php");  $filename = $_GET['filename'];  $filename = $_GET['content'];     if(preg_match("/[^a-z\.]/", $filename) == 1) {         echo "Hacker";         die();     }     $files = scandir('./');      foreach($files as $file) {         if(is_file($file)){             if ($file !== "index.php") {                 unlink($file);             }         }     }     file_put_contents($filename, $content );    ?>我希望繞過這個重新
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

正則表達式指出:“^”匹配不在集合“az”中的任何字符。(小寫“a”到“z”,和一個句號“.”)

Preg_match() 的返回值如果為假則為 1,如果為真則為 0。

if (preg_match("\[^a-z\.]\", "abc.xyz") == 1) 
// would return true(?) because preg_match() returns false , but false = 1; so it returns true. i think :/

那么它似乎刪除了目錄中的所有文件?

編輯:要在文件名中添加一個數字,您可以添加這樣的內容

$filename = "001".$filename; //makes "001ZZZ"

我對 php/regex 有點生疏


查看完整回答
反對 回復 2021-12-03
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

只需將數字添加到正則表達式。

if(preg_match("/[^a-z0-9\.]/", $filename) == 1) {


查看完整回答
反對 回復 2021-12-03
  • 2 回答
  • 0 關注
  • 205 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號