CTF知識點總結(一)


1.Bugku ctf 變量1

​ 此題所用知識為超全局變量,只需要將傳入的參數設置為$GLOBALS即可。

PHP 全局變量 - 超全局變量

PHP 中的許多預定義變量都是“超全局的”,這意味着它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。

這些超全局變量是:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

2.php的弱類型比較問題

​ 詳見https://www.cnblogs.com/Mrsm1th/p/6745532.html

3.php斷言(assert)

​ 詳見https://www.cnblogs.com/nixi8/p/7147122.html

4.php讀取目錄下文件的方法

​ scandir():讀取文件和目錄,以數組形式存儲

​ print_r():輸出

<?php
$dir = "/images/";

// Sort in ascending order - this is default
$a = scandir($dir);

// Sort in descending order
$b = scandir($dir,1);

print_r($a);
print_r($b);
?>

結果:

Array
(
[0] => .
[1] => ..
[2] => cat.gif
[3] => dog.gif
[4] => horse.gif
[5] => myimages
)
Array
(
[0] => myimages
[1] => horse.gif
[2] => dog.gif
[3] => cat.gif
[4] => ..
[5] => .
)

5.preg_match繞過

​ preg_match用於執行正則匹配。詳情見https://www.codercto.com/courses/d/852.html。返回 pattern 的匹配次數。 它的值將是 0 次(不匹配)或 1 次,因為 preg_match() 在第一次匹配后 將會停止搜索。preg_match_all() 不同於此,它會一直搜索subject 直到到達結尾。 如果發生錯誤preg_match()返回 FALSE。

另外有正則表達式語法:

​ 原文鏈接:https://blog.csdn.net/destiny1507/java/article/details/82429521

6.PHP中sha1()函數和md5()函數的繞過

sha1($_GET['name']) === sha1($_GET['password'])

這兩個函數比較時,由於無法處理數組,兩邊都會返回false,則相等,所以playload為?name[]=1&password[]=2。


免責聲明!

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



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