實驗吧-你真的會php嗎

你真的會php嗎

原題鏈接

http://ctf5.shiyanbar.com/web/PHP/index.php

分析

burp抓包看到響應頭中有一個hint伺通。
hint: 6c525af4059b4fe7d8c33a.txt

得到源碼

<?php


$info = ""; 
$req = [];
$flag="xxxxxxxxxx";

ini_set("display_error", false); 
error_reporting(0); 


if(!isset($_POST['number'])){
   header("hint:6c525af4059b4fe7d8c33a.txt");

   die("have a fun!!"); 
}

foreach([$_POST] as $global_var) { 
    foreach($global_var as $key => $value) { 
        $value = trim($value);  #去除空白字符串
        is_string($value) && $req[$key] = addslashes($value); #如果value是字符串掂骏,將特殊字符加上反斜杠土浸,轉(zhuǎn)義
    } 
} 

// 判斷是否是水仙花數(shù)(回文數(shù))
function is_palindrome_number($number) { 
    $number = strval($number); 
    $i = 0; 
    $j = strlen($number) - 1; 
    while($i < $j) { 
        if($number[$i] !== $number[$j]) { 
            return false; 
        } 
        $i++; 
        $j--; 
    } 
    return true; 
} 


if(is_numeric($_REQUEST['number'])){
    
   $info="sorry, you cann't input a number!";

}elseif($req['number']!=strval(intval($req['number']))){
      
     $info = "number must be equal to it's integer!! ";  

}else{

     $value1 = intval($req["number"]);
     $value2 = intval(strrev($req["number"]));  

     if($value1!=$value2){
          $info="no, this is not a palindrome number!";
     }else{
          
          if(is_palindrome_number($req["number"])){
              $info = "nice! {$value1} is a palindrome number!"; 
          }else{
             $info=$flag;
          }
     }

}

echo $info;

代碼不算難懂姐军,邏輯上判斷一個POST的數(shù)要滿足下面四個條件:

  1. number要是字符串,而不是數(shù)字
  2. number變換為整型再變換成字符串要和原來number相等
  3. number不能是一個水仙花數(shù)
  4. number反轉(zhuǎn)要和原來相等

條件1和2矛盾吧恃,3和4矛盾嫡良。

下面有兩種辦法解決:

  1. number=0e00%00或者number=0e00%20
    %00表示空字符,%20表示空格本谜,這樣滿足了字符串初家,相等。
    由于0是反轉(zhuǎn)還是0,3,4也滿足溜在。
  2. 利用函數(shù)溢出的方法
    number=2147483647%00
    從這一個題目里面學到一個新點
    那就是Intval最大的值取決于操作系統(tǒng)陌知。
    32位系統(tǒng)最大帶符號的 integer 范圍是 -2147483648 到 2147483647。舉例掖肋,在這樣的系統(tǒng)上仆葡,intval('1000000000000') 會返回 2147483647
    所以在第三個條件的時候翻轉(zhuǎn)變成7463847412再變成整形也是2147483647志笼,繞過第三個條件沿盅,第四個條件也就一起繞過了。

flag

第二遍復現(xiàn)時纫溃,環(huán)境掛了腰涧。。皇耗。在自己電腦上弄得環(huán)境南窗,測試發(fā)現(xiàn)payload是正確的。

知識點

代碼審計郎楼,intval(),溢出

參考鏈接

https://0verwatch.top/2018/03/18/phpcheck2/

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末万伤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子呜袁,更是在濱河造成了極大的恐慌敌买,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阶界,死亡現(xiàn)場離奇詭異虹钮,居然都是意外死亡,警方通過查閱死者的電腦和手機膘融,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門芙粱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人氧映,你說我怎么就攤上這事春畔。” “怎么了岛都?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵律姨,是天一觀的道長。 經(jīng)常有香客問我臼疫,道長择份,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任烫堤,我火速辦了婚禮荣赶,結(jié)果婚禮上凤价,老公的妹妹穿的比我還像新娘。我一直安慰自己讯壶,他們只是感情好料仗,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伏蚊,像睡著了一般立轧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上躏吊,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天氛改,我揣著相機與錄音,去河邊找鬼比伏。 笑死胜卤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的赁项。 我是一名探鬼主播葛躏,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悠菜!你這毒婦竟也來了舰攒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤悔醋,失蹤者是張志新(化名)和其女友劉穎摩窃,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芬骄,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡猾愿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了账阻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒂秘。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖淘太,靈堂內(nèi)的尸體忽然破棺而出材彪,到底是詐尸還是另有隱情,我是刑警寧澤琴儿,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站嘁捷,受9級特大地震影響造成,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雄嚣,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一晒屎、第九天 我趴在偏房一處隱蔽的房頂上張望喘蟆。 院中可真熱鬧,春花似錦鼓鲁、人聲如沸蕴轨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽橙弱。三九已至,卻和暖如春燥狰,著一層夾襖步出監(jiān)牢的瞬間棘脐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工龙致, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛀缝,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓目代,卻偏偏與公主長得像屈梁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子榛了,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)在讶,也就是一...
    悟名先生閱讀 4,149評論 0 13
  • 題目地址:http://ctf5.shiyanbar.com/web/PHP/index.php 進去就看到簡單的...
    Aluvion閱讀 481評論 0 0
  • “通往財富自由之路”很重要的一部分內(nèi)容就是教授如何投資自己真朗,投資自己最關鍵的就是成長率,如何獲得成長率僧诚? ...
    戒得草堂閱讀 132評論 0 0
  • 9月5號到9月8號我參加了公司舉辦的業(yè)務經(jīng)理學習遮婶,這是晉升為業(yè)務經(jīng)理首次參加的公司舉辦的學習活動。 歷時三天四夜湖笨,...
    鄭珍容閱讀 948評論 0 0
  • 網(wǎng)站: http://codecloud.net/regular-3519.html 截取文字 NSString ...
    小小東閱讀 199評論 0 2